Commit Graph

173907 Commits

Author SHA1 Message Date
Richard Biener
00294b189c re PR tree-optimization/93054 (ICE in gimple_set_lhs, at gimple.c:1820)
2020-01-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/93054
	* gimplify.c (gimplify_expr): Deal with NOP definitions.

	* gcc.dg/pr93054.c: New testcase.

From-SVN: r280039
2020-01-09 10:41:38 +00:00
Richard Biener
0f507a3657 re PR tree-optimization/93040 (gcc doesn't optimize unaligned accesses to a 16-bit value on the x86 as well as it does a 32-bit value (or clang))
2020-01-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/93040
	* gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit.

	* gcc.dg/optimize-bswaphi-1.c: Amend.
	* gcc.dg/optimize-bswapsi-2.c: Likewise.

From-SVN: r280034
2020-01-09 10:29:54 +00:00
Georg-Johann Lay
ddc8786f8e avr-common.c (avr_option_optimization_table): Set -fsplit-wide-types-early.
* common/config/avr/avr-common.c (avr_option_optimization_table)
	[OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early.

From-SVN: r280033
2020-01-09 09:29:30 +00:00
Martin Liska
edbe1f3bb1 One more usage of cgraph_node::dump_name.
2020-01-09  Martin Liska  <mliska@suse.cz>

	* cgraphclones.c (symbol_table::materialize_all_clones):
	Use cgraph_node::dump_name.

From-SVN: r280031
2020-01-09 08:25:47 +00:00
Jakub Jelinek
a0ab54de0e re PR inline-asm/93202 ([RISCV] ICE when using inline asm 'h' operand modifier)
PR inline-asm/93202
	* config/riscv/riscv.c (riscv_print_operand_reloc): Use
	output_operand_lossage instead of gcc_unreachable.
	* doc/md.texi (riscv f constraint): Fix typo.

	* gcc.target/riscv/pr93202.c: New test.

From-SVN: r280030
2020-01-09 09:20:25 +01:00
Jakub Jelinek
ec9b602c16 re PR target/93141 (Missed optimization : Use of adc when checking overflow)
PR target/93141
	* config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of
	SWI.  Use <general_hilo_operand> instead of <general_operand>.  Use
	CONST_SCALAR_INT_P instead of CONST_INT_P.
	(*subv<mode>4_1): Rename to ...
	(subv<mode>4_1): ... this.
	(*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
	define_insn_and_split patterns.
	(*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
	patterns.

	* gcc.target/i386/pr93141-1.c: Add tests with constants that have MSB
	of the low half of the constant set.
	* gcc.target/i386/pr93141-2.c: New test.

From-SVN: r280029
2020-01-09 09:18:51 +01:00
François Dumont
b9c84e9503 PR libstdc++/92124 fix incorrect unordered container move assignment
* include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
	template alias.
	(_Hashtable<>::__fwd_value_for): New.
	(_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
	parameter.
	(_Hashtable<>::_M_assign<>): Add _Ht template parameter.
	(_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
	(_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
	with std::move.
	(_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
	(_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
	Adapt.
	(_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
	Adapt.
	* testsuite/23_containers/unordered_set/92124.cc: New.

From-SVN: r280028
2020-01-09 05:40:08 +00:00
David Malcolm
e4d2203e31 vec.h: add auto_delete_vec
This patch adds a class auto_delete_vec<T>, a subclass of auto_vec <T *>
that deletes all of its elements on destruction; it's used in many
places in the analyzer patch kit.

This is a crude way for a vec to "own" the objects it points to
and clean up automatically (essentially a workaround for not being able
to use unique_ptr, due to C++98).

gcc/ChangeLog:
	* vec.c (class selftest::count_dtor): New class.
	(selftest::test_auto_delete_vec): New test.
	(selftest::vec_c_tests): Call it.
	* vec.h (class auto_delete_vec): New class template.
	(auto_delete_vec<T>::~auto_delete_vec): New dtor.

From-SVN: r280027
2020-01-09 01:39:45 +00:00
David Malcolm
b3de347f32 sbitmap.h: add operator const_sbitmap to auto_sbitmap
gcc/ChangeLog:
	* sbitmap.h (auto_sbitmap): Add operator const_sbitmap.

From-SVN: r280026
2020-01-09 01:35:59 +00:00
Jim Wilson
dca7e570a5 RISC-V: Disable use of TLS copy relocs.
Musl and lld don't support TLS copy relocs, and don't want to add support
for this feature which is unique to RISC-V.  Only GNU ld and glibc support
them.  In the pasbi discussion, people have pointed out various problems
with using them, so we are deprecating them.  There doesn't seem to be an
ABI break from dropping them so this patch modifies gcc to stop creating
them.  I'm using an ifdef for now in case a problem turns up and the code
has to be re-enabled.  The plan is to add an initial to local exec
relaxation as a replacement, though this has not been defined or
implemented yet.

	gcc/
	* config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out
	use of TLS_MODEL_LOCAL_EXEC when not pic.

From-SVN: r280025
2020-01-08 17:04:45 -08:00
GCC Administrator
199caa70ea Daily bump.
From-SVN: r280024
2020-01-09 00:16:16 +00:00
Jason Merrill
08f594eb39 Add TARGET_EXPR_DIRECT_INIT_P sanity check.
* cp-gimplify.c (cp_gimplify_expr) [TARGET_EXPR]: Check
	TARGET_EXPR_DIRECT_INIT_P.
	* constexpr.c (cxx_eval_constant_expression): Likewise.

From-SVN: r280019
2020-01-08 15:31:25 -05:00
Jason Merrill
10d2f801f4 PR c++/91369 - constexpr destructor and member initializer.
Previously it didn't matter whether we looked through a TARGET_EXPR in
constexpr evaluation, but now that we have constexpr destructors it does.
On IRC I mentioned the idea of clearing TARGET_EXPR_CLEANUP in
digest_nsdmi_init, but since this initialization is expressed by an
INIT_EXPR, it's better to handle all INIT_EXPR, not just those for a member
initializer.

	* constexpr.c (cxx_eval_store_expression): Look through TARGET_EXPR
	when not preevaluating.

From-SVN: r280018
2020-01-08 15:31:20 -05:00
Jason Merrill
cd3ca6cb11 Remove constexpr support for DECL_BY_REFERENCE.
Since we switched to doing constexpr evaluation on pre-GENERIC trees,
we don't have to handle DECL_BY_REFERENCE.

	* constexpr.c (cxx_eval_call_expression): Remove DECL_BY_REFERENCE
	support.

From-SVN: r280017
2020-01-08 15:31:16 -05:00
Jeff Law
5b18be0b2b * gcc.dg/Wstringop-overflow-27.c: Make testnames unique.
From-SVN: r280016
2020-01-08 11:46:33 -07:00
David Malcolm
51f902357c hash-map-tests.c: fix memory leak
This commit makes "make selftest-valgrind" clean by fixing this leak:

4 bytes in 1 blocks are definitely lost in loss record 1 of 734
   at 0x483AB1A: calloc (vg_replace_malloc.c:762)
   by 0x261DBE0: xcalloc (xmalloc.c:162)
   by 0x2538C46: selftest::test_map_of_strings_to_int() (hash-map-tests.c:87)
   by 0x253ABD2: selftest::hash_map_tests_c_tests() (hash-map-tests.c:307)
   by 0x24A885B: selftest::run_tests() (selftest-run-tests.c:65)
   by 0x1373D80: toplev::run_self_tests() (toplev.c:2339)
   by 0x1373FA7: toplev::main(int, char**) (toplev.c:2421)
   by 0x2550EFF: main (main.c:39)

gcc/ChangeLog:
	* hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix
	memory leak.

From-SVN: r280015
2020-01-08 18:45:26 +00:00
Jonathan Wakely
fff148b787 libstdc++: Fix error handling in filesystem::remove_all (PR93201)
When recursing into a directory, any errors that occur while removing a
directory entry are ignored, because the subsequent increment of the
directory iterator clears the error_code object.

This fixes that bug by checking the result of each recursive operation
before incrementing. This is a change in observable behaviour, because
previously other directory entries would still be removed even if one
(or more) couldn't be removed due to errors. Now the operation stops on
the first error, which is what the code intended to do all along. The
standard doesn't specify what happens in this case (because the order
that the entries are processed is unspecified anyway).

It also improves the error reporting so that the name of the file that
could not be removed is included in the filesystem_error exception. This
is done by introducing a new helper type for reporting errors with
additional context and a new function that uses that type. Then the
overload of std::filesystem::remove_all that throws an exception can use
the new function to ensure any exception contains the additional
information.

For std::experimental::filesystem::remove_all just fix the bug where
errors are ignored.

	PR libstdc++/93201
	* src/c++17/fs_ops.cc (do_remove_all): New function implementing more
	detailed error reporting for remove_all. Check result of recursive
	call before incrementing iterator.
	(remove_all(const path&), remove_all(const path&, error_code&)): Use
	do_remove_all.
	* src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
	result of recursive call before incrementing iterator.
	* testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
	are reported correctly.
	* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.

From-SVN: r280014
2020-01-08 16:44:45 +00:00
Joel Brobecker
face749a49 Add missing { dg-require-effective-target fpic } to aarch64 tests
2020-01-08  Joel Brobecker  <brobecker@adacore.com>
          Olivier Hainque  <hainque@adacore.com>

	testsuite/
	* g++.target/aarch64/sve/tls_2.C: Add missing
	{ dg-require-effective-target fpic } directive.
	* gcc.target/aarch64/noplt_2.c: Likewise.
	* gcc.target/aarch64/noplt_3.c: Likewise.
	* gcc.target/aarch64/pic-constantpool1.c: Likewise.
	* gcc.target/aarch64/pic-small.c: Likewise.
	* gcc.target/aarch64/pic-symrefplus.c: Likewise.
	* gcc.target/aarch64/pr66912.c: Likewise.
	* gcc.target/aarch64/sve/tls_1.c: Likewise.
	* gcc.target/aarch64/sve/tls_preserve_1.c: Likewise.
	* gcc.target/aarch64/sve/tls_preserve_2.c: Likewise.
	* gcc.target/aarch64/sve/tls_preserve_3.c: Likewise.
	* gcc.target/aarch64/tlsie_tiny_1.c: Likewise.
	* gcc.target/aarch64/tlsle12_1.c: Likewise.
	* gcc.target/aarch64/tlsle12_tiny_1.c: Likewise.
	* gcc.target/aarch64/tlsle24_1.c: Likewise.
	* gcc.target/aarch64/tlsle24_tiny_1.c: Likewise.
	* gcc.target/aarch64/tlsle32_1.c: Likewise.
	* gcc.target/aarch64/tlsle_sizeadj_small_1.c: Likewise.
	* gcc.target/aarch64/tlsle_sizeadj_tiny_1.c: Likewise.

Co-Authored-By: Olivier Hainque <hainque@adacore.com>

From-SVN: r280013
2020-01-08 16:22:27 +00:00
Jakub Jelinek
b41383c8ab re PR target/93187 (ICE in extract_insn, at recog.c:2294)
PR target/93187
	* config/i386/i386.md (*stack_protect_set_2_<mode> peephole2,
	*stack_protect_set_3 peephole2): Also check that the second
	insns source is general_operand.

	* g++.dg/opt/pr93187.C: New test.

From-SVN: r280012
2020-01-08 16:59:20 +01:00
Jakub Jelinek
7ca803f101 re PR target/93174 (ICE building glibc __sha512_process_block for i686)
PR target/93174
	* config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand
	predicate for output operand instead of register_operand.
	(addcarry<mode>, addcarry<mode>_1): Likewise.  Add alternative with
	memory destination and non-memory operands[2].

	* gcc.c-torture/compile/pr93174.c: New test.

From-SVN: r280011
2020-01-08 16:58:20 +01:00
Olivier Hainque
80d803aefb relax aarch64 stack-clash tests depedence on alloca.h
2020-01-06  Olivier Hainque  <hainque@adacore.com>
	Alexandre Oliva  <oliva@adacore.com>

	* gcc.target/aarch64/stack-check-alloca.h: Remove
	#include alloca.h. #define alloca __builtin_alloca
	instead.
	* gcc.target/aarch64/stack-check-alloca-1.c: Add
	{ dg-require-effective-target alloca }.
	* gcc.target/aarch64/stack-check-alloca-2.c: Likewise.
	* gcc.target/aarch64/stack-check-alloca-3.c: Likewise.
	* gcc.target/aarch64/stack-check-alloca-4.c: Likewise.
	* gcc.target/aarch64/stack-check-alloca-5.c: Likewise.
	* gcc.target/aarch64/stack-check-alloca-6.c: Likewise.
	* gcc.target/aarch64/stack-check-alloca-7.c: Likewise.
	* gcc.target/aarch64/stack-check-alloca-8.c: Likewise.
	* gcc.target/aarch64/stack-check-alloca-9.c: Likewise.
	* gcc.target/aarch64/stack-check-alloca-10.c: Likewise.

Co-Authored-By: Alexandre Oliva <oliva@adacore.com>

From-SVN: r280010
2020-01-08 15:53:16 +00:00
Martin Liska
3629ff8ad6 Use cgraph_node::dump_{asm_},name where possible.
2020-01-08  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_node::dump): Use ::dump_name or
	::dump_asm_name instead of (::name or ::asm_name).
	* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
	* cgraphunit.c (walk_polymorphic_call_targets): Likewise.
	(analyze_functions): Likewise.
	(expand_all_functions): Likewise.
	* ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
	(propagate_bits_across_jump_function): Likewise.
	(dump_profile_updates): Likewise.
	(ipcp_store_bits_results): Likewise.
	(ipcp_store_vr_results): Likewise.
	* ipa-devirt.c (dump_targets): Likewise.
	* ipa-fnsummary.c (analyze_function_body): Likewise.
	* ipa-hsa.c (check_warn_node_versionable): Likewise.
	(process_hsa_functions): Likewise.
	* ipa-icf.c (sem_item_optimizer::merge_classes): Likewise.
	(set_alias_uids): Likewise.
	* ipa-inline-transform.c (save_inline_function_body): Likewise.
	* ipa-inline.c (recursive_inlining): Likewise.
	(inline_to_all_callers_1): Likewise.
	(ipa_inline): Likewise.
	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
	(ipa_propagate_frequency): Likewise.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
	(remove_described_reference): Likewise.
	* ipa-pure-const.c (worse_state): Likewise.
	(check_retval_uses): Likewise.
	(analyze_function): Likewise.
	(propagate_pure_const): Likewise.
	(propagate_nothrow): Likewise.
	(dump_malloc_lattice): Likewise.
	(propagate_malloc): Likewise.
	(pass_local_pure_const::execute): Likewise.
	* ipa-visibility.c (optimize_weakref): Likewise.
	(function_and_variable_visibility): Likewise.
	* ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
	(ipa_discover_variable_flags): Likewise.
	* lto-streamer-out.c (output_function): Likewise.
	(output_constructor): Likewise.
	* tree-inline.c (copy_bb): Likewise.
	* tree-ssa-structalias.c (ipa_pta_execute): Likewise.
	* varpool.c (symbol_table::remove_unreferenced_decls): Likewise.
2020-01-08  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (add_symbol_to_partition_1): Use ::dump_name or
	::dump_asm_name instead of (::name or ::asm_name).
	(lto_balanced_map): Likewise.
	(promote_symbol): Likewise.
	(rename_statics): Likewise.
	* lto.c (lto_wpa_write_files): Likewise.
2020-01-08  Martin Liska  <mliska@suse.cz>

	* gcc.dg/ipa/ipa-icf-1.c: Update expected scanned output.
	* gcc.dg/ipa/ipa-icf-10.c: Likewise.
	* gcc.dg/ipa/ipa-icf-11.c: Likewise.
	* gcc.dg/ipa/ipa-icf-12.c: Likewise.
	* gcc.dg/ipa/ipa-icf-13.c: Likewise.
	* gcc.dg/ipa/ipa-icf-16.c: Likewise.
	* gcc.dg/ipa/ipa-icf-18.c: Likewise.
	* gcc.dg/ipa/ipa-icf-2.c: Likewise.
	* gcc.dg/ipa/ipa-icf-20.c: Likewise.
	* gcc.dg/ipa/ipa-icf-21.c: Likewise.
	* gcc.dg/ipa/ipa-icf-23.c: Likewise.
	* gcc.dg/ipa/ipa-icf-25.c: Likewise.
	* gcc.dg/ipa/ipa-icf-26.c: Likewise.
	* gcc.dg/ipa/ipa-icf-27.c: Likewise.
	* gcc.dg/ipa/ipa-icf-3.c: Likewise.
	* gcc.dg/ipa/ipa-icf-35.c: Likewise.
	* gcc.dg/ipa/ipa-icf-36.c: Likewise.
	* gcc.dg/ipa/ipa-icf-37.c: Likewise.
	* gcc.dg/ipa/ipa-icf-38.c: Likewise.
	* gcc.dg/ipa/ipa-icf-5.c: Likewise.
	* gcc.dg/ipa/ipa-icf-7.c: Likewise.
	* gcc.dg/ipa/ipa-icf-8.c: Likewise.
	* gcc.dg/ipa/ipa-icf-merge-1.c: Likewise.
	* gcc.dg/ipa/pr64307.c: Likewise.
	* gcc.dg/ipa/pr90555.c: Likewise.
	* gcc.dg/ipa/propmalloc-1.c: Likewise.
	* gcc.dg/ipa/propmalloc-2.c: Likewise.
	* gcc.dg/ipa/propmalloc-3.c: Likewise.

From-SVN: r280009
2020-01-08 15:30:24 +00:00
Tobias Burnus
c1030b5cd3 libgomp.texi: Fix typos, use https (actual change)
From-SVN: r280008
2020-01-08 16:00:39 +01:00
Tobias Burnus
df2c0d3620 libgomp.texi: Fix typos, use https.
From-SVN: r280007
2020-01-08 15:58:31 +01:00
Richard Biener
fb768529d2 re PR tree-optimization/93199 (Compile time hog in sink_clobbers)
2020-01-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/93199
	* tree-eh.c (sink_clobbers): Update virtual operands for
	the first and last stmt only.  Add a dry-run capability.
	(pass_lower_eh_dispatch::execute): Perform clobber sinking
	after CFG manipulations and in RPO order to catch all
	secondary opportunities reliably.

From-SVN: r280006
2020-01-08 14:30:44 +00:00
Georg-Johann Lay
949f006254 re PR target/93182 ([avr] Add -nodevicespecs option.)
PR target/93182
	* doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.

From-SVN: r280005
2020-01-08 14:28:56 +00:00
Richard Biener
0f3072b5c3 re PR other/92997 (gcc.dg/torture/ftrapv-1.c fails starting with r279523)
2020-01-08  Richard Biener  <rguenther@suse.de>

	PR testsuite/92997
	* gcc.dg/torture/ftrapv-1.c (iaddv): Use noipa attribute.

From-SVN: r280003
2020-01-08 14:07:55 +00:00
Georg-Johann Lay
d672c0afbb * gcc/doc/install.texi: Typo.
From-SVN: r280002
2020-01-08 13:43:27 +00:00
Richard Biener
f74c4b2c44 re PR tree-optimization/93199 (Compile time hog in sink_clobbers)
2019-01-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/93199
	c/
	* gimple-parser.c (c_parser_parse_gimple_body): Remove __PHI IFN
	permanently.

	* gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified.
	* tree-ssa-loop-im.c (move_computations_worker): Properly adjust
	virtual operand, also updating SSA use.
	* gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
	Update stmt after resetting virtual operand.
	(tree_loop_interchange::move_code_to_inner_loop): Likewise.

	* gimple-iterator.c (gsi_remove): When not removing the stmt
	permanently do not delink immediate uses or mark the stmt modified.

From-SVN: r280000
2020-01-08 12:49:14 +00:00
Martin Liska
d597b9445f Replace node->name/node->order with node->dump_name.
2020-01-08  Martin Liska  <mliska@suse.cz>

	* ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name.
	(ipa_call_context::estimate_size_and_time): Likewise.
	(inline_analyze_function): Likewise.
2020-01-08  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (lto_balanced_map): Use symtab_node::dump_name.

From-SVN: r279999
2020-01-08 11:58:49 +00:00
Martin Liska
4dfa3251b5 Use dump_asm_name for Callers/Calls in dump.
2020-01-08  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_node::dump): Use systematically
	dump_asm_name.

From-SVN: r279998
2020-01-08 11:58:30 +00:00
Georg-Johann Lay
e3e131c9bb Add -nodevicespecs option for avr.
gcc/
	Add -nodevicespecs option for avr.

	PR target/93182
	* config/avr/avr.opt (-nodevicespecs): New driver option.
	* config/avr/driver-avr.c (avr_devicespecs_file): Only issue
	"-specs=device-specs/..." if that option is not set.
	* doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.

From-SVN: r279995
2020-01-08 09:41:59 +00:00
Georg-Johann Lay
f30dd60766 Implement 64-bit double functions.
gcc/
	PR target/92055
	* config.gcc (tm_defines) [target=avr]: Support --with-libf7,
	--with-double-comparison.
	* doc/install.texi: Document them.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins)
	<WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS>
	<WITH_DOUBLE_COMPARISON>: New built-in defines.
	* doc/invoke.texi (AVR Built-in Macros): Document them.
	* config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New.
	* config/avr/avr.c (avr_float_lib_compare_returns_bool): New function.
	* config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro.
libgcc/
	PR target/92055
	* config.host (tmake_file) [target=avr]: Add t-libf7,
	t-libf7-math, t-libf7-math-symbols as specified by --with-libf7=.
	* config/avr/t-avrlibc: Don't copy libgcc.a if there are modules
	depending on sizeof (double) or sizeof (long double).
	* config/avr/libf7: New folder.
libgcc/config/avr/libf7/
	PR target/92055
	* t-libf7: New file.
	* t-libf7-math: New file.
	* t-libf7-math-symbols: New file.
	* libf7-common.mk: New file.
	* libf7-asm-object.mk: New file.
	* libf7-c-object.mk: New file.
	* asm-defs.h: New file.
	* libf7.h: New file.
	* libf7.c: New file.
	* libf7-asm.sx: New file.
	* libf7-array.def: New file.
	* libf7-const.def: New file.
	* libf7-constdef.h: New file.
	* f7renames.sh: New script.
	* f7wraps.sh: New script.
	* f7-renames.h: New generated file.
	* f7-wraps.h: New generated file.

From-SVN: r279994
2020-01-08 09:31:07 +00:00
Richard Earnshaw
d5bc18085c arm: Fix rmprofile multilibs when architecture includes +mp or +sec (PR target/93188)
When only the rmprofile multilibs are built, compiling for armv7-a
should select the generic v7 multilibs.  This used to work before +sec
and +mp were added to the architecture options but it was broken by
that update.  This patch fixes those variants and adds some tests to
ensure that they remain fixed ;-)

	PR target/93188
	* config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
	armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
	when only building rm-profile multilibs.

	* gcc.target/arm/multilib.exp: Add new tests for rm-profile only.

From-SVN: r279993
2020-01-08 09:29:02 +00:00
Jason Merrill
54b0c0f0e9 whitespace
From-SVN: r279989
2020-01-07 23:03:38 -05:00
Thomas Rodgers
9e3c1eb773 Rename condition_variable_any wait* methods to match current draft standard
2020-01-07  Thomas Rodgers  <trodgers@redhat.com>

	* include/std/condition_variable
	(condition_variable_any::wait_on): Rename to match current draft
	standard.
	(condition_variable_any::wait_on_until): Likewise.
	(condition_variable_any::wait_on_for): Likewise.
	* testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
	Adjust tests to account for renamed methods.

From-SVN: r279988
2020-01-08 03:00:40 +00:00
Feng Xue
42d73fa9d5 Find matched aggregate lattice for self-recursive CP (PR ipa/93084)
2020-01-08  Feng Xue  <fxue@os.amperecomputing.com>

        PR ipa/93084
        * ipa-cp.c (self_recursively_generated_p): Find matched aggregate
        lattice for a value to check.
        (propagate_vals_across_arith_jfunc): Add an assertion to ensure
        finite propagation in self-recursive scc.

2020-01-08  Feng Xue  <fxue@os.amperecomputing.com>

        PR ipa/93084
        * gcc.dg/ipa/ipa-clone-3.c: New test.

From-SVN: r279987
2020-01-08 02:55:00 +00:00
Luo Xiong Hu
709d7838e7 Partially revert ipa-inline caller_growth_limits
We need to revert one line of code change from r279942 due to
performance degression.

gcc/ChangeLog:

	2020-01-08  Luo Xiong Hu  <luoxhu@linux.ibm.com>

	PR middle-end/93189
	* ipa-inline.c (caller_growth_limits): Restore the AND.

From-SVN: r279986
2020-01-08 00:54:39 +00:00
Ian Lance Taylor
fc6dbd584b compiler: fix loopdepth tracking in array slicing expression in escape analysis
In the gc compiler, for slicing an array, its AST has an implicit
    address operation node. There isn't such node in the gofrontend
    AST. During the escape analysis, we create a fake node to mimic
    the gc compiler's behavior. For the fake node, the loopdepth was
    not tracked correctly, causing miscompilation. Since this is an
    address operation, do the same thing as we do for the address
    operator.
    
    Fixes golang/go#36404.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/213643

From-SVN: r279984
2020-01-08 00:38:00 +00:00
GCC Administrator
fd9ca4c646 Daily bump.
From-SVN: r279983
2020-01-08 00:16:21 +00:00
Ian Lance Taylor
81f025b580 compiler, runtime: stop using __go_runtime_error
Use specific panic functions instead, which are mostly already in the
    runtime package.
    
    Also correct "defer nil" to panic when we execute the defer, rather
    than throw when we queue it.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/213642

From-SVN: r279979
2020-01-07 23:13:24 +00:00
Michael Meissner
7010bcd1c8 Revert patch accidentily created on the wrong sandbox
From-SVN: r279973
2020-01-07 21:30:43 +00:00
Michael Meissner
56eb4c70ea Restore patch reverted on trunk instead of a branch
From-SVN: r279972
2020-01-07 21:29:11 +00:00
Michael Meissner
cdf77151aa Revert a patch from luoxhu@linux.ibm.com
From-SVN: r279971
2020-01-07 21:27:27 +00:00
François Dumont
6af8819be1 PR libstdc++/92124 fix incorrect container move assignment
* include/bits/stl_tree.h
	(_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
	std::move_if_noexcept by std::move.
	* testsuite/23_containers/map/92124.cc: New.
	* testsuite/23_containers/set/92124.cc: New.

From-SVN: r279967
2020-01-07 21:01:37 +00:00
Paolo Carlini
87d3f828de init.c (build_new): Add location_t parameter and use it throughout.
/gcc/cp
2020-01-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* init.c (build_new): Add location_t parameter and use it throughout.
	(build_raw_new_expr): Likewise.
	* parser.c (cp_parser_new_expression): Pass the combined_loc.
	* pt.c (tsubst_copy_and_build): Adjust call.
	* cp-tree.h: Update declarations.

/libcc1
2020-01-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* libcp1plugin.cc (plugin_build_new_expr): Update build_new call.

/gcc/testsuite
2020-01-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.old-deja/g++.bugs/900208_03.C: Check locations too.
	* g++.old-deja/g++.bugs/900519_06.C: Likewise.

From-SVN: r279963
2020-01-07 17:58:18 +00:00
Ian Lance Taylor
5561b41dd6 compiler: avoid write barrier for a[i] = a[i][:v]
This avoids generating a write barrier for code that appears in the
    Go1.14beta1 runtime package in (*pageAlloc).sysGrow:
        s.summary[l] = s.summary[l][:needIdxLimit]
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/213558

From-SVN: r279962
2020-01-07 15:35:04 +00:00
Andrew Stubbs
0e159efc76 [amdgcn] Add more modes for vector comparisons
2020-01-07  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator.
	(VEC_ALLREG_ALT): New iterator.
	(VEC_ALLREG_INT_MODE): New iterator.
	(VCMP_MODE): New iterator.
	(VCMP_MODE_INT): New iterator.
	(vec_cmpu<mode>di): Use VCMP_MODE_INT.
	(vec_cmp<u>v64qidi): New define_expand.
	(vec_cmp<mode>di_exec): Use VCMP_MODE.
	(vec_cmpu<mode>di_exec): New define_expand.
	(vec_cmp<u>v64qidi_exec): New define_expand.
	(vec_cmp<mode>di_dup): Use VCMP_MODE.
	(vec_cmp<mode>di_dup_exec): Use VCMP_MODE.
	(vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ...
	(vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this.
	(vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ...
	(vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this.
	(vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ...
	(vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this.
	(vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ...
	(vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to
	this.
	* config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes.
	* config/gcn/gcn.md (expander): Add sign_extend and zero_extend.

From-SVN: r279961
2020-01-07 15:27:50 +00:00
Jason Merrill
bd65538abb PR c++/47877 - -fvisibility-inlines-hidden and member templates.
DECL_VISIBILITY_SPECIFIED is also true if an enclosing scope has explicit
visibility, and we don't want that to override -fvisibility-inlines-hidden.
So check for the attribute specifically on the function, like we already do
for template argument visibility restriction.

	* decl2.c (determine_visibility): -fvisibility-inlines-hidden beats
	explicit class visibility for a template.

From-SVN: r279960
2020-01-07 10:05:25 -05:00
Andrew Stubbs
66b01cc342 Disallow 'B' constraints on amdgcn addc/subb
2020-01-07  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/constraints.md (DA): Update description and match.
	(DB): Likewise.
	(Db): New constraint.
	* config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second
	parameter.
	* config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter.
	Implement 'Db' mixed immediate type.
	* config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints.
	(addcv64si3_dup<exec_vcc>): Delete.
	(subcv64si3<exec_vcc>): Rework constraints.
	(addv64di3): Rework constraints.
	(addv64di3_exec): Rework constraints.
	(subv64di3): Rework constraints.
	(addv64di3_dup): Delete.
	(addv64di3_dup_exec): Delete.
	(addv64di3_zext): Rework constraints.
	(addv64di3_zext_exec): Rework constraints.
	(addv64di3_zext_dup): Rework constraints.
	(addv64di3_zext_dup_exec): Rework constraints.
	(addv64di3_zext_dup2): Rework constraints.
	(addv64di3_zext_dup2_exec): Rework constraints.
	(addv64di3_sext_dup2): Rework constraints.
	(addv64di3_sext_dup2_exec): Rework constraints.

From-SVN: r279959
2020-01-07 14:35:21 +00:00