diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-16 10:33:40 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-16 10:33:40 +0000 |
commit | e0dde8f8f8975b893fb6604a17de35ca881e85e9 (patch) | |
tree | 681bd279155de09165d78fad8c1bda0ae8a5495f /gcc/ifcvt.c | |
parent | 9bc610b610152b60bbcdd789e96b72b1392035c3 (diff) | |
download | gcc-e0dde8f8f8975b893fb6604a17de35ca881e85e9.tar.gz |
* basic-block.h (rtl_bb_info): Break out head_, end_,
global_live_at_start, global_live_at_end from ...
(basic_block_def): ... here; update all references
(BB_RTL): New flag.
(init_rtl_bb_info): Declare.
* cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
flag.
* cfgrtl.c: Include ggc.h
(create_basic_block_structure): Init bb info.
(rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
(init_rtl_bb_info): New function.
(rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
* cfghooks.c (merge_block): Do not copy global_live_at_end here.
* cfg.c (clear_bb_flags): Skip BB_RTL flag.
(dump_flow_info): Gueard global_live_* dumping.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101082 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r-- | gcc/ifcvt.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index d4b66a58f7a..4480f530260 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -2364,9 +2364,9 @@ merge_if_block (struct ce_if_block * ce_info) if (then_bb) { - if (combo_bb->global_live_at_end) - COPY_REG_SET (combo_bb->global_live_at_end, - then_bb->global_live_at_end); + if (combo_bb->il.rtl->global_live_at_end) + COPY_REG_SET (combo_bb->il.rtl->global_live_at_end, + then_bb->il.rtl->global_live_at_end); merge_blocks (combo_bb, then_bb); num_true_changes++; } @@ -2417,9 +2417,9 @@ merge_if_block (struct ce_if_block * ce_info) && join_bb != EXIT_BLOCK_PTR) { /* We can merge the JOIN. */ - if (combo_bb->global_live_at_end) - COPY_REG_SET (combo_bb->global_live_at_end, - join_bb->global_live_at_end); + if (combo_bb->il.rtl->global_live_at_end) + COPY_REG_SET (combo_bb->il.rtl->global_live_at_end, + join_bb->il.rtl->global_live_at_end); merge_blocks (combo_bb, join_bb); num_true_changes++; @@ -3060,9 +3060,9 @@ find_if_case_1 (basic_block test_bb, edge then_edge, edge else_edge) /* Conversion went ok, including moving the insns and fixing up the jump. Adjust the CFG to match. */ - bitmap_ior (test_bb->global_live_at_end, - else_bb->global_live_at_start, - then_bb->global_live_at_end); + bitmap_ior (test_bb->il.rtl->global_live_at_end, + else_bb->il.rtl->global_live_at_start, + then_bb->il.rtl->global_live_at_end); /* We can avoid creating a new basic block if then_bb is immediately @@ -3178,9 +3178,9 @@ find_if_case_2 (basic_block test_bb, edge then_edge, edge else_edge) /* Conversion went ok, including moving the insns and fixing up the jump. Adjust the CFG to match. */ - bitmap_ior (test_bb->global_live_at_end, - then_bb->global_live_at_start, - else_bb->global_live_at_end); + bitmap_ior (test_bb->il.rtl->global_live_at_end, + then_bb->il.rtl->global_live_at_start, + else_bb->il.rtl->global_live_at_end); delete_basic_block (else_bb); @@ -3357,7 +3357,7 @@ dead_or_predicable (basic_block test_bb, basic_block merge_bb, /* For TEST, we're interested in a range of insns, not a whole block. Moreover, we're interested in the insns live from OTHER_BB. */ - COPY_REG_SET (test_live, other_bb->global_live_at_start); + COPY_REG_SET (test_live, other_bb->il.rtl->global_live_at_start); pbi = init_propagate_block_info (test_bb, test_live, test_set, test_set, 0); @@ -3373,12 +3373,13 @@ dead_or_predicable (basic_block test_bb, basic_block merge_bb, /* We can perform the transformation if MERGE_SET & (TEST_SET | TEST_LIVE) and - TEST_SET & merge_bb->global_live_at_start + TEST_SET & merge_bb->il.rtl->global_live_at_start are empty. */ if (bitmap_intersect_p (test_set, merge_set) || bitmap_intersect_p (test_live, merge_set) - || bitmap_intersect_p (test_set, merge_bb->global_live_at_start)) + || bitmap_intersect_p (test_set, + merge_bb->il.rtl->global_live_at_start)) fail = 1; FREE_REG_SET (tmp); |