r205293 - in /branches/google/gcc-4_8/gcc: Make...

tejohnson@gcc.gnu.org tejohnson@gcc.gnu.org
Fri Nov 22 23:51:00 GMT 2013


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  <tejohnson@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  <tejohnson@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  <tejohnson@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 to do this. Emit barrier correctly
	when we are in cfglayout mode.
	(last_bb_in_partition): New function.
	(rtl_split_edge): Correctly fixup partition boundaries.
	(commit_one_edge_insertion): Remove old code that tried to
	fixup region crossing edge since this is now handled in
	split_block, and set up insertion point correctly since
	block may now end in a jump.
	(verify_hot_cold_block_grouping): Guard against checking when not in
	linearized RTL mode.
	(rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
	notes.
	(rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
	rtl_verify_flow_info, so not called in cfglayout mode.
	(rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
	(fixup_reorder_chain): Remove old code that attempted to fixup region
	crossing note as this is now handled in force_nonfallthru_and_redirect.
	(duplicate_insn_chain): Don't duplicate switch section notes.
	(rtl_can_remove_branch_p): Remove unnecessary check for region crossing
	note.
	* basic-block.h (emit_barrier_after_bb): Declare.

	* testsuite/gcc.dg/tree-prof/va-arg-pack-1.c: Cloned from c-torture, made
	into -freorder-blocks-and-partition test.
	* testsuite/gcc.dg/tree-prof/comp-goto-1.c: Ditto.
	* testsuite/gcc.dg/tree-prof/20041218-1.c: Ditto.
	* testsuite/gcc.dg/tree-prof/pr52027.c: Use -O2.
	* testsuite/gcc.dg/tree-prof/pr50907.c: Ditto.
	* testsuite/gcc.dg/tree-prof/pr45354.c: Ditto.
	* testsuite/g++.dg/tree-prof/partition2.C: Ditto.
	* testsuite/g++.dg/tree-prof/partition3.C: Ditto.

------------------------------------------------------------------------

Added:
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/20041218-1.c
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/comp-goto-1.c
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/va-arg-pack-1.c
Modified:
    branches/google/gcc-4_8/gcc/Makefile.in
    branches/google/gcc-4_8/gcc/basic-block.h
    branches/google/gcc-4_8/gcc/bb-reorder.c
    branches/google/gcc-4_8/gcc/bb-reorder.h
    branches/google/gcc-4_8/gcc/cfgcleanup.c
    branches/google/gcc-4_8/gcc/cfgrtl.c
    branches/google/gcc-4_8/gcc/emit-rtl.c
    branches/google/gcc-4_8/gcc/function.c
    branches/google/gcc-4_8/gcc/function.h
    branches/google/gcc-4_8/gcc/ifcvt.c
    branches/google/gcc-4_8/gcc/testsuite/g++.dg/tree-prof/partition2.C
    branches/google/gcc-4_8/gcc/testsuite/g++.dg/tree-prof/partition3.C
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/pr45354.c
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/pr50907.c
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/pr52027.c



More information about the Gcc-cvs mailing list