- 02 Jul, 2017 3 commits
-
-
The test case triggered this assert in vect_update_misalignment_for_peel: gcc_assert (DR_MISALIGNMENT (dr) / dr_size == DR_MISALIGNMENT (dr_peel) / dr_peel_size); The problem was that: - one memory reference guaranteed a high base alignment, when considering that reference in isolation. This meant that we could calculate the vector misalignment for its DR at compile time. - the other memory reference only guaranteed a low base alignment, when considering that reference in isolation. We therefore couldn't calculate the vector misalignment for its DR at compile time. - when looking at the values of the two addresses as a pair (rather than the memory references), it was obvious that they had the same misalignment, whatever that misalignment happened to be. This is working as designed, so the patch restricts the assert to cases in which both addresses have a compile-time misalignment. In the test case this looks like a missed opportunity. Both references are unconditional, so it should be possible to use the highest of the available base alignment guarantees when analyzing each reference. A later patch does this, but the problem would still remain for conditional references. 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR tree-optimization/81136 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only assert that two references with the same misalignment have the same compile-time misalignment if those compile-time misalignments are known. gcc/testsuite/ PR tree-optimization/81136 * gcc.dg/vect/pr81136.c: New test. From-SVN: r249878
Richard Sandiford committed -
A tree type dump currently doesn't print the attributes. Since we have so many now and they do many interesting things dumping them can be useful. So dump them by default for tree type dumps. gcc/: 2017-07-01 Andi Kleen <ak@linux.intel.com> * print-tree.c (print_node): Print all attributes. From-SVN: r249877
Andi Kleen committed -
From-SVN: r249876
GCC Administrator committed
-
- 01 Jul, 2017 12 commits
-
-
* 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
Jan Hubicka committed -
From-SVN: r249871
Jan Hubicka committed -
* tree-if-conv.c (combine_blocks): Use make_single_succ_edge to keep profile consistent. From-SVN: r249870
Jan Hubicka committed -
* 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
Jan Hubicka committed -
bb-reorder.c (fix_up_crossing_landing_pad, [...]): Use make_single_succ_edge 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
Jan Hubicka committed -
* tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge to update profile. From-SVN: r249867
Jan Hubicka committed -
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
Jakub Jelinek committed -
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
Jakub Jelinek committed -
Patch by Alexander Monakov <amonakov@ispras.ru> * sel-sched-ir.c (compute_succs_info): Handle uninitialized probabilities consistently. From-SVN: r249864
Jan Hubicka committed -
* sel-sched-ir.c (compute_succs_info): Handle uninitialized probabilities consistently. From-SVN: r249863
Jan Hubicka committed -
* pa.c (pa_expand_compare_and_swap_loop): Update call of emit_cmp_and_jump_insns. From-SVN: r249862
Jan Hubicka committed -
From-SVN: r249861
GCC Administrator committed
-
- 30 Jun, 2017 25 commits
-
-
PR ipa/81261 * tree-inline.c (expand_call_inline): Combine profile statuses. From-SVN: r249856
Jan Hubicka committed -
PR c++/54769 - wrong lookup of dependent template-name. * parser.c (cp_parser_template_name): Revert part of last change. From-SVN: r249855
Jason Merrill committed -
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
Andrew Pinski committed -
* 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
Nathan Sidwell committed -
* 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
Nathan Sidwell committed -
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
Richard Earnshaw committed -
* ggc.h: Replace all 'static inline' with plain 'inline'. Fix some formatting. From-SVN: r249848
Nathan Sidwell committed -
* 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
Peter Bergner committed -
* 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
Aldy Hernandez committed -
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
David Malcolm committed -
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
Jakub Jelinek committed -
* 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
Nathan Sidwell committed -
exiting normally. From-SVN: r249841
Sylvestre Ledru committed -
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
Martin Liska committed -
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
Richard Biener committed -
* 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
Nathan Sidwell committed -
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
Nathan Sidwell committed -
2017-06-30 Richard Biener <rguenther@suse.de> * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax. From-SVN: r249834
Richard Biener committed -
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
Martin Liska committed -
gcc/ 2017-06-30 Yvan Roux <yvan.roux@linaro.org> * doc/invoke.texi (AArch64): Add missing options and remove redundant ones. From-SVN: r249832
Yvan Roux committed -
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
Richard Biener committed -
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
Andreas Krebbel committed -
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
Andreas Krebbel committed -
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
Julian Brown committed -
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
Naveen H.S committed
-