diff options
author | Jan Hubicka <jh@suse.cz> | 2005-06-16 12:33:40 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2005-06-16 10:33:40 +0000 |
commit | 5e2d947ce84b1a8baa2252c5ff04b9b3931b3893 (patch) | |
tree | 681bd279155de09165d78fad8c1bda0ae8a5495f /gcc/config | |
parent | 0adcdb66ecc4606e302524b98811d82fa555bc4b (diff) | |
download | gcc-5e2d947ce84b1a8baa2252c5ff04b9b3931b3893.zip gcc-5e2d947ce84b1a8baa2252c5ff04b9b3931b3893.tar.gz gcc-5e2d947ce84b1a8baa2252c5ff04b9b3931b3893.tar.bz2 |
basic-block.h (rtl_bb_info): Break out head_, end_, global_live_at_start, global_live_at_end from ...
* 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.
From-SVN: r101082
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/frv/frv.c | 16 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 2 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 2 |
3 files changed, 11 insertions, 9 deletions
diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c index b54c085..f030146 100644 --- a/gcc/config/frv/frv.c +++ b/gcc/config/frv/frv.c @@ -5265,13 +5265,15 @@ frv_ifcvt_modify_tests (ce_if_block_t *ce_info, rtx *p_true, rtx *p_false) for (j = CC_FIRST; j <= CC_LAST; j++) if (TEST_HARD_REG_BIT (tmp_reg->regs, j)) { - if (REGNO_REG_SET_P (then_bb->global_live_at_start, j)) + if (REGNO_REG_SET_P (then_bb->il.rtl->global_live_at_start, j)) continue; - if (else_bb && REGNO_REG_SET_P (else_bb->global_live_at_start, j)) + if (else_bb + && REGNO_REG_SET_P (else_bb->il.rtl->global_live_at_start, j)) continue; - if (join_bb && REGNO_REG_SET_P (join_bb->global_live_at_start, j)) + if (join_bb + && REGNO_REG_SET_P (join_bb->il.rtl->global_live_at_start, j)) continue; SET_HARD_REG_BIT (frv_ifcvt.nested_cc_ok_rewrite, j); @@ -5293,7 +5295,7 @@ frv_ifcvt_modify_tests (ce_if_block_t *ce_info, rtx *p_true, rtx *p_false) /* Remove anything live at the beginning of the join block from being available for allocation. */ - EXECUTE_IF_SET_IN_REG_SET (join_bb->global_live_at_start, 0, regno, rsi) + EXECUTE_IF_SET_IN_REG_SET (join_bb->il.rtl->global_live_at_start, 0, regno, rsi) { if (regno < FIRST_PSEUDO_REGISTER) CLEAR_HARD_REG_BIT (tmp_reg->regs, regno); @@ -5337,7 +5339,7 @@ frv_ifcvt_modify_tests (ce_if_block_t *ce_info, rtx *p_true, rtx *p_false) /* Anything live at the beginning of the block is obviously unavailable for allocation. */ - EXECUTE_IF_SET_IN_REG_SET (bb[j]->global_live_at_start, 0, regno, rsi) + EXECUTE_IF_SET_IN_REG_SET (bb[j]->il.rtl->global_live_at_start, 0, regno, rsi) { if (regno < FIRST_PSEUDO_REGISTER) CLEAR_HARD_REG_BIT (tmp_reg->regs, regno); @@ -5991,7 +5993,7 @@ frv_ifcvt_modify_insn (ce_if_block_t *ce_info, severely. */ && ce_info->join_bb && ! (REGNO_REG_SET_P - (ce_info->join_bb->global_live_at_start, + (ce_info->join_bb->il.rtl->global_live_at_start, REGNO (SET_DEST (set)))) /* Similarly, we must not unconditionally set a reg used as scratch in the THEN branch if the same reg @@ -5999,7 +6001,7 @@ frv_ifcvt_modify_insn (ce_if_block_t *ce_info, && (! ce_info->else_bb || BLOCK_FOR_INSN (insn) == ce_info->else_bb || ! (REGNO_REG_SET_P - (ce_info->else_bb->global_live_at_start, + (ce_info->else_bb->il.rtl->global_live_at_start, REGNO (SET_DEST (set)))))) pattern = set; diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index dfaac94..9ced831 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -1920,7 +1920,7 @@ ix86_eax_live_at_start_p (void) to correct at this point. This gives false positives for broken functions that might use uninitialized data that happens to be allocated in eax, but who cares? */ - return REGNO_REG_SET_P (ENTRY_BLOCK_PTR->global_live_at_end, 0); + return REGNO_REG_SET_P (ENTRY_BLOCK_PTR->il.rtl->global_live_at_end, 0); } /* Value is the number of bytes of arguments automatically diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index bf9375a..dc701e4 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -7417,7 +7417,7 @@ emit_predicate_relation_info (void) /* Skip p0, which may be thought to be live due to (reg:DI p0) grabbing the entire block of predicate registers. */ for (r = PR_REG (2); r < PR_REG (64); r += 2) - if (REGNO_REG_SET_P (bb->global_live_at_start, r)) + if (REGNO_REG_SET_P (bb->il.rtl->global_live_at_start, r)) { rtx p = gen_rtx_REG (BImode, r); rtx n = emit_insn_after (gen_pred_rel_mutex (p), head); |