- 09 Jan, 2020 14 commits
-
-
2020-01-09 Martin Liska <mliska@suse.cz> * params.opt: Set Optimization for param_max_speculative_devirt_maydefs. From-SVN: r280042
Martin Liska committed -
PR middle-end/93200 - spurious -Wstringop-overflow due to assignment vectorization to multiple members 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. From-SVN: r280041
Martin Sebor committed -
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. From-SVN: r280040
Martin Liska committed -
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
Richard Biener committed -
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
Richard Biener committed -
* common/config/avr/avr-common.c (avr_option_optimization_table) [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early. From-SVN: r280033
Georg-Johann Lay committed -
2020-01-09 Martin Liska <mliska@suse.cz> * cgraphclones.c (symbol_table::materialize_all_clones): Use cgraph_node::dump_name. From-SVN: r280031
Martin Liska committed -
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
Jakub Jelinek committed -
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
Jakub Jelinek committed -
* 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
François Dumont committed -
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
David Malcolm committed -
gcc/ChangeLog: * sbitmap.h (auto_sbitmap): Add operator const_sbitmap. From-SVN: r280026
David Malcolm committed -
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
Jim Wilson committed -
From-SVN: r280024
GCC Administrator committed
-
- 08 Jan, 2020 26 commits
-
-
* cp-gimplify.c (cp_gimplify_expr) [TARGET_EXPR]: Check TARGET_EXPR_DIRECT_INIT_P. * constexpr.c (cxx_eval_constant_expression): Likewise. From-SVN: r280019
Jason Merrill committed -
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
Jason Merrill committed -
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
Jason Merrill committed -
From-SVN: r280016
Jeff Law committed -
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
David Malcolm committed -
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
Jonathan Wakely committed -
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
Joel Brobecker committed -
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
Jakub Jelinek committed -
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
Jakub Jelinek committed -
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
Olivier Hainque committed -
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
Martin Liska committed -
From-SVN: r280008
Tobias Burnus committed -
From-SVN: r280007
Tobias Burnus committed -
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
Richard Biener committed -
PR target/93182 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. From-SVN: r280005
Georg-Johann Lay committed -
2020-01-08 Richard Biener <rguenther@suse.de> PR testsuite/92997 * gcc.dg/torture/ftrapv-1.c (iaddv): Use noipa attribute. From-SVN: r280003
Richard Biener committed -
From-SVN: r280002
Georg-Johann Lay committed -
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
Richard Biener committed -
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
Martin Liska committed -
2020-01-08 Martin Liska <mliska@suse.cz> * cgraph.c (cgraph_node::dump): Use systematically dump_asm_name. From-SVN: r279998
Martin Liska committed -
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
Georg-Johann Lay committed -
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
Georg-Johann Lay committed -
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
Richard Earnshaw committed -
From-SVN: r279989
Jason Merrill committed -
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
Thomas Rodgers committed -
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
Feng Xue committed
-