gcc-old.git
5 years agoSet Optimization for param_max_speculative_devirt_maydefs.
marxin [Thu, 9 Jan 2020 12:17:12 +0000 (12:17 +0000)]
Set Optimization for param_max_speculative_devirt_maydefs.

2020-01-09  Martin Liska  <mliska@suse.cz>

* params.opt: Set Optimization for
param_max_speculative_devirt_maydefs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280042 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR middle-end/93200 - spurious -Wstringop-overflow due to assignment vectorization...
msebor [Thu, 9 Jan 2020 11:59:41 +0000 (11:59 +0000)]
PR middle-end/93200 - spurious -Wstringop-overflow due to assignment vectorization to multiple members
PR fortran/92956 - 'libgomp.fortran/examples-4/async_target-2.f90' fails with offloading due to bogus -Wstringop-overflow warning

gcc/testsuite/ChangeLog:

PR middle-end/93200
* gcc.dg/Wstringop-overflow-30.c: New test.

gcc/ChangeLog:

PR middle-end/93200
PR fortran/92956
* builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280041 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd Optimization for various IPA parameters.
marxin [Thu, 9 Jan 2020 11:29:23 +0000 (11:29 +0000)]
Add Optimization for various IPA parameters.

2020-01-09  Martin Liska  <mliska@suse.cz>

