On 07/18/2011 12:09 PM, Steven Bosscher wrote: > On Mon, Jul 18, 2011 at 8:48 PM, Richard Henderson <r...@redhat.com> wrote: >> Split out a helper subroutine to insert a barrier, >> after we've modified a basic block to not fallthru. > > Huh, aren't barriers emitted automatically when going out of cfglayout mode??
... only for conditional branches. We appear to assume that unconditional branches already have a barrier in the footer. See fixup_reorder_chain, and the location of the only call to emit_barrier_after. I'm really not keen on how cfglayout.c introduces new REG_CROSSING_JUMP notes. Given the fixups we perform in bb-reorder.c for !HAS_LONG_COND_BRANCH and !HAS_LONG_UNCOND_BRANCH, it seems like the simplistic code in cfglayout.c is likely only going to work for targets like x86... I wonder what happens if I simply assert that pass_bbpart has already done the right thing... r~