This is the mail archive of the
mailing list for the GCC project.
Re: rtl_loop_init vs try_redirect_by_replacing_jump vs simple jumps
> You're misunderstanding how this code works. In cfglayout mode,
> there is no "order" in the basic blocks such that
> BLOCK_FOR_INSN(NEXT_INSN(BB_END(BB)) ) == BB->next_bb. This means
> that you can fall through to other blocks than next_bb.
Thanks for the tip, I figured out what was really happening. Which
leads to the next question: What's the right way to keep an asm() from
being loop invariant? I've got a case where an inline asm() is passed
a pointer (the pointer is invariant) but internally dereferences it
(the pointed-at memory is *not* invariant). However, loop-invariant.c
is pulling it out of the loop anyway.
Making the whole asm() volatile works, but that seems like overkill to