[Bug tree-optimization/63841] [4.8 Regression] Incorrect strlen optimization after complete unroll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63841 --- Comment #12 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Thu Nov 20 14:29:41 2014 New Revision: 217858 URL: https://gcc.gnu.org/viewcvs?rev=217858&root=gcc&view=rev Log: 2014-11-20 Teresa Johnson Backport r217522 from gcc-4_9 for Google ref b/18344370 and b/18455179. 2014-11-13 Teresa Johnson PR tree-optimization/63841 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. 2014-11-13 Teresa Johnson PR tree-optimization/63841 * testsuite/g++.dg/tree-ssa/pr63841.C: New test. Added: branches/google/gcc-4_9/gcc/testsuite/g++.dg/tree-ssa/pr63841.C Modified: branches/google/gcc-4_9/gcc/tree-ssa-strlen.c
[Bug tree-optimization/63841] [4.8 Regression] Incorrect strlen optimization after complete unroll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63841 --- Comment #11 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Tue Nov 18 14:20:58 2014 New Revision: 217715 URL: https://gcc.gnu.org/viewcvs?rev=217715&root=gcc&view=rev Log: 2014-11-18 Teresa Johnson Backport from mainline and gcc-4_9 branch. 2014-11-13 Teresa Johnson PR tree-optimization/63841 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. 2014-11-13 Teresa Johnson PR tree-optimization/63841 * testsuite/g++.dg/tree-ssa/pr63841.C: New test. Added: branches/gcc-4_8-branch/gcc/testsuite/g++.dg/tree-ssa/pr63841.C Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/testsuite/ChangeLog branches/gcc-4_8-branch/gcc/tree-ssa-strlen.c
[Bug tree-optimization/63841] [4.8/4.9/5 Regression] Incorrect strlen optimization after complete unroll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63841 --- Comment #7 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Fri Nov 14 06:35:35 2014 New Revision: 217537 URL: https://gcc.gnu.org/viewcvs?rev=217537&root=gcc&view=rev Log: 2014-11-13 Teresa Johnson gcc: PR tree-optimization/63841 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. 2014-11-13 Teresa Johnson gcc/testsuite: PR tree-optimization/63841 * g++.dg/tree-ssa/pr63841.C: Remove prints, use abort. Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/tree-ssa/pr63841.C trunk/gcc/tree-ssa-strlen.c
[Bug tree-optimization/63841] [4.8/4.9/5 Regression] Incorrect strlen optimization after complete unroll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63841 --- Comment #6 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Thu Nov 13 21:51:11 2014 New Revision: 217522 URL: https://gcc.gnu.org/viewcvs?rev=217522&root=gcc&view=rev Log: 2014-11-13 Teresa Johnson gcc: PR tree-optimization/63841 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. 2014-11-13 Teresa Johnson gcc/testsuite: PR tree-optimization/63841 * testsuite/g++.dg/tree-ssa/pr63841.C: New test. Added: branches/gcc-4_9-branch/gcc/testsuite/g++.dg/tree-ssa/pr63841.C Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/testsuite/ChangeLog branches/gcc-4_9-branch/gcc/tree-ssa-strlen.c
[Bug tree-optimization/63841] [4.8/4.9/5 Regression] Incorrect strlen optimization after complete unroll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63841 --- Comment #5 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Thu Nov 13 15:36:48 2014 New Revision: 217505 URL: https://gcc.gnu.org/viewcvs?rev=217505&root=gcc&view=rev Log: 2014-11-13 Teresa Johnson gcc: PR tree-optimization/63841 * tree.c (initializer_zerop): A clobber does not zero initialize. gcc/testsuite: PR tree-optimization/63841 * g++.dg/tree-ssa/pr63841.C: New test. Added: trunk/gcc/testsuite/g++.dg/tree-ssa/pr63841.C Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree.c
[Bug bootstrap/63432] [5 Regression] profiledbootstrap failure with bootstrap-lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63432 --- Comment #30 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Wed Oct 15 15:45:59 2014 New Revision: 216269 URL: https://gcc.gnu.org/viewcvs?rev=216269&root=gcc&view=rev Log: 2014-10-15 Teresa Johnson PR bootstrap/63432 * tree-ssa-threadupdate.c (recompute_probabilities): Better overflow checking. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-threadupdate.c
[Bug bootstrap/63432] [5 Regression] profiledbootstrap failure with bootstrap-lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63432 --- Comment #22 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Thu Oct 9 04:38:24 2014 New Revision: 216024 URL: https://gcc.gnu.org/viewcvs?rev=216024&root=gcc&view=rev Log: 2014-10-07 Teresa Johnson PR bootstrap/63432. * tree-ssa-threadupdate.c (estimated_freqs_path): New function. (ssa_fix_duplicate_block_edges): Invoke it. (mark_threaded_blocks): Make two passes to avoid ordering dependences. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-threadupdate.c
[Bug middle-end/63422] [5.0 Regression] ICE in freqs_to_counts_path, at tree-ssa-threadupdate.c:981
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63422 --- Comment #7 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Thu Oct 2 20:30:11 2014 New Revision: 215822 URL: https://gcc.gnu.org/viewcvs?rev=215822&root=gcc&view=rev Log: 2014-10-01 Teresa Johnson PR middle-end/63422 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove asserts to handle incoming insanities. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-threadupdate.c
[Bug c++/61343] [C++11] Missing default initialization for class with default constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61343 --- Comment #4 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Wed Jun 11 13:45:00 2014 New Revision: 211466 URL: http://gcc.gnu.org/viewcvs?rev=211466&root=gcc&view=rev Log: Backport r211386 from gcc-4_9 (r211284 from trunk). Google ref b/15250505. 2014-06-04 Jason Merrill PR c++/61343 * decl.c (check_initializer): Maybe clear DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. Added: branches/google/gcc-4_8/gcc/testsuite/g++.dg/tls/thread_local9.C Modified: branches/google/gcc-4_8/gcc/cp/decl.c
[Bug tree-optimization/61009] [4.9 Regression] Incorrect jump threading in dom
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61009 --- Comment #12 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Fri May 9 16:59:56 2014 New Revision: 210279 URL: http://gcc.gnu.org/viewcvs?rev=210279&root=gcc&view=rev Log: Backport r210254 from trunk for Google b/14380607. 2014-05-08 Jeff Law PR tree-optimization/61009 * tree-ssa-threadedge.c (thread_through_normal_block): Return a tri-state rather than a boolean. When a block is too big to thread through, inform caller via negative return value. (thread_across_edge): If a block was too big for normal threading, then it's too big for a joiner too, so remove temporary equivalences and return immediately. PR tree-optimization/61009 * g++.dg/tree-ssa/pr61009.C: New test. Added: branches/google/gcc-4_9/gcc/testsuite/g++.dg/tree-ssa/pr61009.C Modified: branches/google/gcc-4_9/gcc/tree-ssa-threadedge.c
[Bug middle-end/43631] var-tracking inserts notes with non-NULL BLOCK_FOR_INSN in between basic blocks
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43631 --- Comment #26 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Thu Feb 13 21:15:06 2014 New Revision: 207766 URL: http://gcc.gnu.org/viewcvs?rev=207766&root=gcc&view=rev Log: 2014-02-13 Teresa Johnson For Google b/12971524, backport r197994 to fix PR60141. 2013-04-16 Steven Bosscher PR middle-end/43631 * emit-rtl.c (make_note_raw): New function. (link_insn_into_chain): New static inline function. (add_insn): Use it. (add_insn_before, add_insn_after): Factor insn chain linking code... (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions using link_insn_into_chain. (note_outside_basic_block_p): New helper function for emit_note_after and emit_note_before. (emit_note_after): Use nobb variant of add_insn_after if the note should not be contained in a basic block. (emit_note_before): Use nobb variant of add_insn_before if the note should not be contained in a basic block. (emit_note_copy): Use make_note_raw. (emit_note): Likewise. * bb-reorder.c (insert_section_boundary_note): Remove hack to set BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS. * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making the moved barrier the tail of the basic block it follows. * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow. Modified: branches/google/gcc-4_8/gcc/bb-reorder.c branches/google/gcc-4_8/gcc/emit-rtl.c branches/google/gcc-4_8/gcc/jump.c branches/google/gcc-4_8/gcc/var-tracking.c
[Bug gcov-profile/59542] [4.9 Regression] ICE: verify_flow_info failed during Firefox build with 'gold'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59542 --- Comment #4 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Thu Dec 19 22:11:25 2013 New Revision: 206135 URL: http://gcc.gnu.org/viewcvs?rev=206135&root=gcc&view=rev Log: 2013-12-19 Teresa Johnson PR gcov-profile/59542 * bb-reorder.c (duplicate_computed_gotos): Invoke fixup_partitions if we have made any changes. Modified: trunk/gcc/ChangeLog trunk/gcc/bb-reorder.c
[Bug gcov-profile/59527] [4.9 Regression] ICE: in fixup_reorder_chain, at cfgrtl.c:3739 during PGO Firefox build
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59527 --- Comment #7 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Tue Dec 17 22:35:38 2013 New Revision: 206072 URL: http://gcc.gnu.org/viewcvs?rev=206072&root=gcc&view=rev Log: 2013-12-17 Teresa Johnson PR gcov-profile/59527 * cfgrtl.c (fixup_reorder_chain): Handle a region-crossing branch, which can't be eliminated. Modified: trunk/gcc/ChangeLog trunk/gcc/cfgrtl.c
[Bug ipa/58862] [4.9 Regression] LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58862 --- Comment #27 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Tue Nov 26 03:48:06 2013 New Revision: 205378 URL: http://gcc.gnu.org/viewcvs?rev=205378&root=gcc&view=rev Log: Backport a variety of profile maintanance fixes from trunk to google/4_8: r203041 r203126 r203152 r203395 r203823 r203830 r204178 r204704 r204756 r197595 198416 202128 r203041 | law | 2013-09-30 13:09:25 -0700 (Mon, 30 Sep 2013) | 7 lines 2013-09-30 Teresa Johnson * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges): Update redirected out edge count in joiner case. (ssa_redirect_edges): Common the joiner and non-joiner cases so that joiner case gets profile updates. r203126 | tejohnson | 2013-10-02 12:18:17 -0700 (Wed, 02 Oct 2013) | 18 lines 2013-10-02 Teresa Johnson * dojump.c (do_jump_1): Divide probability between both conditions of a TRUTH_ORIF_EXPR. r203152 | tejohnson | 2013-10-02 22:06:05 -0700 (Wed, 02 Oct 2013) | 8 lines 2013-10-02 Teresa Johnson * predict.c (probably_never_executed): New function. (probably_never_executed_bb_p): Invoke probably_never_executed. (probably_never_executed_edge_p): Ditto. * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): Treat profile insanities conservatively. r203395 | tejohnson | 2013-10-10 13:30:08 -0700 (Thu, 10 Oct 2013) | 9 lines 2013-10-10 Teresa Johnson * predict.c (tree_estimate_probability): Add new parameter for estimate_bb_frequencies. (estimate_bb_frequencies): Add new parameter to force estimation. (rebuild_frequencies): When max frequency in function is small, recompute counts from frequencies. * predict.h (estimate_bb_frequencies): New parameter. r203823 | tejohnson | 2013-10-18 07:36:53 -0700 (Fri, 18 Oct 2013) | 5 lines 2013-10-18 Teresa Johnson * tree-ssa-tail-merge.c (replace_block_by): Update edge weights during merging. r203830 | tejohnson | 2013-10-18 10:25:44 -0700 (Fri, 18 Oct 2013) | 6 lines 2013-10-18 Teresa Johnson * predict.c (probably_never_executed): Compare frequency-based count to number of training runs. * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter. r204178 | tejohnson | 2013-10-29 13:39:49 -0700 (Tue, 29 Oct 2013) | 6 lines 2013-10-29 Teresa Johnson PR ipa/58862 * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile insanities when updating probabilities. r204704 | tejohnson | 2013-11-12 07:03:28 -0800 (Tue, 12 Nov 2013) | 12 lines 2013-11-12 Teresa Johnson Jan Hubicka * predict.c (drop_profile): New function. (handle_missing_profiles): Ditto. (counts_to_freqs): Don't overwrite estimated frequencies when function has no profile counts. * predict.h (handle_missing_profiles): Declare. * tree-inline.c (freqs_to_counts): New function. (copy_cfg_body): Invoke freqs_to_counts as needed. * tree-profile.c (tree_profiling): Invoke handle_missing_profiles. r204756 | tejohnson | 2013-11-13 13:51:44 -0800 (Wed, 13 Nov 2013) | 6 lines 2013-11-13 Teresa Johnson PR ipa/58862 * predict.c (drop_profile): Error is currently too strict. (handle_missing_profiles): Pass call_count to drop_profile. r197595 | tejohnson | 2013-04-08 10:39:10 -0700 (Mon, 08 Apr 2013) | 60 lines 2013-04-08 Teresa Johnson * basic-block.h (GCOV_COMPUTE_SCALE): Define. ---
[Bug regression/58221] [4.9 Regression]: Immense amount of execution regressions and increased test-time for cris-elf
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58221 --- Comment #10 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Sat Nov 23 04:30:07 2013 New Revision: 205298 URL: http://gcc.gnu.org/viewcvs?rev=205298&root=gcc&view=rev Log: Backport to google/4_8 new sanity checking and some dwarf emission fixes for -freorder-blocks-and-partition from trunk (r201883, r201941, r202125). r201883 | tejohnson | 2013-08-20 06:29:53 -0700 (Tue, 20 Aug 2013) | 8 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/final.c M /trunk/gcc/testsuite/ChangeLog A /trunk/gcc/testsuite/g++.dg/tree-prof/pr57451.C 2013-08-20 Teresa Johnson PR rtl-optimizations/57451 * final.c (reemit_insn_block_notes): Prevent lexical blocks from crossing split section boundaries. * testsuite/g++.dg/tree-prof/pr57451.C: New test. r201941 | tejohnson | 2013-08-23 07:31:06 -0700 (Fri, 23 Aug 2013) | 7 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/final.c 2013-08-23 Kaz Kojima PR rtl-optimization/58220 PR regression/58221 * final.c (reemit_insn_block_notes): Use NEXT_INSN to handle SEQUENCE insns properly. r202125 | tejohnson | 2013-08-30 18:43:33 -0700 (Fri, 30 Aug 2013) | 30 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/basic-block.h M /trunk/gcc/bb-reorder.c M /trunk/gcc/cfg.c M /trunk/gcc/cfgcleanup.c M /trunk/gcc/cfgrtl.c M /trunk/gcc/predict.c This patch sanitizes the partitioning to address issues such as edge weight insanities that sometimes occur due to upstream optimizations, and ensures that hot blocks are not dominated by cold blocks. This needs to be resanitized after certain cfg optimizations that may cause hot blocks previously reached via both hot and cold paths to only be reached by cold paths. The verification code in sanitize_dominator_hotness was contributed by Steven Bosscher. 2013-08-29 Teresa Johnson Steven Bosscher * cfgrtl.c (fixup_new_cold_bb): New routine. (commit_edge_insertions): Invoke fixup_partitions. (find_partition_fixes): New routine. (fixup_partitions): Ditto. (verify_hot_cold_block_grouping): Update comments. (rtl_verify_edges): Invoke find_partition_fixes. (rtl_verify_bb_pointers): Update comments. (rtl_verify_bb_layout): Ditto. * basic-block.h (probably_never_executed_edge_p): Declare. (fixup_partitions): Ditto. * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions. * bb-reorder.c (sanitize_hot_paths): New function. (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke sanitize_hot_paths. * predict.c (probably_never_executed_edge_p): New routine. * cfg.c (check_bb_profile): Add partition insanity warnings. Added: branches/google/gcc-4_8/gcc/testsuite/g++.dg/tree-prof/pr57451.C Modified: branches/google/gcc-4_8/gcc/basic-block.h branches/google/gcc-4_8/gcc/bb-reorder.c branches/google/gcc-4_8/gcc/cfg.c branches/google/gcc-4_8/gcc/cfgcleanup.c branches/google/gcc-4_8/gcc/cfgrtl.c branches/google/gcc-4_8/gcc/final.c branches/google/gcc-4_8/gcc/predict.c
[Bug rtl-optimization/57451] Incorrect debug ranges emitted for -freorder-blocks-and-partition -g
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57451 --- Comment #10 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Sat Nov 23 04:30:07 2013 New Revision: 205298 URL: http://gcc.gnu.org/viewcvs?rev=205298&root=gcc&view=rev Log: Backport to google/4_8 new sanity checking and some dwarf emission fixes for -freorder-blocks-and-partition from trunk (r201883, r201941, r202125). r201883 | tejohnson | 2013-08-20 06:29:53 -0700 (Tue, 20 Aug 2013) | 8 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/final.c M /trunk/gcc/testsuite/ChangeLog A /trunk/gcc/testsuite/g++.dg/tree-prof/pr57451.C 2013-08-20 Teresa Johnson PR rtl-optimizations/57451 * final.c (reemit_insn_block_notes): Prevent lexical blocks from crossing split section boundaries. * testsuite/g++.dg/tree-prof/pr57451.C: New test. r201941 | tejohnson | 2013-08-23 07:31:06 -0700 (Fri, 23 Aug 2013) | 7 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/final.c 2013-08-23 Kaz Kojima PR rtl-optimization/58220 PR regression/58221 * final.c (reemit_insn_block_notes): Use NEXT_INSN to handle SEQUENCE insns properly. r202125 | tejohnson | 2013-08-30 18:43:33 -0700 (Fri, 30 Aug 2013) | 30 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/basic-block.h M /trunk/gcc/bb-reorder.c M /trunk/gcc/cfg.c M /trunk/gcc/cfgcleanup.c M /trunk/gcc/cfgrtl.c M /trunk/gcc/predict.c This patch sanitizes the partitioning to address issues such as edge weight insanities that sometimes occur due to upstream optimizations, and ensures that hot blocks are not dominated by cold blocks. This needs to be resanitized after certain cfg optimizations that may cause hot blocks previously reached via both hot and cold paths to only be reached by cold paths. The verification code in sanitize_dominator_hotness was contributed by Steven Bosscher. 2013-08-29 Teresa Johnson Steven Bosscher * cfgrtl.c (fixup_new_cold_bb): New routine. (commit_edge_insertions): Invoke fixup_partitions. (find_partition_fixes): New routine. (fixup_partitions): Ditto. (verify_hot_cold_block_grouping): Update comments. (rtl_verify_edges): Invoke find_partition_fixes. (rtl_verify_bb_pointers): Update comments. (rtl_verify_bb_layout): Ditto. * basic-block.h (probably_never_executed_edge_p): Declare. (fixup_partitions): Ditto. * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions. * bb-reorder.c (sanitize_hot_paths): New function. (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke sanitize_hot_paths. * predict.c (probably_never_executed_edge_p): New routine. * cfg.c (check_bb_profile): Add partition insanity warnings. Added: branches/google/gcc-4_8/gcc/testsuite/g++.dg/tree-prof/pr57451.C Modified: branches/google/gcc-4_8/gcc/basic-block.h branches/google/gcc-4_8/gcc/bb-reorder.c branches/google/gcc-4_8/gcc/cfg.c branches/google/gcc-4_8/gcc/cfgcleanup.c branches/google/gcc-4_8/gcc/cfgrtl.c branches/google/gcc-4_8/gcc/final.c branches/google/gcc-4_8/gcc/predict.c
[Bug rtl-optimization/58220] [4.9 Regression] Many new failures for SH after rev. 201833
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58220 --- Comment #2 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Sat Nov 23 04:30:07 2013 New Revision: 205298 URL: http://gcc.gnu.org/viewcvs?rev=205298&root=gcc&view=rev Log: Backport to google/4_8 new sanity checking and some dwarf emission fixes for -freorder-blocks-and-partition from trunk (r201883, r201941, r202125). r201883 | tejohnson | 2013-08-20 06:29:53 -0700 (Tue, 20 Aug 2013) | 8 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/final.c M /trunk/gcc/testsuite/ChangeLog A /trunk/gcc/testsuite/g++.dg/tree-prof/pr57451.C 2013-08-20 Teresa Johnson PR rtl-optimizations/57451 * final.c (reemit_insn_block_notes): Prevent lexical blocks from crossing split section boundaries. * testsuite/g++.dg/tree-prof/pr57451.C: New test. r201941 | tejohnson | 2013-08-23 07:31:06 -0700 (Fri, 23 Aug 2013) | 7 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/final.c 2013-08-23 Kaz Kojima PR rtl-optimization/58220 PR regression/58221 * final.c (reemit_insn_block_notes): Use NEXT_INSN to handle SEQUENCE insns properly. r202125 | tejohnson | 2013-08-30 18:43:33 -0700 (Fri, 30 Aug 2013) | 30 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/basic-block.h M /trunk/gcc/bb-reorder.c M /trunk/gcc/cfg.c M /trunk/gcc/cfgcleanup.c M /trunk/gcc/cfgrtl.c M /trunk/gcc/predict.c This patch sanitizes the partitioning to address issues such as edge weight insanities that sometimes occur due to upstream optimizations, and ensures that hot blocks are not dominated by cold blocks. This needs to be resanitized after certain cfg optimizations that may cause hot blocks previously reached via both hot and cold paths to only be reached by cold paths. The verification code in sanitize_dominator_hotness was contributed by Steven Bosscher. 2013-08-29 Teresa Johnson Steven Bosscher * cfgrtl.c (fixup_new_cold_bb): New routine. (commit_edge_insertions): Invoke fixup_partitions. (find_partition_fixes): New routine. (fixup_partitions): Ditto. (verify_hot_cold_block_grouping): Update comments. (rtl_verify_edges): Invoke find_partition_fixes. (rtl_verify_bb_pointers): Update comments. (rtl_verify_bb_layout): Ditto. * basic-block.h (probably_never_executed_edge_p): Declare. (fixup_partitions): Ditto. * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions. * bb-reorder.c (sanitize_hot_paths): New function. (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke sanitize_hot_paths. * predict.c (probably_never_executed_edge_p): New routine. * cfg.c (check_bb_profile): Add partition insanity warnings. Added: branches/google/gcc-4_8/gcc/testsuite/g++.dg/tree-prof/pr57451.C Modified: branches/google/gcc-4_8/gcc/basic-block.h branches/google/gcc-4_8/gcc/bb-reorder.c branches/google/gcc-4_8/gcc/cfg.c branches/google/gcc-4_8/gcc/cfgcleanup.c branches/google/gcc-4_8/gcc/cfgrtl.c branches/google/gcc-4_8/gcc/final.c branches/google/gcc-4_8/gcc/predict.c
[Bug c++/53743] ICE when compiling firefox with PGO and LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743 --- Comment #8 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Fri Nov 22 23:51:45 2013 New Revision: 205293 URL: http://gcc.gnu.org/viewcvs?rev=205293&root=gcc&view=rev Log: Backport first few sets of -freorder-blocks-and-partition fixes from trunk (r198934, r198982, r199744). r198934 | tejohnson | 2013-05-15 07:14:15 -0700 (Wed, 15 May 2013) | 16 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/bb-reorder.c M /trunk/gcc/cfgcleanup.c M /trunk/gcc/cfgrtl.c M /trunk/gcc/function.h 2013-05-15 Teresa Johnson * function.h (has_bb_partition): New rtl_data flag. (bb_reorder_complete): Ditto. * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition instead of flag_reorder_blocks_and_partition. * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c, with some enhancements. (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping. * bb-reorder.c (connect_traces): Check for has_bb_partition instead of flag_reorder_blocks_and_partition. (verify_hot_cold_block_grouping): Moved to cfgrtl.c. (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to verify_hot_cold_block_grouping. (partition_hot_cold_basic_blocks): Set has_bb_partition. r198982 | tejohnson | 2013-05-16 10:45:35 -0700 (Thu, 16 May 2013) | 12 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/cfgrtl.c 2013-05-16 Teresa Johnson * cfgrtl.c (verify_hot_cold_block_grouping): Return err. (rtl_verify_edges): New function. (rtl_verify_bb_insns): Ditto. (rtl_verify_bb_pointers): Ditto. (rtl_verify_bb_insn_chain): Ditto. (rtl_verify_fallthru): Ditto. (rtl_verify_bb_layout): Ditto. (rtl_verify_flow_info_1): Outline checks into new functions. (rtl_verify_flow_info): Ditto. r199744 | tejohnson | 2013-06-06 09:30:07 -0700 (Thu, 06 Jun 2013) | 64 lines Changed paths: M /trunk/gcc/ChangeLog M /trunk/gcc/Makefile.in M /trunk/gcc/basic-block.h M /trunk/gcc/bb-reorder.c M /trunk/gcc/bb-reorder.h M /trunk/gcc/cfgcleanup.c M /trunk/gcc/cfgrtl.c M /trunk/gcc/emit-rtl.c M /trunk/gcc/function.c M /trunk/gcc/ifcvt.c M /trunk/gcc/testsuite/ChangeLog M /trunk/gcc/testsuite/g++.dg/tree-prof/partition2.C M /trunk/gcc/testsuite/g++.dg/tree-prof/partition3.C A /trunk/gcc/testsuite/gcc.dg/tree-prof/20041218-1.c A /trunk/gcc/testsuite/gcc.dg/tree-prof/comp-goto-1.c M /trunk/gcc/testsuite/gcc.dg/tree-prof/pr45354.c M /trunk/gcc/testsuite/gcc.dg/tree-prof/pr50907.c M /trunk/gcc/testsuite/gcc.dg/tree-prof/pr52027.c A /trunk/gcc/testsuite/gcc.dg/tree-prof/va-arg-pack-1.c 2013-06-06 Teresa Johnson PR c++/53743 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert as this is now done by redirect_edge_and_branch_force. * function.c (thread_prologue_and_epilogue_insns): Insert new bb after barriers, and fix interaction with splitting. * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes. * cfgcleanup.c (try_forward_edges): Fix early return value to properly reflect changes made in the routine. * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c. (fix_up_fall_thru_edges): Remove incorrect check for bb layout order since this is called in cfglayout mode, and replace partition fixup with assert as that is now done by force_nonfallthru_and_redirect. (add_reg_crossing_jump_notes): Handle the fact that some jumps may already be marked with region crossing note. (insert_section_boundary_note): Make non-static, gate on flag has_bb_partition, rewrite to also check for multiple partitions. (rest_of_handle_reorder_blocks): Remove call to insert_section_boundary_note, now done later during free_cfg. (duplicate_computed_gotos): Don't duplicate partition crossing edge. * bb-reorder.h (insert_section_boundary_note): Declare. * Makefile.in (cfgrtl.o): Depend on bb-reorder.h * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist invoke insert_section_boundary_note. (try_redirect_by_replacing_jump): Remove unnecessary check for region crossing note. (fixup_partition_crossing): New function. (rtl_redirect_edge_and_branch): Fixup partition boundaries. (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion in non-cfglayout mode. (force_nonfallthru_and_redirect): Fixup partition boundaries, remove old code that tried to do this. Emit barrier correctly w
[Bug target/59233] [4.9 Regression] C++ failures after revision 205058 on *-apple-darwin* with -m32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59233 --- Comment #8 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Fri Nov 22 04:16:47 2013 New Revision: 205243 URL: http://gcc.gnu.org/viewcvs?rev=205243&root=gcc&view=rev Log: 2013-11-21 Teresa Johnson PR target/59233 * cfgcleanup.c (outgoing_edges_match): Walk up past note instructions not understood by old_insns_match_p. Modified: trunk/gcc/ChangeLog trunk/gcc/cfgcleanup.c
[Bug ipa/58862] [4.9 Regression] LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58862 --- Comment #25 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Wed Nov 13 21:51:44 2013 New Revision: 204756 URL: http://gcc.gnu.org/viewcvs?rev=204756&root=gcc&view=rev Log: 2013-11-13 Teresa Johnson PR ipa/58862 * predict.c (drop_profile): Error is currently too strict. (handle_missing_profiles): Pass call_count to drop_profile. Modified: trunk/gcc/ChangeLog trunk/gcc/predict.c
[Bug ipa/58862] [4.9 Regression] LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58862 --- Comment #24 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Wed Nov 13 21:48:59 2013 New Revision: 204755 URL: http://gcc.gnu.org/viewcvs?rev=204755&root=gcc&view=rev Log: 2013-11-13 Teresa Johnson PR ipa/58862 * ipa-inline.c (edge_badness): Fix overflow. Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-inline.c
[Bug ipa/58862] [4.9 Regression] LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58862 --- Comment #5 from tejohnson at gcc dot gnu.org --- Author: tejohnson Date: Tue Oct 29 20:39:49 2013 New Revision: 204178 URL: http://gcc.gnu.org/viewcvs?rev=204178&root=gcc&view=rev Log: 2013-10-29 Teresa Johnson PR ipa/58862 * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile insanities when updating probabilities. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-tail-merge.c
[Bug gcov-profile/55734] [4.8 Regression] gcov-io.c uses builtins not available in non-GCC compilers
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55734 --- Comment #22 from tejohnson at gcc dot gnu.org 2012-12-20 14:31:18 UTC --- Author: tejohnson Date: Thu Dec 20 14:31:09 2012 New Revision: 194634 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194634 Log: Fix PR gcov-profile/55734 by using methods from hwint.c instead of builtins, to handle non-GCC and older versions of GCC. When building libgcov.a, however, hwint.c is not available, but we are always using the bootstrapped compiler and can therefore use the builtins. Use __builtin_popcount instead of __builtin_popcountll, since we are operating on an int. Use floor_log2 directly, instead of clz_hwi for the non-libgcov case, and handle situations where the size of the gcov_type is bigger than HOST_WIDE_INT. Verified that the various cases compiled by forcing different HOST_BITS_PER_WIDE_INT values. 2012-12-20 Teresa Johnson Jakub Jelinek PR gcov-profile/55734 * gcov-io.c (gcov_read_summary): Use __builtin_popcount instead of __builtin_popcountll when building libgcov.a, otherwise use popcount_hwi. (gcov_histo_index): When not building libgcov.a, use floor_log2 instead of __builtin_clzll. Modified: trunk/gcc/ChangeLog trunk/gcc/gcov-io.c
[Bug gcov-profile/55674] [4.8 Regression] >20% size increase of lto/pgo binaries since r193747
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55674 --- Comment #13 from tejohnson at gcc dot gnu.org 2012-12-14 15:11:00 UTC --- Author: tejohnson Date: Fri Dec 14 15:10:45 2012 New Revision: 194502 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194502 Log: 2012-12-14 Teresa Johnson PR gcov-profile/55674 * lto-cgraph.c (merge_profile_summaries): Set min correctly the first time we merge into a histogram entry. Modified: trunk/gcc/ChangeLog trunk/gcc/lto-cgraph.c
[Bug gcov-profile/55551] Revision 193999 breaks lto/profiledbootstrap
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1 --- Comment #10 from tejohnson at gcc dot gnu.org 2012-12-02 16:40:34 UTC --- Author: tejohnson Date: Sun Dec 2 16:40:28 2012 New Revision: 194055 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194055 Log: 2012-12-02 Teresa Johnson PR gcov-profile/1 * lto-cgraph.c (merge_profile_summaries): Handle scaled histogram entries that map to the same index. Modified: trunk/gcc/ChangeLog trunk/gcc/lto-cgraph.c
[Bug bootstrap/55051] [4.8 Regression] profiledbootstrap failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55051 --- Comment #30 from tejohnson at gcc dot gnu.org 2012-11-19 05:21:06 UTC --- Author: tejohnson Date: Mon Nov 19 05:20:59 2012 New Revision: 193612 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193612 Log: This patch addresses the bogus "Invocation mismatch" messages seen in parallel profiledbootstrap builds of gcc. See PR bootstrap/55051 for a discussion of why this is occurring and why this checking is inaccurate. Leave it in when !GCOV_LOCKED, to warn about concurrent update issues requiring locking. 2012-11-18 Teresa Johnson PR bootstrap/55051 * libgcov.c (gcov_exit): Remove merged program summary comparison unless !GCOV_LOCKED. Modified: trunk/libgcc/ChangeLog trunk/libgcc/libgcov.c
[Bug gcov-profile/54487] [4.8 Regression] profiledbootstrap broken by r190952
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54487 --- Comment #32 from tejohnson at gcc dot gnu.org 2012-09-14 21:06:54 UTC --- Author: tejohnson Date: Fri Sep 14 21:06:49 2012 New Revision: 191312 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191312 Log: Backport from trunk r190952 to add counter histogram to gcov program summary, and follow-on fixes for PR gcov-profile/54487 (r191074 and r191238). 2012-09-14 Teresa Johnson * libgcc/libgcov.c (gcov_histogram_insert): New function. (gcov_compute_histogram): Ditto. (sort_by_reverse_gcov_value): Remove function. (gcov_compute_cutoff_values): Ditto. (gcov_merge_gcda_file): Merge histogram while merging summary. (gcov_gcda_file_size): Include histogram in summary size computation. (gcov_write_gcda_file): Remove assert that is no longer valid. (gcov_exit_init): Invoke gcov_compute_histogram. * gcc/gcov-io.c (gcov_write_summary): Write out non-zero histogram entries to function summary along with an occupancy bit vector. (gcov_read_summary): Read in the histogram entries. (gcov_histo_index): New function. (gcov_histogram_merge): Ditto. * gcc/gcov-io.h (gcov_type_unsigned): New type. (struct gcov_bucket_type): Ditto. (struct gcov_ctr_summary): Include histogram. (GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries. (GCOV_HISTOGRAM_SIZE): New macro. (GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto. (gcov_gcda_file_size): New parameter. * gcc/profile.c (NUM_GCOV_WORKING_SETS): Ditto. (gcov_working_sets): New global variable. (compute_working_sets): New function. (find_working_set): Ditto. (get_exec_counts): Invoke compute_working_sets. * gcc/loop-unroll.c (code_size_limit_factor): Call new function find_working_set to obtain working set information. * gcc/coverage.c (read_counts_file): Merge histograms, and fix bug with accessing summary info for non-summable counters. * gcc/basic-block.h (gcov_type_unsigned): New type. (struct gcov_working_set_info): Ditto. (find_working_set): Declare. * gcc/gcov-dump.c (tag_summary): Dump out histogram. * gcc/configure.ac (HOST_HAS_F_SETLKW): Set based on compile test using F_SETLKW with fcntl. * gcc/configure, gcc/config.in: Regenerate. Modified: branches/google/gcc-4_7/gcc/ChangeLog.google-4_7 branches/google/gcc-4_7/gcc/basic-block.h branches/google/gcc-4_7/gcc/config.in branches/google/gcc-4_7/gcc/configure branches/google/gcc-4_7/gcc/configure.ac branches/google/gcc-4_7/gcc/coverage.c branches/google/gcc-4_7/gcc/gcov-dump.c branches/google/gcc-4_7/gcc/gcov-io.c branches/google/gcc-4_7/gcc/gcov-io.h branches/google/gcc-4_7/gcc/loop-unroll.c branches/google/gcc-4_7/gcc/profile.c branches/google/gcc-4_7/libgcc/ChangeLog.google-4_7 branches/google/gcc-4_7/libgcc/libgcov.c
[Bug gcov-profile/54487] [4.8 Regression] profiledbootstrap broken by r190952
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54487 --- Comment #30 from tejohnson at gcc dot gnu.org 2012-09-13 13:32:45 UTC --- Author: tejohnson Date: Thu Sep 13 13:32:31 2012 New Revision: 191254 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191254 Log: 2012-09-12 Teresa Johnson Backport from mainline. 2012-09-12 Teresa Johnson PR gcov-profile/54487 * configure.ac (HOST_HAS_F_SETLKW): Set based on compile test using F_SETLKW with fcntl. * configure, config.in: Regenerate. Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/config.in branches/gcc-4_7-branch/gcc/configure branches/gcc-4_7-branch/gcc/configure.ac
[Bug gcov-profile/54487] [4.8 Regression] profiledbootstrap broken by r190952
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54487 --- Comment #28 from tejohnson at gcc dot gnu.org 2012-09-13 04:59:18 UTC --- Author: tejohnson Date: Thu Sep 13 04:59:14 2012 New Revision: 191238 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191238 Log: This fixes PR gcov-profile/54487 where the gcda files were not locked by the profile-use read, enabling writes by other instrumented compiles to change the profile in the middle of the profile use read. The GCOV_LOCKED macro was not set because it was guarded by HOST_HAS_F_SETLKW, which was never set. The fix is to add a compile test in the configure to set it. 2012-09-12 Teresa Johnson PR gcov-profile/54487 * configure.ac (HOST_HAS_F_SETLKW): Set based on compile test using F_SETLKW with fcntl. * configure, config.in: Regenerate. Modified: trunk/gcc/ChangeLog trunk/gcc/config.in trunk/gcc/configure trunk/gcc/configure.ac
[Bug gcov-profile/54487] [4.8 Regression] profiledbootstrap broken by r190952
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54487 --- Comment #15 from tejohnson at gcc dot gnu.org 2012-09-07 13:49:54 UTC --- Author: tejohnson Date: Fri Sep 7 13:49:47 2012 New Revision: 191074 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191074 Log: This fixes part of the issue described in PR gcov-profile/54487 where there were warnings about mismatches due to slight differences in the merged histograms in different object files. This can happen due to the truncating integer division in the merge routine, which could result in slightly different histograms when summaries are merged in different orders. 2012-09-07 Teresa Johnson PR gcov-profile/54487 * libgcc/libgcov.c (gcov_exit): Avoid warning on histogram differences. Modified: trunk/libgcc/ChangeLog trunk/libgcc/libgcov.c
[Bug target/53110] GCC-4.7 generates stupid x86_64 asm
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53110 --- Comment #13 from tejohnson at gcc dot gnu.org 2012-07-25 20:11:23 UTC --- Author: tejohnson Date: Wed Jul 25 20:11:13 2012 New Revision: 189866 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=189866 Log: Backport the following patches from trunk to ensure that "andw $0xff, $reg" is always converted to a zero extend to avoid LCP stalls on core2/corei7 (b/6615073): r184891, r186839, r186979, r186993, r188630, r188634, r188648 r184891: 2012-03-04 Uros Bizjak * config/i386/constraints.md (Ya): New internal constraint. * config/i386/i386.md (zero_extendsidi2): Remove expansion. (*zero_extendsidi2_rex64): Add x,x alternative. (*zero_extendsidi2): Ditto. Add o,0 alternative. Remove flags reg clobber. Adjust corresponding splits. (zero_extendsi2): Macroize expander from zero_extendhisi2 and zero_extendqisi2 expanders using SWI12 mode iterator. (zero_extendsi2_and): Macroize insn from zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding splitters. (*zero_extendsi2): Macroize insn from *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl. (*zero_extend*2_movzbl_and): Remove insn patterns. (zero_extendqihi2_and): Merge corresponding splitter. (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl. (*zero_extend*2_movzbl_and): Remove insn patterns. (*anddi_1): Split TYPE_IMOVX instructions. (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions. (*andhi_1): Ditto. (and->zext splitter): Add splitter pattern. (zero extend with andsi3 splitter): Adjust zero_extend pattern. r186839: 2012-04-25 Jakub Jelinek PR target/53110 * config/i386/i386.md (and3): For andq $0x, reg instead expand it as zero extension. r186979: 2012-04-30 Uros Bizjak * config/i386/i386.md (and3): Expand masking operations with 0xff, 0x or 0x immediates to corresponding zero_extend RTX. (and splitter): Split to DImode zero_extend RTX for DImode operand[0]. r186993: 2012-04-30 Uros Bizjak * config/i386/i386.md (and3): Change runtime operand mode checks to compile-time "mode == mode" checks. (and splitter): Ditto. r188630: 2012-06-14 Uros Bizjak * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative. (*zero_extendsidi2_rex64): Ditto. Remove isa attribute. r188634: 2012-06-14 Uros Bizjak Fix my previous commit to: * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative. (*zero_extendsidi2_rex64): Ditto. Remove isa attribute. r188648: 2012-06-14 Uros Bizjak (*zero_extendsidi2_rex64): Remove isa attribute. Modified: branches/google/gcc-4_7/gcc/ChangeLog.google-4_7 branches/google/gcc-4_7/gcc/config/i386/constraints.md branches/google/gcc-4_7/gcc/config/i386/i386.md