On 12/04/2011 01:27 PM, Richard Sandiford wrote: > OK, here it is. As well as switching to the backward scan and incremental > liveness updates, I added a test for another case that I stumbled over: > > /* Reject targets of abnormal edges. This is needed for correctness > on ports like Alpha and MIPS, whose pic_offset_table_rtx can die on > exception edges even though it is generally treated as call-saved > for the majority of the compilation. Moving across abnormal edges > isn't going to be interesting for shrink-wrap usage anyway. */ > if (live_edge->flags & EDGE_ABNORMAL) > return NULL; >
> * sched-int.h (bb_note): Move to... > * basic-block.h: ...here. > * haifa-sched.c (bb_note): Move to... > * cfgrtl.c: ...here. > * function.c (next_block_for_reg): New function. > (move_insn_for_shrink_wrap): Likewise. > (prepare_shrink_wrap): Rewrite to use the above. Ok and thanks. Bernd