[Bug tree-optimization/63841] [4.8 Regression] Incorrect strlen optimization after complete unroll

2014-11-20 Thread tejohnson at gcc dot gnu.org
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=217858root=gccview=rev
Log:
2014-11-20  Teresa Johnson  tejohn...@google.com

Backport r217522 from gcc-4_9 for Google ref b/18344370 and b/18455179.

2014-11-13  Teresa Johnson  tejohn...@google.com

PR tree-optimization/63841
* tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.

2014-11-13  Teresa Johnson  tejohn...@google.com

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

2014-11-18 Thread tejohnson at gcc dot gnu.org
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=217715root=gccview=rev
Log:
2014-11-18  Teresa Johnson  tejohn...@google.com

Backport from mainline and gcc-4_9 branch.

2014-11-13  Teresa Johnson  tejohn...@google.com

PR tree-optimization/63841
* tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.

2014-11-13  Teresa Johnson  tejohn...@google.com

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

2014-11-13 Thread tejohnson at gcc dot gnu.org
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=217505root=gccview=rev
Log:
2014-11-13  Teresa Johnson  tejohn...@google.com

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 tree-optimization/63841] [4.8/4.9/5 Regression] Incorrect strlen optimization after complete unroll

2014-11-13 Thread tejohnson at gcc dot gnu.org
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=217522root=gccview=rev
Log:
2014-11-13  Teresa Johnson  tejohn...@google.com

gcc:
PR tree-optimization/63841
* tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.

2014-11-13  Teresa Johnson  tejohn...@google.com

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

2014-11-13 Thread tejohnson at gcc dot gnu.org
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=217537root=gccview=rev
Log:
2014-11-13  Teresa Johnson  tejohn...@google.com

gcc:
PR tree-optimization/63841
* tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.

2014-11-13  Teresa Johnson  tejohn...@google.com

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 bootstrap/63432] [5 Regression] profiledbootstrap failure with bootstrap-lto

2014-10-15 Thread tejohnson at gcc dot gnu.org
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=216269root=gccview=rev
Log:
2014-10-15  Teresa Johnson  tejohn...@google.com

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

2014-10-08 Thread tejohnson at gcc dot gnu.org
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=216024root=gccview=rev
Log:
2014-10-07  Teresa Johnson  tejohn...@google.com

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

2014-10-02 Thread tejohnson at gcc dot gnu.org
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=215822root=gccview=rev
Log:
2014-10-01  Teresa Johnson  tejohn...@google.com

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

2014-06-11 Thread tejohnson at gcc dot gnu.org
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=211466root=gccview=rev
Log:
Backport r211386 from gcc-4_9 (r211284 from trunk).

Google ref b/15250505.

2014-06-04  Jason Merrill  ja...@redhat.com

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

2014-05-09 Thread tejohnson at gcc dot gnu.org
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=210279root=gccview=rev
Log:
Backport r210254 from trunk for Google b/14380607.

2014-05-08  Jeff Law  l...@redhat.com

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

2014-02-13 Thread tejohnson at gcc dot gnu.org
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=207766root=gccview=rev
Log:
2014-02-13  Teresa Johnson  tejohn...@google.com

For Google b/12971524, backport r197994 to fix PR60141.

2013-04-16  Steven Bosscher  ste...@gcc.gnu.org

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'

2013-12-19 Thread tejohnson at gcc dot gnu.org
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=206135root=gccview=rev
Log:
2013-12-19  Teresa Johnson  tejohn...@google.com

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

2013-12-17 Thread tejohnson at gcc dot gnu.org
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=206072root=gccview=rev
Log:
2013-12-17  Teresa Johnson  tejohn...@google.com

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

2013-11-25 Thread tejohnson at gcc dot gnu.org
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=205378root=gccview=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  tejohn...@google.com

* 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  tejohn...@google.com

* 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  tejohn...@google.com

* 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  tejohn...@google.com

* 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  tejohn...@google.com

* 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  tejohn...@google.com

* 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  tejohn...@google.com

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  tejohn...@google.com
Jan Hubicka  j...@suse.cz

* 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  tejohn...@google.com

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  tejohn

[Bug c++/53743] ICE when compiling firefox with PGO and LTO

2013-11-22 Thread tejohnson at gcc dot gnu.org
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=205293root=gccview=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  tejohn...@google.com

* 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  tejohn...@google.com

* 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  tejohn...@google.com

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

