[PATCH, 2/2] shrink wrap a function with a single loop: split live_edge
Mon Sep 22 10:24:00 GMT 2014
On 19/09/14 17:19, Jeff Law wrote:
> On 09/19/14 10:02, Jiong Wang wrote:
>> On 19/09/14 16:49, Jeff Law wrote:
>>> Probably. Though I'd be a bit concerned with next_block->next_bb.
>>> Wouldn't it be safer to stash away the relevant basic block prior to the
>>> call to split_edge, then use that saved copy. Something like this
>>> basic_block old_dest = live_edge->dest;
>>> next_block = split_edge (live_edge);
>>> /* We create a new basic block. Call df_grow_bb_info to make sure
>>> all data structures are allocated. */
>>> df_grow_bb_info (df_live);
>>> bitmap_and (df_get_live_in (next_block),
>>> df_get_live_out (bb),
>>> df_get_live_in (old_dest));
>>> The idea being we don't want to depend on the precise ordering blocks in
>>> the block chain.
>>> Could you try that and see if it does what you need?
>> Thanks, verified, it works.
> Great. Can you send an updated patchkit for review.
please review, thanks.
* shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
new created BB as the intersection of live-in from "old_dest" and live-out
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 769 bytes
Desc: not available
More information about the Gcc-patches