diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-15 17:11:32 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-15 17:11:32 +0000 |
commit | 0fb3af46a9812808184394522ff6d65089d3f9bb (patch) | |
tree | 4758c5c96ba58a9277e874c67cdf097af9b94edd /gcc/ira-emit.c | |
parent | d0d9fa3b225da0716148b9879b699c6014a626c2 (diff) | |
download | gcc-0fb3af46a9812808184394522ff6d65089d3f9bb.tar.gz |
2012-10-15 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 192465 using svnmerge.py
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@192466 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-emit.c')
-rw-r--r-- | gcc/ira-emit.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c index dbab5374173..b0d9a825124 100644 --- a/gcc/ira-emit.c +++ b/gcc/ira-emit.c @@ -495,6 +495,7 @@ generate_edge_moves (edge e) bitmap_iterator bi; ira_allocno_t src_allocno, dest_allocno, *src_map, *dest_map; move_t move; + bitmap regs_live_in_dest, regs_live_out_src; src_loop_node = IRA_BB_NODE (e->src)->parent; dest_loop_node = IRA_BB_NODE (e->dest)->parent; @@ -503,9 +504,11 @@ generate_edge_moves (edge e) return; src_map = src_loop_node->regno_allocno_map; dest_map = dest_loop_node->regno_allocno_map; - EXECUTE_IF_SET_IN_REG_SET (DF_LR_IN (e->dest), + regs_live_in_dest = df_get_live_in (e->dest); + regs_live_out_src = df_get_live_out (e->src); + EXECUTE_IF_SET_IN_REG_SET (regs_live_in_dest, FIRST_PSEUDO_REGISTER, regno, bi) - if (bitmap_bit_p (DF_LR_OUT (e->src), regno)) + if (bitmap_bit_p (regs_live_out_src, regno)) { src_allocno = src_map[regno]; dest_allocno = dest_map[regno]; @@ -1206,15 +1209,16 @@ add_ranges_and_copies (void) destination block) to use for searching allocnos by their regnos because of subsequent IR flattening. */ node = IRA_BB_NODE (bb)->parent; - bitmap_copy (live_through, DF_LR_IN (bb)); + bitmap_copy (live_through, df_get_live_in (bb)); add_range_and_copies_from_move_list (at_bb_start[bb->index], node, live_through, REG_FREQ_FROM_BB (bb)); - bitmap_copy (live_through, DF_LR_OUT (bb)); + bitmap_copy (live_through, df_get_live_out (bb)); add_range_and_copies_from_move_list (at_bb_end[bb->index], node, live_through, REG_FREQ_FROM_BB (bb)); FOR_EACH_EDGE (e, ei, bb->succs) { - bitmap_and (live_through, DF_LR_IN (e->dest), DF_LR_OUT (bb)); + bitmap_and (live_through, + df_get_live_in (e->dest), df_get_live_out (bb)); add_range_and_copies_from_move_list ((move_t) e->aux, node, live_through, REG_FREQ_FROM_EDGE_FREQ (EDGE_FREQUENCY (e))); |