[Bug rtl-optimization/58220] [4.9 Regression] Many new failures for SH after rev. 201833

2013-11-22 Thread tejohnson at gcc dot gnu.org
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=205298root=gccview=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  tejohn...@google.com

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  kkoj...@gcc.gnu.org

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  tejohn...@google.com
Steven Bosscher  ste...@gcc.gnu.org

* 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 regression/58221] [4.9 Regression]: Immense amount of execution regressions and increased test-time for cris-elf

2013-11-22 Thread tejohnson at gcc dot gnu.org
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=205298root=gccview=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  tejohn...@google.com

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  kkoj...@gcc.gnu.org

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  tejohn...@google.com
Steven Bosscher  ste...@gcc.gnu.org

* 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

2013-11-22 Thread tejohnson at gcc dot gnu.org
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=205298root=gccview=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  tejohn...@google.com

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  kkoj...@gcc.gnu.org

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  tejohn...@google.com
Steven Bosscher  ste...@gcc.gnu.org

* 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 target/59233] [4.9 Regression] C++ failures after revision 205058 on *-apple-darwin* with -m32

2013-11-21 Thread tejohnson at gcc dot gnu.org
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=205243root=gccview=rev
Log:
2013-11-21  Teresa Johnson  tejohn...@google.com

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

2013-11-13 Thread tejohnson at gcc dot gnu.org
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=204755root=gccview=rev
Log:
2013-11-13  Teresa Johnson  tejohn...@google.com

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

2013-11-13 Thread tejohnson at gcc dot gnu.org
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=204756root=gccview=rev
Log:
2013-11-13  Teresa Johnson  tejohn...@google.com

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

2013-10-29 Thread tejohnson at gcc dot gnu.org
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=204178root=gccview=rev
Log:
2013-10-29  Teresa Johnson  tejohn...@google.com

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

2012-12-20 Thread tejohnson at gcc dot gnu.org


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=gccview=revrev=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  tejohn...@google.com

Jakub Jelinek  ja...@redhat.com



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

2012-12-14 Thread tejohnson at gcc dot gnu.org


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=gccview=revrev=194502

Log:

2012-12-14  Teresa Johnson  tejohn...@google.com



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

2012-12-02 Thread tejohnson at gcc dot gnu.org


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=gccview=revrev=194055

Log:

2012-12-02  Teresa Johnson  tejohn...@google.com



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

2012-11-18 Thread tejohnson at gcc dot gnu.org


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=gccview=revrev=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  tejohn...@google.com



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

2012-09-14 Thread tejohnson at gcc dot gnu.org
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=gccview=revrev=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  tejohn...@google.com

* 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

2012-09-13 Thread tejohnson at gcc dot gnu.org
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=gccview=revrev=191254
Log:
2012-09-12  Teresa Johnson  tejohn...@google.com

Backport from mainline.
2012-09-12  Teresa Johnson  tejohn...@google.com

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

2012-09-12 Thread tejohnson at gcc dot gnu.org
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=gccview=revrev=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  tejohn...@google.com

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

2012-09-07 Thread tejohnson at gcc dot gnu.org
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=gccview=revrev=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  tejohn...@google.com

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

2012-07-25 Thread tejohnson at gcc dot gnu.org
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=gccview=revrev=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  ubiz...@gmail.com
* 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_extendmodesi2): Macroize expander from zero_extendhisi2 and
zero_extendqisi2 expanders using SWI12 mode iterator.
(zero_extendmodesi2_and): Macroize insn from
zero_extendhisi2_and and zero_extendqisi2_and.  Merge corresponding
splitters.
(*zero_extendmodesi2):  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  ja...@redhat.com
PR target/53110
* config/i386/i386.md (andmode3): For andq $0x, reg
instead expand it as zero extension.

r186979:
2012-04-30  Uros Bizjak  ubiz...@gmail.com
* config/i386/i386.md (andmode3): 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  ubiz...@gmail.com
* config/i386/i386.md (andmode3): Change runtime operand mode checks
to compile-time mode == MODEmode checks.
(and splitter): Ditto.

r188630:
2012-06-14  Uros Bizjak  ubiz...@gmail.com
* config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
(*zero_extendsidi2_rex64): Ditto.  Remove isa attribute.

r188634:
2012-06-14  Uros Bizjak  ubiz...@gmail.com
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  ubiz...@gmail.com
   (*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