variable tracking vs. delay slots question

Jeff Law law@redhat.com
Wed Sep 12 02:21:00 GMT 2012


On 09/11/2012 04:33 PM, Steve Ellcey wrote:
> In some configuration files there is comment that says that the variable
> tracking pass should be run after all optimizations which change the order
> of instructions and that it requires a valid control flow graph to work.
>
> But my understanding of the delay slot pass is that it can change the order
> of instructions and that it can only be run after the control flow graph has
> been freed.
It changes the order of instructions, but IIRC it leaves a little 
breadcrumb in the instruction's original position.  No idea of 
var-tracking would utilize that breadcrumb.

reorg clobbers the CFG as well.


>
> These requirements seem to conflict.  Am I right about this or are the
> comments wrong or am I confused?  I think this problem is the basis of
> bug 54128, a bootstrap failure on MIPS, though the problem seems generic
> to any system with delay slots.
I haven't looked at 54128, but yes, I think you're generally right about 
the conflict.  Not sure what the implications are in terms of the 
failure mode -- it would seem to me that we wouldn't get good debug 
info.  However, I'm not sure offhand how it'd cause a boostrap error.

jeff



More information about the Gcc mailing list