* auto-profile.c (auto_profile): Use opt_for_fn
for a parameter.
* ipa-cp.c (ipcp_lattice::add_value): Likewise.
(propagate_vals_across_arith_jfunc): Likewise.
(hint_time_bonus): Likewise.
(incorporate_penalties): Likewise.
(good_cloning_opportunity_p): Likewise.
(perform_estimation_of_a_value): Likewise.
(estimate_local_effects): Likewise.
(ipcp_propagate_stage): Likewise.
* ipa-fnsummary.c (decompose_param_expr): Likewise.
(set_switch_stmt_execution_predicate): Likewise.
(analyze_function_body): Likewise.
* ipa-inline-analysis.c (offline_size): Likewise.
* ipa-inline.c (early_inliner): Likewise.
* ipa-prop.c (ipa_analyze_node): Likewise.
(ipcp_transform_function): Likewise.
* ipa-sra.c (process_scan_results): Likewise.
(ipa_sra_summarize_function): Likewise.
* params.opt: Rename ipcp-unit-growth to
ipa-cp-unit-growth.  Add Optimization for various
IPA-related parameters.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280040 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2020-01-09 Richard Biener <rguenther@suse.de>
rguenth [Thu, 9 Jan 2020 10:41:38 +0000 (10:41 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280039 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2020-01-09 Richard Biener <rguenther@suse.de>
rguenth [Thu, 9 Jan 2020 10:29:54 +0000 (10:29 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280034 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * common/config/avr/avr-common.c (avr_option_optimization_table)
gjl [Thu, 9 Jan 2020 09:29:30 +0000 (09:29 +0000)]
* common/config/avr/avr-common.c (avr_option_optimization_table)
[OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280033 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoOne more usage of cgraph_node::dump_name.
marxin [Thu, 9 Jan 2020 08:25:47 +0000 (08:25 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280031 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR inline-asm/93202
jakub [Thu, 9 Jan 2020 08:20:25 +0000 (08:20 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280030 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93141
jakub [Thu, 9 Jan 2020 08:18:51 +0000 (08:18 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280029 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR libstdc++/92124 fix incorrect unordered container move assignment
fdumont [Thu, 9 Jan 2020 05:40:08 +0000 (05:40 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280028 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agovec.h: add auto_delete_vec
dmalcolm [Thu, 9 Jan 2020 01:39:45 +0000 (01:39 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280027 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agosbitmap.h: add operator const_sbitmap to auto_sbitmap
dmalcolm [Thu, 9 Jan 2020 01:35:59 +0000 (01:35 +0000)]
sbitmap.h: add operator const_sbitmap to auto_sbitmap

gcc/ChangeLog:
* sbitmap.h (auto_sbitmap): Add operator const_sbitmap.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280026 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRISC-V: Disable use of TLS copy relocs.
wilson [Thu, 9 Jan 2020 01:04:45 +0000 (01:04 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280025 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Thu, 9 Jan 2020 00:16:16 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280024 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd TARGET_EXPR_DIRECT_INIT_P sanity check.
jason [Wed, 8 Jan 2020 20:31:25 +0000 (20:31 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280019 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/91369 - constexpr destructor and member initializer.
jason [Wed, 8 Jan 2020 20:31:20 +0000 (20:31 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280018 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove constexpr support for DECL_BY_REFERENCE.
jason [Wed, 8 Jan 2020 20:31:16 +0000 (20:31 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280017 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc.dg/Wstringop-overflow-27.c: Make testnames unique.
law [Wed, 8 Jan 2020 18:46:33 +0000 (18:46 +0000)]
* gcc.dg/Wstringop-overflow-27.c: Make testnames unique.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280016 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agohash-map-tests.c: fix memory leak
dmalcolm [Wed, 8 Jan 2020 18:45:26 +0000 (18:45 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280015 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibstdc++: Fix error handling in filesystem::remove_all (PR93201)
redi [Wed, 8 Jan 2020 16:44:45 +0000 (16:44 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280014 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd missing { dg-require-effective-target fpic } to aarch64 tests
hainque [Wed, 8 Jan 2020 16:22:27 +0000 (16:22 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280013 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93187
jakub [Wed, 8 Jan 2020 15:59:20 +0000 (15:59 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280012 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93174
jakub [Wed, 8 Jan 2020 15:58:20 +0000 (15:58 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280011 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agorelax aarch64 stack-clash tests depedence on alloca.h
hainque [Wed, 8 Jan 2020 15:53:16 +0000 (15:53 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280010 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoUse cgraph_node::dump_{asm_},name where possible.
marxin [Wed, 8 Jan 2020 15:30:24 +0000 (15:30 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280009 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibgomp.texi: Fix typos, use https (actual change)
burnus [Wed, 8 Jan 2020 15:00:39 +0000 (15:00 +0000)]
libgomp.texi: Fix typos, use https (actual change)

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280008 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibgomp.texi: Fix typos, use https.
burnus [Wed, 8 Jan 2020 14:58:31 +0000 (14:58 +0000)]
libgomp.texi: Fix typos, use https.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280007 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2020-01-08 Richard Biener <rguenther@suse.de>
rguenth [Wed, 8 Jan 2020 14:30:44 +0000 (14:30 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280006 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93182
gjl [Wed, 8 Jan 2020 14:28:56 +0000 (14:28 +0000)]
PR target/93182
* doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280005 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2020-01-08 Richard Biener <rguenther@suse.de>
rguenth [Wed, 8 Jan 2020 14:07:55 +0000 (14:07 +0000)]
2020-01-08  Richard Biener  <rguenther@suse.de>

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280003 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc/doc/install.texi: Typo.
gjl [Wed, 8 Jan 2020 13:43:27 +0000 (13:43 +0000)]
* gcc/doc/install.texi: Typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280002 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-01-08 Richard Biener <rguenther@suse.de>
rguenth [Wed, 8 Jan 2020 12:49:14 +0000 (12:49 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280000 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoReplace node->name/node->order with node->dump_name.
marxin [Wed, 8 Jan 2020 11:58:49 +0000 (11:58 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279999 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoUse dump_asm_name for Callers/Calls in dump.
marxin [Wed, 8 Jan 2020 11:58:30 +0000 (11:58 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279998 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agogcc/
gjl [Wed, 8 Jan 2020 09:41:59 +0000 (09:41 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279995 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoImplement 64-bit double functions.
gjl [Wed, 8 Jan 2020 09:31:07 +0000 (09:31 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279994 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoarm: Fix rmprofile multilibs when architecture includes +mp or +sec (PR target/93188)
rearnsha [Wed, 8 Jan 2020 09:29:02 +0000 (09:29 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279993 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agowhitespace
jason [Wed, 8 Jan 2020 04:03:38 +0000 (04:03 +0000)]
whitespace

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279989 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRename condition_variable_any wait* methods to match current draft standard
rodgertq [Wed, 8 Jan 2020 03:00:40 +0000 (03:00 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279988 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFind matched aggregate lattice for self-recursive CP (PR ipa/93084)
fxue [Wed, 8 Jan 2020 02:55:00 +0000 (02:55 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279987 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPartially revert ipa-inline caller_growth_limits
luoxhu [Wed, 8 Jan 2020 00:54:39 +0000 (00:54 +0000)]
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>

* ipa-inline.c (caller_growth_limits): Restore the AND.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279986 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago compiler: fix loopdepth tracking in array slicing expression in escape analysis
ian [Wed, 8 Jan 2020 00:38:00 +0000 (00:38 +0000)]
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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279984 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Wed, 8 Jan 2020 00:16:21 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279983 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago compiler, runtime: stop using __go_runtime_error
ian [Tue, 7 Jan 2020 23:13:24 +0000 (23:13 +0000)]
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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279979 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRevert patch accidentily created on the wrong sandbox
meissner [Tue, 7 Jan 2020 21:30:43 +0000 (21:30 +0000)]
Revert patch accidentily created on the wrong sandbox

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279973 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRestore patch reverted on trunk instead of a branch
meissner [Tue, 7 Jan 2020 21:29:11 +0000 (21:29 +0000)]
Restore patch reverted on trunk instead of a branch

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279972 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRevert a patch from luoxhu@linux.ibm.com
meissner [Tue, 7 Jan 2020 21:27:27 +0000 (21:27 +0000)]
Revert a patch from luoxhu@linux.ibm.com

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279971 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR libstdc++/92124 fix incorrect container move assignment
fdumont [Tue, 7 Jan 2020 21:01:37 +0000 (21:01 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279967 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago/gcc/cp
paolo [Tue, 7 Jan 2020 17:58:18 +0000 (17:58 +0000)]
/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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279963 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago compiler: avoid write barrier for a[i] = a[i][:v]
ian [Tue, 7 Jan 2020 15:35:04 +0000 (15:35 +0000)]
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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279962 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[amdgcn] Add more modes for vector comparisons
ams [Tue, 7 Jan 2020 15:27:50 +0000 (15:27 +0000)]
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279961 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/47877 - -fvisibility-inlines-hidden and member templates.
jason [Tue, 7 Jan 2020 15:05:25 +0000 (15:05 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279960 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDisallow 'B' constraints on amdgcn addc/subb
ams [Tue, 7 Jan 2020 14:35:21 +0000 (14:35 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279959 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[testsuite][arm] xfail vect-epilogues for armbe
avieira [Tue, 7 Jan 2020 14:14:16 +0000 (14:14 +0000)]
[testsuite][arm] xfail vect-epilogues for armbe

gcc/testsuite/ChangeLog:
2020-01-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.dg/vect/vect-epilogues.c: XFAIL for arm big endian.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279958 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[doc] Add missing documentation for existing target checks
avieira [Tue, 7 Jan 2020 14:11:57 +0000 (14:11 +0000)]
[doc] Add missing documentation for existing target checks

gcc/ChangeLog:
2020-01-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented
existing target checks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279957 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago compiler: avoid a couple of compiler crashes
ian [Tue, 7 Jan 2020 13:44:29 +0000 (13:44 +0000)]
compiler: avoid a couple of compiler crashes

    These came up while building 1.14beta1 while the code was still invalid.
    The policy is to not bother committing invalid test cases that cause
    compiler crashes.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/213537

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279956 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2020-01-07 Richard Biener <rguenther@suse.de>
rguenth [Tue, 7 Jan 2020 12:39:00 +0000 (12:39 +0000)]
2020-01-07  Richard Biener  <rguenther@suse.de>

* doc/install.texi: Bump minimal supported MPC version.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279955 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd a generic lhd_simulate_enum_decl
rsandifo [Tue, 7 Jan 2020 10:21:26 +0000 (10:21 +0000)]
Add a generic lhd_simulate_enum_decl

Normally we only create SVE ACLE functions when arm_sve.h is included.
But for LTO we need to do it at start-up, so that the functions are
already defined when streaming in the LTO objects.

One hitch with doing that is that LTO doesn't yet implement the
simulate_enum_decl langhook.  This patch adds a simple default
implementation that it can use.

2020-01-07  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* langhooks-def.h (lhd_simulate_enum_decl): Declare.
(LANG_HOOKS_SIMULATE_ENUM_DECL): Use it.
* langhooks.c: Include stor-layout.h.
(lhd_simulate_enum_decl): New function.
* config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call
handle_arm_sve_h for the LTO frontend.
(register_vector_type): Cope with null returns from pushdecl.

gcc/testsuite/
* gcc.target/aarch64/sve/pcs/asm_4.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279954 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Use type attributes to mark types that use the SVE PCS
rsandifo [Tue, 7 Jan 2020 10:18:14 +0000 (10:18 +0000)]
[AArch64] Use type attributes to mark types that use the SVE PCS

The SVE port needs to maintain a different type identity for
GNU vectors and "SVE vectors", since the types use different ABIs.
Until now we've done that using pointer equality between the
TYPE_MAIN_VARIANT and the built-in SVE type.

However, as Richard B noted, that doesn't work well for LTO,
where we stream both GNU and SVE types from a file instead of
creating them directly.  We need a mechanism for distinguishing
the types using streamed type information.

This patch does that using a new type attribute.  This attribute
is only meant to be used for the built-in SVE types and shouldn't
be user-visible.  The patch tries to ensure this by including a space
in the attribute name, like we already do for things like "fn spec"
and "omp declare simd".

2020-01-07  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p)
(aarch64_sve::nvectors_if_data_type): Replace with...
(aarch64_sve::builtin_type_p): ...this.
* config/aarch64/aarch64-sve-builtins.cc: Include attribs.h.
(find_vector_type): Delete.
(add_sve_type_attribute): New function.
(lookup_sve_type_attribute): Likewise.
(register_builtin_types): Add an "SVE type" attribute to each type.
(register_tuple_type): Likewise.
(svbool_type_p, nvectors_if_data_type): Delete.
(mangle_builtin_type): Use lookup_sve_type_attribute.
(builtin_type_p): Likewise.  Add an overload that returns the
number of constituent vector and predicate registers.
* config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete.
(aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p
instead of aarch64_sve_argument_p.
(aarch64_takes_arguments_in_sve_regs_p): Likewise.
(aarch64_pass_by_reference): Likewise.
(aarch64_function_value_1): Likewise.
(aarch64_return_in_memory): Likewise.
(aarch64_layout_arg): Likewise.

gcc/testsuite/
* g++.target/aarch64/sve/acle/general-c++/mangle_5.C: New test.
* gcc.target/aarch64/sve/pcs/asm_1.c: Likewise.
* gcc.target/aarch64/sve/pcs/asm_2.c: Likewise.
* gcc.target/aarch64/sve/pcs/asm_3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279953 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDon't mangle attributes that have a space in their name
rsandifo [Tue, 7 Jan 2020 10:15:43 +0000 (10:15 +0000)]
Don't mangle attributes that have a space in their name

The SVE port needs to maintain a different type identity for
GNU vectors and "SVE vectors" even during LTO, since the types
use different ABIs.  The easiest way of doing that seemed to be
to use type attributes.  However, these type attributes shouldn't
be user-facing; they're just a convenient way of representing the
types internally in GCC.

There are already several internal-only attributes, such as "fn spec"
and "omp declare simd".  They're distinguished from normal user-facing
attributes by having a space in their name, which means that it isn't
possible to write them directly in C or C++.

Taking the same approach mostly works well for SVE.  The only snag
I've hit so far is that the new attribute needs to (and only exists to)
affect type identity.  This means that it would normally get included
in mangled names, to distinguish it from types without the attribute.

However, the SVE ABI specifies a separate mangling for SVE vector types,
rather than using an attribute mangling + a normal vector mangling.
So we need some way of suppressing the attribute mangling for this case.

There are currently no other target-independent or target-specific
internal-only attributes that affect type identity, so this patch goes
for the simplest fix of skipping mangling for attributes whose names
contain a space (which usually wouldn't give a valid symbol anyway).
Other options I thought about were:

(1) Also make sure that targetm.mangled_type returns nonnull.

(2) Check directly for the target-specific name.

(3) Add a new target hook.

(4) Add new information to attribute_spec.  This would be very invasive
    at this stage, but maybe we should consider replacing all the boolean
    fields with flags?  That should make the tables slightly easier to
    read and would make adding new flags much simpler in future.

2020-01-07  Richard Sandiford  <richard.sandiford@arm.com>

gcc/cp/
* mangle.c (mangle_type_attribute_p): New function, split out from...
(write_CV_qualifiers_for_type): ...here.  Don't mangle attributes
that contain a space.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279952 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR tree-optimization/93156
jakub [Tue, 7 Jan 2020 10:05:14 +0000 (10:05 +0000)]
PR tree-optimization/93156
* tree-ssa-ccp.c (bit_value_binop): For x * x note that the second
least significant bit is always clear.

* gcc.dg/tree-ssa/pr93156.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279951 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR tree-optimization/93118
jakub [Tue, 7 Jan 2020 10:03:07 +0000 (10:03 +0000)]
PR tree-optimization/93118
* match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?.  Add new
simplifier with two intermediate conversions.

* gcc.dg/tree-ssa/pr93118.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279950 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd Optimization keyword for TREE/RTL optimization passes.
marxin [Tue, 7 Jan 2020 09:21:01 +0000 (09:21 +0000)]
Add Optimization keyword for TREE/RTL optimization passes.

2020-01-07  Martin Liska  <mliska@suse.cz>

* params.opt: Add Optimization for various parameters.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279949 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDocument cloning for the target_clone attribute.
marxin [Tue, 7 Jan 2020 09:18:46 +0000 (09:18 +0000)]
Document cloning for the target_clone attribute.

2020-01-07  Martin Liska  <mliska@suse.cz>

PR ipa/83411
* doc/extend.texi: Explain cloning for target_clone
attribute.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279948 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoMake warn_inline Optimization option.
marxin [Tue, 7 Jan 2020 09:15:38 +0000 (09:15 +0000)]
Make warn_inline Optimization option.

2020-01-07  Martin Liska  <mliska@suse.cz>

PR tree-optimization/92860
* common.opt: Make in Optimization option
as it is affected by -O0, which is an Optimization
option.
* tree-inline.c (tree_inlinable_function_p):
Use opt_for_fn for warn_inline.
(expand_call_inline): Likewise.
2020-01-07  Martin Liska  <mliska@suse.cz>

PR tree-optimization/92860
* gcc.dg/pr92860-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279947 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoMark -free as Optimization option.
marxin [Tue, 7 Jan 2020 09:12:35 +0000 (09:12 +0000)]
Mark -free as Optimization option.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279946 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoMark param_min_crossjump_insns with Optimization keyword.
marxin [Tue, 7 Jan 2020 09:10:37 +0000 (09:10 +0000)]
Mark param_min_crossjump_insns with Optimization keyword.

2020-01-07  Martin Liska  <mliska@suse.cz>

    PR optimization/92860
    * params.opt: Mark param_min_crossjump_insns with Optimization
    keyword.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279945 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR fortran/93162
jakub [Tue, 7 Jan 2020 07:14:41 +0000 (07:14 +0000)]
PR fortran/93162
* trans-openmp.c (gfc_trans_omp_clauses): Check for REF_ARRAY type
before testing u.ar.type == AR_FULL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279944 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/91369
jakub [Tue, 7 Jan 2020 07:13:50 +0000 (07:13 +0000)]
PR c++/91369
* constexpr.c (struct constexpr_global_ctx): Add heap_alloc_count
member, initialize it to zero in ctor.
(cxx_eval_call_expression): Bump heap_dealloc_count when deleting
a heap object.  Don't cache calls to functions which allocate some
heap objects and don't deallocate them or deallocate some heap
objects they didn't allocate.

* g++.dg/cpp1y/constexpr-new.C: Expect an error explaining why
static_assert failed for C++2a.
* g++.dg/cpp2a/constexpr-new9.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279943 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoipa-inline: Adjust condition for caller_growth_limits
luoxhu [Tue, 7 Jan 2020 02:38:16 +0000 (02:38 +0000)]
ipa-inline: Adjust condition for caller_growth_limits

Inline should return failure either (newsize > param_large_function_insns)
OR (newsize > limit).  Sometimes newsize is larger than
param_large_function_insns, but smaller than limit, inline doesn't return
failure even if the new function is a large function.
Therefore, param_large_function_insns and param_large_function_growth should be
OR instead of AND, otherwise --param large-function-growth won't
work correctly with --param large-function-insns.

gcc/ChangeLog:

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

* ipa-inline-analysis.c (estimate_growth): Fix typo.
* ipa-inline.c (caller_growth_limits): Use OR instead of AND.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279942 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRefactor some code for a future change.
meissner [Tue, 7 Jan 2020 01:47:22 +0000 (01:47 +0000)]
Refactor some code for a future change.

2020-01-06  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New
helper function to return the valid addressing formats for a given
hard register and mode.
(rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask.

Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c (revision 279912)
+++ gcc/config/rs6000/rs6000.c (working copy)
@@ -6729,6 +6729,30 @@ rs6000_expand_vector_extract (rtx target
     }
 }

+/* Helper function to return an address mask based on a physical register.  */
+
+static addr_mask_type
+hard_reg_and_mode_to_addr_mask (rtx reg, machine_mode mode)
+{
+  unsigned int r = reg_or_subregno (reg);
+  addr_mask_type addr_mask;
+
+  gcc_assert (HARD_REGISTER_NUM_P (r));
+  if (INT_REGNO_P (r))
+    addr_mask = reg_addr[mode].addr_mask[RELOAD_REG_GPR];
+
+  else if (FP_REGNO_P (r))
+    addr_mask = reg_addr[mode].addr_mask[RELOAD_REG_FPR];
+
+  else if (ALTIVEC_REGNO_P (r))
+    addr_mask = reg_addr[mode].addr_mask[RELOAD_REG_VMX];
+
+  else
+    gcc_unreachable ();
+
+  return addr_mask;
+}
+
 /* Adjust a memory address (MEM) of a vector type to point to a scalar field
    within the vector (ELEMENT) with a mode (SCALAR_MODE).  Use a base register
    temporary (BASE_TMP) to fixup the address.  Return the new memory address
@@ -6865,21 +6889,8 @@ rs6000_adjust_vec_address (rtx scalar_re
   if (GET_CODE (new_addr) == PLUS)
     {
       rtx op1 = XEXP (new_addr, 1);
-      addr_mask_type addr_mask;
-      unsigned int scalar_regno = reg_or_subregno (scalar_reg);
-
-      gcc_assert (HARD_REGISTER_NUM_P (scalar_regno));
-      if (INT_REGNO_P (scalar_regno))
- addr_mask = reg_addr[scalar_mode].addr_mask[RELOAD_REG_GPR];
-
-      else if (FP_REGNO_P (scalar_regno))
- addr_mask = reg_addr[scalar_mode].addr_mask[RELOAD_REG_FPR];
-
-      else if (ALTIVEC_REGNO_P (scalar_regno))
- addr_mask = reg_addr[scalar_mode].addr_mask[RELOAD_REG_VMX];
-
-      else
- gcc_unreachable ();
+      addr_mask_type addr_mask
+ = hard_reg_and_mode_to_addr_mask (scalar_reg, scalar_mode);

       if (REG_P (op1) || SUBREG_P (op1))
  valid_addr_p = (addr_mask & RELOAD_REG_INDEXED) != 0;

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279941 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoUpdate ChangeLog for last change
meissner [Tue, 7 Jan 2020 01:37:04 +0000 (01:37 +0000)]
Update ChangeLog for last change

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279940 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoUpdate 'Q' constraint documentation.
meissner [Tue, 7 Jan 2020 01:36:17 +0000 (01:36 +0000)]
Update 'Q' constraint documentation.

2020-01-06  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/constraints.md (Q constraint): Update
documentation.
* doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint
documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279939 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix bad code of vector extract of PC-relative address with variable element #.
meissner [Tue, 7 Jan 2020 01:34:19 +0000 (01:34 +0000)]
Fix bad code of vector extract of PC-relative address with variable element #.

2020-01-06  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
Use 'Q' for doing vector extract from memory.
(vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
memory.
(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
doing vector extract from memory.
(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
extract from memory.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279938 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd support for large prefixed address in adjusting a vector address.
meissner [Tue, 7 Jan 2020 01:29:12 +0000 (01:29 +0000)]
Add support for large prefixed address in adjusting a vector address.

2020-01-06  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support
for the offset being 34-bits when -mcpu=future is used.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279937 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/92552 - ICE with inherited constrained default ctor.
jason [Tue, 7 Jan 2020 01:07:59 +0000 (01:07 +0000)]
PR c++/92552 - ICE with inherited constrained default ctor.

We set TYPE_HAS_USER_CONSTRUCTOR on the template type in lookup_using_decl,
but we didn't copy it to the instantiation.  Setting it in
one_inherited_ctor is too late, as that gets called after we decide whether
to set CLASSTYPE_LAZY_DEFAULT_CTOR.  This change affects other testcases as
well; the changes are fixes for the other inherited constructor tests as
well.

* pt.c (instantiate_class_template_1): Copy
TYPE_HAS_USER_CONSTRUCTOR.
* class.c (one_inherited_ctor): Don't set it here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279936 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR c++/92739 - parsing requires clause with attributes.
jason [Tue, 7 Jan 2020 01:02:06 +0000 (01:02 +0000)]
PR c++/92739 - parsing requires clause with attributes.

gcc/cp/
* parser.c (cp_parser_constraint_requires_parens): Exclude
attributes as postfix expressions.

gcc/testsuite/
* g++.dg/concepts-pr92739.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279935 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Tue, 7 Jan 2020 00:16:13 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279932 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * config/pa/pa.md: Revert change to use ordered_comparison_operator
danglin [Mon, 6 Jan 2020 23:48:42 +0000 (23:48 +0000)]
* config/pa/pa.md: Revert change to use ordered_comparison_operator
instead of cmpib_comparison_operator in cmpib patterns.
* config/pa/predicates.md (cmpib_comparison_operator): Revert removal
of cmpib_comparison_operator.  Revise comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279927 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRequire equal shift amounts for IFN_DIV_POW2
rsandifo [Mon, 6 Jan 2020 18:00:15 +0000 (18:00 +0000)]
Require equal shift amounts for IFN_DIV_POW2

IFN_DIV_POW2 currently requires all elements to be shifted by the
same amount, in a similar way as for WIDEN_LSHIFT_EXPR.  This patch
enforces that when building the SLP tree.

If in future targets want to support IFN_DIV_POW2 without this
restriction, we'll probably need the kind of vector-vector/
vector-scalar split that we already have for normal shifts.

2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
in an IFN_DIV_POW2 node to be equal.

gcc/testsuite/
* gcc.target/aarch64/sve/asrdiv_1.c: Remove trailing %s.
* gcc.target/aarch64/sve/asrdiv_2.c: New test.
* gcc.target/aarch64/sve/asrdiv_3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279908 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoCheck mask argument's type when vectorising conditional functions
rsandifo [Mon, 6 Jan 2020 17:58:57 +0000 (17:58 +0000)]
Check mask argument's type when vectorising conditional functions

We can't yet vectorise conditional internal functions whose boolean
condition is fed by a data access (or more generally, by a tree of logic
ops in which all the leaves are data accesses).  Although we should add
that eventually, we'd need further work to generate good-quality code.

Unlike vectorizable_load and vectorizalbe_store, vectorizable_call
wasn't checking whether the mask had a suitable type, leading to an
ICE on the testcases.

2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
(vect_check_scalar_mask): ...this.
(vectorizable_store, vectorizable_load): Update call accordingly.
(vectorizable_call): Use vect_check_scalar_mask to check the mask
argument in calls to conditional internal functions.

gcc/testsuite/
* gcc.dg/vect/vect-cond-arith-8.c: New test.
* gcc.target/aarch64/sve/cond_fmul_5.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279907 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix amdgcn issue with '0' constraints
ams [Mon, 6 Jan 2020 17:10:40 +0000 (17:10 +0000)]
Fix amdgcn issue with '0' constraints

2020-01-06  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
'0' matching inputs.
(subv64di3_exec): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279906 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2020-01-06 Bryan Stenson <bryan@siliconvortex.com>
law [Mon, 6 Jan 2020 16:15:04 +0000 (16:15 +0000)]
2020-01-06  Bryan Stenson  <bryan@siliconvortex.com>

* config/mips/mips.c (vr4130_align_insns): Fix typo.
* doc/md.texi (movstr): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279905 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix early-clobber in amdgcn vec_extract
ams [Mon, 6 Jan 2020 15:40:01 +0000 (15:40 +0000)]
Fix early-clobber in amdgcn vec_extract

2020-01-06  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
clobber.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279904 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR c++/79592 adjust testcase
nathan [Mon, 6 Jan 2020 15:22:02 +0000 (15:22 +0000)]
PR c++/79592 adjust testcase

https://gcc.gnu.org/ml/gcc-patches/2020-01/msg00127.html
* g++.dg/ubsan/vptr-4.C: Add expected error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279902 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Use move-if-change for aarch64-tune.md
rsandifo [Mon, 6 Jan 2020 13:01:48 +0000 (13:01 +0000)]
[AArch64] Use move-if-change for aarch64-tune.md

If aarch64-tune.md was older than gentune.sh or aarch64-cores.def,
we'd try to overwrite it even if the current contents were correct.
This could cause problems with read-only source directories and
could cause spurious copying for rsync --archive.

2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
Depend on...
(s-aarch64-tune-md): ...this new stamp file.  Pipe the new contents
to a temporary file and use move-if-change to update the real
file where necessary.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279900 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Fix constraints for CPY /M
rsandifo [Mon, 6 Jan 2020 13:00:04 +0000 (13:00 +0000)]
[AArch64] Fix constraints for CPY /M

The constraints for CPY /M allowed p0-p15 instead of the intended p0-p7.
This looks like a pasto from the preceding constant pattern, where p0-p15
is allowed.

2020-01-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
rather than Upa for CPY /M.

gcc/testsuite/
* gcc.target/aarch64/sve/acle/general/cpy_1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279899 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix amdgcn inline immediate range
ams [Mon, 6 Jan 2020 12:22:21 +0000 (12:22 +0000)]
Fix amdgcn inline immediate range

2020-01-06  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
immediate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279898 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibstdc++: Remove redundant inequality operators in <stop_token>
redi [Mon, 6 Jan 2020 12:06:47 +0000 (12:06 +0000)]
libstdc++: Remove redundant inequality operators in <stop_token>

* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
(stop_source): Likewise (LWG 3362).
* testsuite/30_threads/stop_token/stop_source.cc: Test equality
comparisons.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279897 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibstdc++: Define __cpp_lib_three_way_comparison conditionally
redi [Mon, 6 Jan 2020 12:06:41 +0000 (12:06 +0000)]
libstdc++: Define __cpp_lib_three_way_comparison conditionally

The contents of the <compare> header are not complete unless concepts
are supported, so the feature test macro should depend on the macro for
concepts.

As a result, the std::lexicographical_compare_three_way function will
not be defined unless concepts are supported, so there is no need to
check __cpp_lib_concepts before using concepts in those functions.

* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
(lexicographical_compare_three_way): Do not depend on
__cpp_lib_concepts.
* include/std/version (__cpp_lib_three_way_comparison): Only define
when __cpp_lib_concepts is defined.
* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279896 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoMark param_max_combine_insns with Optimization keyword.
marxin [Mon, 6 Jan 2020 09:13:15 +0000 (09:13 +0000)]
Mark param_max_combine_insns with Optimization keyword.

    PR tree-optimization/92860
    * params.opt: Mark param_max_combine_insns with Optimization
    keyword.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279895 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoNew bitfield testcases.
pinskia [Mon, 6 Jan 2020 01:08:21 +0000 (01:08 +0000)]
New bitfield testcases.

2020-01-05  Andrew Pinski  <apinski@marvell.com>

        * gcc.c-torture/compile/20200105-1.c: New testcase.
        * gcc.c-torture/compile/20200105-2.c: New testcase.
        * gcc.c-torture/compile/20200105-3.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279893 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Mon, 6 Jan 2020 00:16:19 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279892 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gnat.dg/specs/discr1.ads: Compile with -gnatc instead of -gnatct.
ebotcazou [Sun, 5 Jan 2020 16:02:53 +0000 (16:02 +0000)]
* gnat.dg/specs/discr1.ads: Compile with -gnatc instead of -gnatct.
* gnat.dg/specs/limited_with4.ads: Likewise.
* gnat.dg/specs/limited_with4_pkg.ads: Likewise.
* gnat.dg/specs/private1-sub.ads: Likewise.
* gnat.dg/specs/task1.ads: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279889 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[testsuite, Darwin] Fix failing darwin-version-1.c.
iains [Sun, 5 Jan 2020 15:26:19 +0000 (15:26 +0000)]
[testsuite, Darwin] Fix failing darwin-version-1.c.

Recent platform linkers will no longer accept linking for a target
OS version less than 10.4.  Recent SDKs no longer have the libgcc_s
shims used for 10.4 and 10.5.  So we need to adjust tests that expect
these.

gcc/testsuite/ChangeLog:

2020-01-05  Iain Sandoe  <iain@sandoe.co.uk>

* gcc.dg/darwin-version-1.c: Adjust test to use different
options for Darwin4-9 and Darwin10+.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279888 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/93141
jakub [Sun, 5 Jan 2020 12:52:24 +0000 (12:52 +0000)]
PR target/93141
* config/i386/i386.md (SWIDWI): New mode iterator.
(DWI, dwi): Add TImode variants.
(addv<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.
(*addv<mode>4_1): Rename to ...
(addv<mode>4_1): ... this.
(QWI): New mode attribute.
(*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
define_insn_and_split patterns.
(*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
patterns.
(uaddv<mode>4): Use SWIDWI iterator instead of SWI.  Use
<general_hilo_operand> instead of <general_operand>.
(*addcarry<mode>_1): New define_insn.
(*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.

* gcc.target/i386/pr93141-1.c: New test.
* gcc.dg/pr67089-6.c: Expect 16 ADD_OVERFLOW calls even on ia32.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279887 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/93138
jakub [Sun, 5 Jan 2020 12:50:40 +0000 (12:50 +0000)]
PR c++/93138
* parser.c (cp_parser_check_class_key): Disable access checks for the
simple name lookup.
(cp_parser_maybe_warn_enum_key): Likewise.  Return early if
!warn_redundant_tags.

* g++.dg/warn/Wredundant-tags-2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279886 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoGuard inclusion of vxAtomicLib.h from gthr-vxworks.h
hainque [Sun, 5 Jan 2020 12:45:54 +0000 (12:45 +0000)]
Guard inclusion of vxAtomicLib.h from gthr-vxworks.h

2020-01-05  Olivier Hainque  <hainque@adacore.com>

        * config/gthr-vxworks.h: Guard #include vxAtomicLib.h
by IN_LIBGCC2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279885 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/93046
jakub [Sun, 5 Jan 2020 00:49:14 +0000 (00:49 +0000)]
PR c++/93046
* cp-gimplify.c (cp_gimplify_init_expr): Don't look through
TARGET_EXPR if it has been gimplified already.

* g++.dg/ext/cond4.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279884 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Sun, 5 Jan 2020 00:16:15 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@279883 138bc75d-0d04-0410-961f-82ee72b054a4

This page took 0.15095 seconds and 5 git commands to generate.