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