- 03 Oct, 2019 7 commits
-
-
PR jit/91928 * ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum. * ipa-prop.c (ipcp_free_transformation_sum): New function. * ipa-prop.h (ipcp_free_transformation_sum): Add declaration. From-SVN: r276507
Andrea Corallo committed -
2019-10-03 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84487 * trans-decl.c (gfc_get_symbol_decl): For __def_init, set DECL_ARTIFICAL and do not set TREE_READONLY. 2019-10-03 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84487 * gfortran.dg/typebound_call_22.f03: xfail. From-SVN: r276506
Thomas Koenig committed -
Character type names now incorporate length, kind is only shown if the default character is not being used. Examples: character(7) is reported as CHARACTER(7) character(len=20,kind=4) is reported as CHARACTER(20,4) dummy character variables with assumed length: character(*) is reported as CHARACTER(*) character(*,kind=4) is reported as CHARACTER(*,4) From-SVN: r276505
Mark Eggleston committed -
* Makefile.in (OBJS): Add range.o and range-op.o. Remove wide-int-range.o. * function-tests.c (test_ranges): New. (function_tests_c_tests): Call test_ranges. * ipa-cp.c (ipa_vr_operation_and_type_effects): Call range_fold_unary_expr instead of extract_range_from_unary_expr. * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same. * range-op.cc: New file. * range-op.h: New file. * range.cc: New file. * range.h: New file. * selftest.h (range_tests): New prototype. * ssa.h: Include range.h. * tree-vrp.c (value_range_base::value_range_base): New constructors. (value_range_base::singleton_p): Do not call ranges_from_anti_range until sure we will need to. (value_range_base::type): Rename gcc_assert to gcc_checking_assert. (vrp_val_is_max): New argument. (vrp_val_is_min): Same. (wide_int_range_set_zero_nonzero_bits): Move from wide-int-range.cc. (extract_range_into_wide_ints): Remove. (extract_range_from_multiplicative_op): Remove. (extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code from extract_range_from_binary_expr. (extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code from extract_range_from_binary_expr. (extract_range_from_binary_expr): Remove. (normalize_for_range_ops): New. (range_fold_binary_expr): New. (range_fold_unary_expr): New. (value_range_base::num_pairs): New. (value_range_base::lower_bound): New. (value_range_base::upper_bound): New. (value_range_base::upper_bound): New. (value_range_base::contains_p): New. (value_range_base::invert): New. (value_range_base::union_): New. (value_range_base::intersect): New. (range_compatible_p): New. (value_range_base::operator==): New. (determine_value_range_1): Call range_fold_*expr instead of extract_range_from_*expr. * tree-vrp.h (class value_range_base): Add new constructors. Add methods for union_, intersect, operator==, contains_p, num_pairs, lower_bound, upper_bound, invert. (vrp_val_is_min): Add handle_pointers argument. (vrp_val_is_max): Same. (extract_range_from_unary_expr): Remove. (extract_range_from_binary_expr): Remove. (range_fold_unary_expr): New. (range_fold_binary_expr): New. * vr-values.c (vr_values::extract_range_from_binary_expr): Call range_fold_binary_expr instead of extract_range_from_binary_expr. (vr_values::extract_range_basic): Same. (vr_values::extract_range_from_unary_expr): Call range_fold_unary_expr instead of extract_range_from_unary_expr. * wide-int-range.cc: Remove. * wide-int-range.h: Remove. From-SVN: r276504
Aldy Hernandez committed -
From-SVN: r276503
Michael Meissner committed -
From-SVN: r276502
GCC Administrator committed -
2019-10-02 Michael Meissner <meissner@linux.ibm.com> * config/rs6000/rs6000.c (mem_operand_gpr): Use SIGNED_16BIT_OFFSET_EXTRA_P. (mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P. (rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P. From-SVN: r276498
Michael Meissner committed
-
- 02 Oct, 2019 33 commits
-
-
As part of the integration of TS 18661-1 into C2x, many features became unconditional features not depending on any feature test macro being defined. This patch updates the conditionals on the *_WIDTH macros in limits.h and stdint.h accordingly so that they are defined for C2x. The macro CR_DECIMAL_DIG in float.h does still require __STDC_WANT_IEC_60559_BFP_EXT__ to be defined, and a test for this is added. Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc: * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ || (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)]. * glimits.h: Likewise. gcc/testsuite: * gcc.dg/cr-decimal-dig-2.c: New test. * gcc.dg/limits-width-2.c: New test. Based on limits-width-1.c. * gcc.dg/stdint-width-2.c: New test. Based on stdint-width-1.c. From-SVN: r276497
Joseph Myers committed -
/cp 2019-10-03 Paolo Carlini <paolo.carlini@oracle.com> * init.c (build_new): Use cp_expr_loc_or_input_loc in two places. * name-lookup.c (do_pushdecl): Use DECL_SOURCE_LOCATION. (push_class_level_binding_1): Likewise. (set_decl_namespace): Likewise. /testsuite 2019-10-03 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/diagnostic/integral-array-size-1.C: New. * g++.dg/cpp0x/alias-decl-1.C: Test location(s) too. * g++.dg/init/new43.C: Likewise. * g++.dg/lookup/friend12.C: Likewise. * g++.dg/lookup/pr79766.C: Likewise. * g++.dg/lookup/pr84375.C: Likewise. * g++.dg/other/new-size-type.C: Likewise. From-SVN: r276496
Paolo Carlini committed -
re PR rtl-optimization/91976 (RTL check: expected code 'const_int', have 'reg' in emit_block_move_hints, at expr.c:1627) PR rtl-optimization/91976 * expr.c (emit_block_move_hints): Don't call can_move_by_pieces if size is not CONST_INT_P, set pieces_ok to false in that case. Simplify CONST_INT_P (size) && pieces_ok to pieces_ok. Formatting fix. From-SVN: r276495
Jakub Jelinek committed -
* constexpr.c (cxx_eval_constant_expression) <case CLEANUP_STMT>: If not skipping upon entry to body, run cleanup with the same *jump_target as it started to run the cleanup even if the body returns, breaks or continues. (potential_constant_expression_1): Allow CLEANUP_STMT. * g++.dg/ext/constexpr-attr-cleanup1.C: New test. From-SVN: r276494
Jakub Jelinek committed -
* constexpr.c (cxx_eval_store_expression): Formatting fix. Handle const_object_being_modified with array type. From-SVN: r276493
Jakub Jelinek committed -
From-SVN: r276492
Martin Sebor committed -
gcc/testsuite/ChangeLog: PR tree-optimization/80936 * gcc.dg/Wnonnull-2.c: New test. * gcc.dg/Wnonnull-3.c: New test. * gcc.dg/nonnull-3.c: Expect more warnings. gcc/ChangeLog: PR tree-optimization/80936 * builtins.def (bcmp, bcopy, bzero): Declare nonnull. From-SVN: r276491
Martin Sebor committed -
My change to the -fipa-ra bookkeeping used ALL_REGS as the supposedly safe default assumption, but ALL_REGS isn't literally all registers, just a close approximation. This caused a bootstrap failure on arm-linux-gnu, where the condition code register isn't in ALL_REGS and so was being masked out of some call-clobbered sets. 2019-10-02 Richard Sandiford <richard.sandiford@arm.com> gcc/ * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET instead of reg_class_contents[ALL_REGS]. From-SVN: r276489
Richard Sandiford committed -
The .note.GNU-stack section tells the linker that this object does not require an executable stack. The .note.GNU-split-stack section tells the linker that functions in this object can be called directly by split-stack functions, without require a large stack. The .note.GNU-no-split-stack section tells the linker that functions in this object do not have a split-stack prologue. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/198440 From-SVN: r276488
Ian Lance Taylor committed -
While looking at concepts caching I noticed that we were clearing the caches unnecessarily for non-constant initialization, which shouldn't affect folding. * typeck2.c (store_init_value): Only clear_cv_and_fold_caches if the value is constant. From-SVN: r276487
Jason Merrill committed -
gcc/ * hash-map.h (default_hash_map_size): New variable. (create_ggc): Use it as default argument. (hash_map_maybe_create, hash_map_safe_get) (hash_map_safe_get_or_insert, hash_map_safe_put): New fns. gcc/cp/ * constexpr.c (maybe_initialize_fundef_copies_table): Remove. (get_fundef_copy): Use hash_map_safe_get_or_insert. * cp-objcp-common.c (cp_get_debug_type): Use hash_map_safe_*. * decl.c (store_decomp_type): Remove. (cp_finish_decomp): Use hash_map_safe_put. * init.c (get_nsdmi): Use hash_map_safe_*. * pt.c (store_defaulted_ttp, lookup_defaulted_ttp): Remove. (add_defaults_to_ttp): Use hash_map_safe_*. From-SVN: r276484
Jason Merrill committed -
2019-10-02 Andreas Tobler <andreast@gcc.gnu.org> * testsuite/libgomp.oacc-c-c++-common/loop-default.h: Remove alloca.h include. Replace alloca () with __builtin_alloca (). * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Likewise. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r276479
Andreas Tobler committed -
2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91784 * simplify.c (gfc_convert_constant): Simplify expression if the expres ion type is EXPR_OP. 2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91784 * gfortran.dg/pr91784.f90: New test. From-SVN: r276474
Steven G. Kargl committed -
2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91785 * primary.c (gfc_match_varspec): Ensure an inquiry parameter has it locus set. 2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91785 * gfortran.dg/pr91785.f90: New test. From-SVN: r276473
Steven G. Kargl committed -
2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91942 * io.c (match_vtag): Check for non-NULL result->symtree. (match_out_tag): Check for invalid constant due to inquiry parameter. (match_filepos): Instead of a syntax error, go to cleanup to get better error messages. 2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91942 * gfortran.dg/pr91587.f90: Update dg-error regex. * gfortran.dg/pr91942.f90: New test. From-SVN: r276472
Steven G. Kargl committed -
2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91943 * match.c (gfc_match_call): BOZ cannot be an actual argument in a subroutine reference. * resolve.c (resolve_function): BOZ cannot be an actual argument in a function reference. 2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91943 gfortran.dg/pr91943.f90 From-SVN: r276471
Steven G. Kargl committed -
* cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT, MAX_INLINE_INSNS_AUTO_O2_LIMIT): New. * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions. (can_inline_edge_by_limits_p): Use it. (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2. (want_inline_small_function_p): Use O2 bounds. (edge_badness): LIkewise. * opts.c (default_options): Add OPT_finline_functions. * params.def (PARAM_INLINE_MIN_SPEEDUP_O2, PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2): New parameters. * g++.dg/tree-ssa/pr53844.C: Add -fno-inline-functions --param max-inline-insns-single-O2=200. * gcc.c-torture/execute/builtins/builtins.exp: Add -fno-inline-functions to additional_flags. * gcc.dg/ipa/inline-7.c: Add -fno-inline-functions. * gcc.dg/optimize-bswapsi-5.c: Add -fno-inline-functions. * gcc.dg/tree-ssa/ssa-thread-12.c: Add --param early-inlining-insns-O2=14 -fno-inline-functions; revert previous change. * gcc.dg/winline-3.c: Use --param max-inline-insns-single-O2=1 --param inline-min-speedup-O2=100 instead of --param max-inline-insns-single=1 --param inline-min-speedup=100 * invoke.texi (-finline-functions): Update documentation. (max-inline-insns-single-O2, max-inline-insns-auto-O2, inline-min-speedup-O2): Document. (early-inlining-insns-O2): Simplify docs. From-SVN: r276470
Jan Hubicka committed -
* cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT, MAX_INLINE_INSNS_AUTO_O2_LIMIT): New. * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions. (can_inline_edge_by_limits_p): Use it. (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2. (want_inline_small_function_p): Use O2 bounds. (edge_badness): LIkewise. * opts.c (default_options): Add OPT_finline_functions. * params.def (PARAM_INLINE_MIN_SPEEDUP_O2, PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2): New parameters. * g++.dg/tree-ssa/pr53844.C: Add -fno-inline-functions --param max-inline-insns-single-O2=200. * gcc.c-torture/execute/builtins/builtins.exp: Add -fno-inline-functions to additional_flags. * gcc.dg/ipa/inline-7.c: Add -fno-inline-functions. * gcc.dg/optimize-bswapsi-5.c: Add -fno-inline-functions. * gcc.dg/tree-ssa/ssa-thread-12.c: Add --param early-inlining-insns-O2=14 -fno-inline-functions; revert previous change. * gcc.dg/winline-3.c: Use --param max-inline-insns-single-O2=1 --param inline-min-speedup-O2=100 instead of --param max-inline-insns-single=1 --param inline-min-speedup=100 * invoke.texi (-finline-functions): Update documentation. (max-inline-insns-single-O2, max-inline-insns-auto-O2, inline-min-speedup-O2): Document. (early-inlining-insns-O2): Simplify docs. From-SVN: r276469
Jan Hubicka committed -
The only symbols matched by std::e[a-q]* and std::e[s-z]* that are supposed to be in the GLIBCXX_3.4 version are std::exception::* and std::endl and std::ends. The latter two already have explicit patterns matching them, so we just need to match std::exception::*. This change ensures that any new symbols with a return type of std::enable_if<...> are not added to the GLIBCXX_3.4 version. * config/abi/pre/gnu.ver: Tighten up greedy wildcards. From-SVN: r276468
Jonathan Wakely committed -
PR rtl-optimization/87047 * ifcvt.c (average_cost): New static function. Use it... (noce_process_if_block): ... here. testsuite/ * gcc.dg/pr87047.c: New test. From-SVN: r276466
Alexander Monakov committed -
2019-10-02 Martin Jambor <mjambor@suse.cz> PR testsuite/91842 * gcc.dg/ipa/ipa-sra-19.c: Skip on powerpc. From-SVN: r276465
Martin Jambor committed -
* module.c (load_commons): Initialize flags to 0 to silecne -Wmaybe-uninitialized warning. (read_module): Likewise for n and comp_name. From-SVN: r276464
Jan Hubicka committed -
* doc/xml/manual/parallel_mode.xml: Add caveat about support for recent standards. * doc/html/*: Regenerate. From-SVN: r276463
Jonathan Wakely committed -
2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com> * config/rs6000/rs6000-protos.h (expand_block_move): Change prototype. * config/rs6000/rs6000-string.c (expand_block_move): Add might_overlap parm. * config/rs6000/rs6000.md (movmemsi): Add new pattern. (cpymemsi): Add might_overlap parm to expand_block_move() call. From-SVN: r276462
Aaron Sawdey committed -
2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com> * builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm. (expand_builtin_memcpy): Use might_overlap parm. (expand_builtin_mempcpy_args): Use might_overlap parm. (expand_builtin_memmove): Call expand_builtin_memory_copy_args. (expand_builtin_memory_copy_args): Add might_overlap parm. * expr.c (emit_block_move_via_cpymem): Rename to emit_block_move_via_pattern, add might_overlap parm, use cpymem or movmem optab as appropriate. (emit_block_move_hints): Add might_overlap parm, do the right thing for might_overlap==true. * expr.h (emit_block_move_hints): Update prototype. From-SVN: r276461
Aaron Sawdey committed -
* tree-eh.h (unsplit_eh_edges): Declare. * tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases. (unsplit_eh_edges): New function wrapping unsplit_all_eh. * gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h. (struct store_immediate_info): Add lp_nr field. (store_immediate_info::store_immediate_info): Add NR2 parameter and initialize lp_nr with it. (struct merged_store_group): Add lp_nr and only_constants fields. (merged_store_group::merged_store_group): Initialize them. (merged_store_group::can_be_merged_into): Deal with them. (pass_store_merging): Rename terminate_and_release_chain into terminate_and_process_chain. (pass_store_merging::terminate_and_process_all_chains): Adjust to above renaming and remove useless assertions. (pass_store_merging::terminate_all_aliasing_chains): Small tweak. (stmts_may_clobber_ref_p): Be prepared for different basic blocks. (imm_store_chain_info::coalesce_immediate_stores): Use only_constants instead of always recomputing it and compare lp_nr. (imm_store_chain_info::output_merged_store): If the group is in an active EH region, register new stores if they can throw. Moreover, if the insertion has created new basic blocks, adjust the PHI nodes of the post landing pad. (imm_store_chain_info::output_merged_stores): If the original stores are in an active EH region, deregister them. (lhs_valid_for_store_merging_p): Prettify. (adjust_bit_pos): New function extracted from... (mem_valid_for_store_merging): ...here. Use it for the base address and also for the offset if it is the addition of a constant. (lp_nr_for_store): New function. (pass_store_merging::process_store): Change return type to bool. Call lp_nr_for_store to initialize the store info. Propagate the return status of various called functions to the return value. (store_valid_for_store_merging_p): New predicate. (enum basic_block_status): New enumeration. (get_status_for_store_merging): New function. (pass_store_merging::execute): If the function can throw and catch non-call exceptions, unsplit the EH edges on entry and clean up the CFG on exit if something changed. Call get_status_for_store_merging for every basic block and keep the chains open across basic blocks when possible. Terminate and process open chains at the end, if any. From-SVN: r276459
Eric Botcazou committed -
2019-10-02 Richard Sandiford <richard.sandiford@arm.com> gcc/ * reginfo.c (globalize_reg): Fix shadowed variable in function_abis walk. From-SVN: r276457
Richard Sandiford committed -
Jeff pointed out that gcc.target/mips/call-clobbered-4.c started failing after the function-abi series. This is because IRA used to treat partly call-clobbered registers as hard conflicts and so wouldn't consider them for -fcaller-saves. Now that we treat call clobbers the same way regardless of where they come from, we can use $f21 as a caller-save register. This in turn means that -Os is no longer a special case in call-clobbered-3.c. (The new code is the same size as the old code.) 2019-10-02 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * gcc.target/mips/call-clobbered-3.c: Remove skip for -Os. * gcc.target/mips/call-clobbered-4.c: Delete. From-SVN: r276456
Richard Sandiford committed -
2019-10-02 Martin Jambor <mjambor@suse.cz> * cgraph.c (symbol_table::create_edge): New parameter cloning_p, do not compute some stuff when set. (cgraph_node::create_edge): Likewise. (cgraph_node::create_indirect_edge): Renamed last parameter to coning_p and flipped its meaning, don't even calculate inline_failed when set. * cgraph.h (cgraph_node::create_edge): Add new parameter. (symbol_table::::create_edge): Likewise. (cgraph_node::create_indirect_edge): Rename last parameter, flip the default value. * cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all call graph edge creating functions. From-SVN: r276455
Martin Jambor committed -
re PR c++/91222 (507.cactuBSSN_r build fails in warn_types_mismatch at ipa-devirt.c:1006 since r273571) PR c++/91222 * ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous namespace types. From-SVN: r276454
Jan Hubicka committed -
This change makes sure that if the driver is invoked with "-mcode-density" flag, then the assembler will receive it too. gcc/ xxxx-xx-xx Shahab Vahedi <shahab@synopsys.com> * config/arc/arc.h (ASM_SPEC): pass -mcode-density From-SVN: r276453
Shahab Vahedi committed -
2019-10-02 Richard Biener <rguenther@suse.de> * tree-vectorizer.h (vect_transform_reduction): Declare. * tree-vect-stmts.c (vect_transform_stmt): Use it. * tree-vect-loop.c (vectorizable_reduction): Split out reduction stmt transform to ... (vect_transform_reduction): ... this. From-SVN: r276452
Richard Biener committed -
gcc/fortran/ * dump-parse-tree.c (show_omp_clauses): Handle OMP_LIST_USE_DEVICE_ADDR. * gfortran.h (enum): Add OMP_LIST_USE_DEVICE_ADDR. * openmp.c (omp_mask1): Likewise. (gfc_match_omp_clauses): Match 'use_device_addr'. (OMP_TARGET_DATA_CLAUSES): Add OMP_LIST_USE_DEVICE_ADDR. (resolve_omp_clauses): Add it; add is_device_ptr checks. gcc/testsuite/ * gfortran.dg/gomp/is_device_ptr-1.f90: New. From-SVN: r276449
Tobias Burnus committed
-