aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-07-01cfg.c (scale_bbs_frequencies): New function.Jan Hubicka16-102/+132
* cfg.c (scale_bbs_frequencies): New function. * cfg.h (scale_bbs_frequencies): Declare it. * cfgloopanal.c (single_likely_exit): Cleanup. * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability as parameter. (scale_loop_profile): Likewise. (loop_version): Likewise. (create_empty_loop_on_edge): Update. * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile, scale_loop_frequencies, scale_loop_profile, loopify, loop_version): Update prototypes. * modulo-sched.c (sms_schedule): Update. * predict.c (unlikely_executed_edge_p): Also check probability. (probably_never_executed_edge_p): Fix typo. * tree-if-conv.c (version_loop_for_if_conversion): Update. * tree-parloops.c (gen_parallel_loop): Update. * tree-ssa-loop-ivcanon.c (try_peel_loop): Update. * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. * tree-ssa-loop-split.c (split_loop): Update. * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update. * tree-vect-loop-manip.c (vect_do_peeling): Update. (vect_loop_versioning): Update. * tree-vect-loop.c (scale_profile_for_vect_loop): Update. From-SVN: r249872
2017-07-01* trans-mem.c (split_bb_make_tm_edge): Update profile.Jan Hubicka2-1/+10
From-SVN: r249871
2017-07-01tree-if-conv.c (combine_blocks): Use make_single_succ_edge to keep profile ↵Jan Hubicka2-1/+6
consistent. * tree-if-conv.c (combine_blocks): Use make_single_succ_edge to keep profile consistent. From-SVN: r249870
2017-07-01cfgrtl.c (rtl_flow_call_edges_add): Update profile.Jan Hubicka4-4/+22
* cfgrtl.c (rtl_flow_call_edges_add): Update profile. * tree-cfg.c (gimple_flow_call_edges_add): Likewise. * profile-count.h (max_safe_multiplier): Make unsigned. (profile_count::guessed_zero): New. From-SVN: r249869
2017-07-01bb-reorder.c (fix_up_crossing_landing_pad, [...]): Use make_single_succ_edge ↵Jan Hubicka2-2/+8
to keep profile consistent. * bb-reorder.c (fix_up_crossing_landing_pad, fix_crossing_conditional_branches): Use make_single_succ_edge to keep profile consistent. From-SVN: r249868
2017-07-01tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge to update ↵Jan Hubicka2-1/+6
profile. * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge to update profile. From-SVN: r249867
2017-07-01re PR sanitizer/81262 (verify_flow_info failed for asmgoto test-case with ↵Jakub Jelinek1-1/+0
-fsanitize=undefined) PR sanitizer/81262 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to the right scopes, make sure cond_jump isn't preserved between multiple iterations. Search for fallthru edge whenever there are 3+ edges and use find_fallthru_edge for it. From-SVN: r249866
2017-07-01re PR sanitizer/81262 (verify_flow_info failed for asmgoto test-case with ↵Jakub Jelinek5-30/+58
-fsanitize=undefined) PR sanitizer/81262 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to the right scopes, make sure cond_jump isn't preserved between multiple iterations. Search for fallthru edge whenever there are 3+ edges and use find_fallthru_edge for it. * gcc.c-torture/compile/pr81262.c: New test. * g++.dg/ubsan/pr81262.C: New test. From-SVN: r249865
2017-07-01Patch by Alexander Monakov <amonakov@ispras.ru>Jan Hubicka2-3/+6
Patch by Alexander Monakov <amonakov@ispras.ru> * sel-sched-ir.c (compute_succs_info): Handle uninitialized probabilities consistently. From-SVN: r249864
2017-07-01sel-sched-ir.c (compute_succs_info): Handle uninitialized probabilities ↵Jan Hubicka2-1/+6
consistently. * sel-sched-ir.c (compute_succs_info): Handle uninitialized probabilities consistently. From-SVN: r249863
2017-07-01pa.c (pa_expand_compare_and_swap_loop): Update call of emit_cmp_and_jump_insns.Jan Hubicka2-1/+7
* pa.c (pa_expand_compare_and_swap_loop): Update call of emit_cmp_and_jump_insns. From-SVN: r249862
2017-07-01Daily bump.GCC Administrator1-1/+1
From-SVN: r249861
2017-06-30re PR ipa/81261 (ICE with -fno-guess-branch-probability)Jan Hubicka4-0/+44
PR ipa/81261 * tree-inline.c (expand_call_inline): Combine profile statuses. From-SVN: r249856
2017-06-30PR c++/81257 - ICE with invalid ::template.Jason Merrill3-5/+9
PR c++/54769 - wrong lookup of dependent template-name. * parser.c (cp_parser_template_name): Revert part of last change. From-SVN: r249855
2017-06-30tree-if-conv.c (predicate_scalar_phi): Update new_stmt if fold_stmt returned ↵Andrew Pinski4-2/+30
true. 2017-06-30 Andrew Pinski <apinski@cavium.com> * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if fold_stmt returned true. 2017-06-30 Andrew Pinski <apinski@cavium.com> * gcc.dg/torture/pr81245.c: New testcase. From-SVN: r249854
2017-06-30config-lang.in (gtfiles): Add cp/lex.c.Nathan Sidwell11-80/+101
* config-lang.in (gtfiles): Add cp/lex.c. * cp-tree.h (mangle_convop_name_for_type): Rename ... (make_conv_op_name): ... here. Move to lex. * lambda.c (maybe_add_lambda_conv_op): Update. * parser.c (cp_parser_conversion_function_id): Update. * pt.c (tsubst_decl, tsubst_baselink, tsubst_copy, tsubst_copy_and_build): Update. * semantics.c (apply_deduced_return_type): Update. * mangle.c (conv_type_hasher, conv_type_names, mangle_conv_op_name_for_type): Move to ... * lex.c (conv_type_hasher, conv_type_names, make_convop_name): ... here. Rename. * libcp1plugin.cc (plugin_build_decl): Use make_conv_op_name. (plugin_build_dependent_expr): Likewise. From-SVN: r249852
2017-06-30ggc.h (empty_string): Delete.Nathan Sidwell5-33/+25
* ggc.h (empty_string): Delete. * cfgexpand.c (expand_asm_stmt): Use plain "". * optabs.c (expand_asm_memory_barrier): Likewise. * stringpool.c (empty_string): Delete. (digit_vector, digit_string): Delete. (ggc_alloc_string): Use plain "", don't optimize single digit strings. Use ggc_alloc_atomic. From-SVN: r249851
2017-06-30[rtlanal] Do a better job of costing parallel sets containing flag-setting ↵Richard Earnshaw2-5/+29
operations. Many parallel set insns are of the form of a single set that also sets the condition code flags. In this case the cost of such an insn is normally the cost of the part that doesn't set the flags, since updating the condition flags is simply a side effect. At present all such insns are treated as having unknown cost (ie 0) and combine assumes that such insns are infinitely more expensive than any other insn sequence with a non-zero cost. This patch addresses this problem by allowing insn_rtx_cost to ignore the condition setting part of a PARALLEL iff there is exactly one comparison set and one non-comparison set. If the only set operation is a comparison we still use that as the basis of the insn cost. * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one comparison set and one other set, use the cost of the non-comparison set. Bootstrapped on aarch64-none-linuxgnu From-SVN: r249850
2017-06-30ggc.h: Replace all 'static inline' with plain 'inline'.Nathan Sidwell2-20/+23
* ggc.h: Replace all 'static inline' with plain 'inline'. Fix some formatting. From-SVN: r249848
2017-06-30tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing loops.Peter Bergner2-23/+24
* tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing loops. Remove now unneeded calls to gimple_switch_set_label() that just set removed labels to NULL_TREE. From-SVN: r249847
2017-06-30tree-ssanames.c (set_range_info_raw): Abstract from ...Aldy Hernandez5-6/+58
* tree-ssanames.c (set_range_info_raw): Abstract from ... (set_range_info): ...here. Only call set_range_info_raw if domain is useful. (set_nonzero_bits): Call set_range_info_raw. * tree-ssanames.h (set_range_info_raw): New. testsuite/ * gcc.dg/Walloca-14.c: Adapt test to recognize new complaint of unbounded use. From-SVN: r249846
2017-06-30Fix location of typeid() (PR c++/80014)David Malcolm4-2/+61
gcc/cp/ChangeLog: PR c++/80014 * parser.c (cp_parser_postfix_expression): Construct a location for typeid expressions. gcc/testsuite/ChangeLog: PR c++/80014 * g++.dg/plugin/diagnostic-test-expressions-1.C (std::type_info): Add declaration. (test_typeid): New test function. From-SVN: r249845
2017-06-30re PR target/81225 (ICE with -mavx512ifma -O3 -ffloat-store)Jakub Jelinek4-9/+47
PR target/81225 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI, V16FI and VI8F_256 iterators, use <store_mask_predicate> instead of nonimmediate_operand and <store_mask_constraint> instead of m for the input operand. For V8FI iterator, always split if input is a MEM. For V16FI and V8SF_256 iterators, don't test if both operands are MEM if <mask_applied>. For VI4F_256 iterator, use <store_mask_predicate> instead of register_operand and <store_mask_constraint> instead of v for the input operand. Make sure both operands aren't MEMs for if not <mask_applied>. * gcc.target/i386/pr81225.c: New test. From-SVN: r249844
2017-06-30cp-tree.h (lookup_fnfields_1, [...]): Don't declare.Nathan Sidwell27-239/+234
* cp-tree.h (lookup_fnfields_1, class_method_index_for_fn): Don't declare. (lookup_all_conversions): Declare. * class.c (get_basefndecls): Use lookup_fnfields_slot. * decl.c (register_dtor_fn): Use lookup_fnfields_slot. * decl2.c (check_class_fn): Use lookup_fnfields_slot. Rework diagnostics. * pt.c (retrieve_specialization): Use lookup_fnfields_slot. (check_explicit_specialization): Use lookup_fnfields_slot_nolazy, lookup_all_conversions. * search.c (lookup_fnfields_1): Make static. (lookup_all_conversions): New. (class_method_index_for_fn): Delete. * semantics.c (classtype_has_nothrow_assign_or_copy_p): Use lookup_fnfields_slot. * g++.dg/concepts/memfun-err.C: Adjust diagnostics. * g++.dg/cpp0x/decltype9.C: Likewise. * g++.dg/cpp0x/forw_enum9.C: Likewise. * g++.dg/lookup/decl1.C: Likewise. * g++.dg/lookup/extern-c-redecl.C: Likewise. * g++.dg/other/pr28432.C: Likewise. * g++.dg/parse/crash12.C: Likewise. * g++.dg/parse/enum3.C: Likewise. * g++.dg/parse/operator6.C: Likewise. * g++.dg/template/crash69.C: Likewise. * g++.dg/template/error27.C: Likewise. * g++.dg/template/error28.C: Likewise. * g++.dg/template/memfriend6.C: Likewise. * g++.old-deja/g++.mike/err1.C: Likewise. * g++.old-deja/g++.mike/p811.C: Likewise. * g++.old-deja/g++.other/crash25.C: Likewise. * g++.old-deja/g++.other/dtor4.C: Likewise. * g++.old-deja/g++.pt/t37.C: Likewise. From-SVN: r249843
2017-06-30* lto-wrapper.c (copy_file) Close both file descriptors beforeSylvestre Ledru2-0/+7
exiting normally. From-SVN: r249841
2017-06-30Fix removal of ifunc (PR ipa/81214).Martin Liska4-32/+57
2017-06-30 Martin Liska <mliska@suse.cz> PR ipa/81214 * gcc.target/i386/pr81214.c: New test. 2017-06-30 Martin Liska <mliska@suse.cz> PR ipa/81214 * multiple_target.c (create_dispatcher_calls): Make ifunc also for function that don't have calls or are not referenced. From-SVN: r249840
2017-06-30tree-vect-slp.c (vect_slp_analyze_node_operations): Only analyze the first ↵Richard Biener3-75/+81
scalar stmt. 2017-06-30 Richard Biener <rguenther@suse.de> * tree-vect-slp.c (vect_slp_analyze_node_operations): Only analyze the first scalar stmt. Move vector type computation for the BB case here from ... * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard live operation processing in the SLP case properly. From-SVN: r249839
2017-06-30call.c (build_new_method_call_1): Use constructo_name to get ctor name.Nathan Sidwell8-42/+49
* call.c (build_new_method_call_1): Use constructo_name to get ctor name. Move argument processing earlier to merge cdtor handling blocks. * decl.c (grokfndecl): Cdtors have special names. * method.c (implicitly_declare_fn): Likewise. Simplify flag setting. * pt.c (check_explicit_specialization): Cdtor name is already special. * search.c (class_method_index_for_fn): Likewise. * g++.dg/plugin/decl-plugin-test.C: Expect special ctor name. From-SVN: r249838
2017-06-30re PR c++/81229 (ICE in c_tree_chain_next on aarch64)Nathan Sidwell4-3/+25
PR c++/81229 * name-lookup.c (do_pushdecl): Reset IDENTIFIER_TYPE when finding a matching TYPE_DECL. * g++.dg/lookup/pr81229.C: New. From-SVN: r249835
2017-06-30graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.Richard Biener2-2/+6
2017-06-30 Richard Biener <rguenther@suse.de> * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax. From-SVN: r249834
2017-06-30Call BUILT_IN_ASAN_HANDLE_NO_RETURN before BUILT_IN_UNWIND_RESUME (PR ↵Martin Liska4-0/+57
sanitizer/81021). 2017-06-30 Martin Liska <mliska@suse.cz> PR sanitizer/81021 * g++.dg/asan/pr81021.C: New test. 2017-06-30 Martin Liska <mliska@suse.cz> PR sanitizer/81021 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN before BUILT_IN_UNWIND_RESUME when ASAN is used. From-SVN: r249833
2017-06-30Documentation: Clean up AArch64 options.Yvan Roux2-8/+14
gcc/ 2017-06-30 Yvan Roux <yvan.roux@linaro.org> * doc/invoke.texi (AArch64): Add missing options and remove redundant ones. From-SVN: r249832
2017-06-30re PR tree-optimization/81249 (ICE: error: incompatible types in PHI argument 0)Richard Biener4-6/+44
2017-06-30 Richard Biener <rguenther@suse.de> PR tree-optimization/81249 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert condition reduction result to original scalar type. * g++.dg/torture/pr81249.C: New testcase. From-SVN: r249831
2017-06-30profile-count.h: Fix typos and whitespace issues.Andreas Krebbel2-23/+28
gcc/ChangeLog: 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * profile-count.h (enum profile_quality): Fix typos and whitespace issues. From-SVN: r249830
2017-06-30S/390: Adjust to the recent branch probability changes.Andreas Krebbel2-4/+8
This fixes the bootstrap failure triggered by the recent changes wrt branch probabilities aka emit_cmp_and_jump_insns does not accept integers as branch probability anymore. gcc/ChangeLog: 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.c (s390_expand_setmem): Adjust to the new data type for branch probabilities. From-SVN: r249829
2017-06-30aarch64-fusion-pairs.def: Add ALU_BRANCH entry.Julian Brown3-1/+54
2017-06-29 Julian Brown <julian@codesourcery.com> Naveen H.S <Naveen.Hurugalawadi@cavium.com> * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry. * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type. (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag. (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH. Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com> From-SVN: r249828
2017-06-30aarch64.c (aarch_macro_fusion_pair_p): Push the check for CC usage into ↵Naveen H.S4-26/+50
AARCH64_FUSE_CMP_BRANCH. 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com> * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the check for CC usage into AARCH64_FUSE_CMP_BRANCH. * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for CC usage from generic code to here. * sched-deps.c (sched_macro_fuse_insns): Move the condition for CC usage into the target macros. From-SVN: r249827
2017-06-30Daily bump.GCC Administrator1-1/+1
From-SVN: r249826
2017-06-29netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared objects.Maya Rashish2-0/+7
2017-06-29 Maya Rashish <coypu@sdf.org> * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared objects. From-SVN: r249822
2017-06-29arm-builtins.c: Include profile-count.hJan Hubicka3-1/+9
* arm/arm-builtins.c: Include profile-count.h * except.c (sjlj_emit_function_enter): Use profile_probability::unlikely. From-SVN: r249821
2017-06-29class.c (add_method): Change pair of errors to error + inform.Paolo Carlini14-32/+59
/cp 2017-06-29 Paolo Carlini <paolo.carlini@oracle.com> * class.c (add_method): Change pair of errors to error + inform. (handle_using_decl): Likewise. /testsuite 2017-06-29 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/inh-ctor3.C: Adjust for dg-message vs dg-error. * g++.dg/diagnostic/variadic1.C: Likewise. * g++.dg/gomp/udr-3.C: Likewise. * g++.dg/overload/error1.C: Likewise. * g++.dg/overload/error2.C: Likewise. * g++.dg/template/duplicate1.C: Likewise. * g++.old-deja/g++.benjamin/warn02.C: Likewise. * g++.old-deja/g++.brendan/arm2.C: Likewise. * g++.old-deja/g++.other/redecl2.C: Likewise. * g++.old-deja/g++.other/redecl4.C: Likewise. * g++.old-deja/g++.pt/memtemp78.C: Likewise. From-SVN: r249820
2017-06-29* constexpr.c, error.c, tree.c: Remove WITH_CLEANUP_EXPR handling.Jason Merrill4-9/+2
From-SVN: r249818
2017-06-29PR c++/81180 - ICE with C++17 deduction of member class template.Jason Merrill3-11/+31
* pt.c (build_deduction_guide): Correct member template handling. From-SVN: r249816
2017-06-29rs6000.c (toc_relative_expr_p): Make tocrel_base and tocrel_offset be ↵Aaron Sawdey3-19/+48
pointer args rather than implicitly using... 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base and tocrel_offset be pointer args rather than implicitly using static versions. (legitimate_constant_pool_address_p, rs6000_emit_move, const_load_sequence_p, adjust_vperm): Add local tocrel_base and tocrel_offset and use in toc_relative_expr_p call. (print_operand, print_operand_address): Use static tocrel_base_oac and tocrel_offset_oac. (rs6000_output_addr_const_extra): Use static tocrel_base_oac and tocrel_offset_oac. From-SVN: r249815
2017-06-29PR c++/81188 - matching decltype of member function call.Jason Merrill3-5/+18
* tree.c (cp_tree_equal): Remove COMPONENT_REF special case. From-SVN: r249813
2017-06-29builtins.md (ffssi2_internal): Correct constraint.Maya Rashish2-1/+5
2017-06-29 Maya Rashish <coypu@sdf.org> * config/vax/builtins.md (ffssi2_internal): Correct constraint. From-SVN: r249812
2017-06-29expr.c (expand_expr): When testing for unaligned objects...Eric Botcazou2-5/+11
* expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned objects, take into account only the alignment of 'op0' and 'mode1' if 'op0' is a MEM. From-SVN: r249811
2017-06-29re PR fortran/77765 (ICE in gfc_match_oacc_routine, at fortran/openmp.c:1781)Cesar Philippidis4-1/+32
PR fortran/77765 gcc/fortran/ * openmp.c (gfc_match_oacc_routine): Check if proc_name exist before comparing the routine name against it. gcc/testsuite/ * gfortran.dg/goacc/pr77765.f90: New test. From-SVN: r249809
2017-06-29ccmp_2.c: New test.Steve Ellcey2-0/+16
2017-06-29 Steve Ellcey <sellcey@cavium.com> * gcc.target/aarch64/ccmp_2.c: New test. From-SVN: r249806
2017-06-29ccmp.c (ccmp_tree_comparison_p): New function.Steve Ellcey4-74/+111
2017-06-29 Steve Ellcey <sellcey@cavium.com> * ccmp.c (ccmp_tree_comparison_p): New function. (ccmp_candidate_p): Update to use above function. (get_compare_parts): New function. (expand_ccmp_next): Update to use new functions. (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use new functions. (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1, take mode as argument. * ccmp.h (expand_ccmp_expr): Add mode as argument. * expr.c (expand_expr_real_1): Pass mode as argument. From-SVN: r249805