> So, my question is: is it really necessary to mark this location as
> having its address taken?  Yes, the address of the slot is passed to a
> function, however I can't imagine any instances where the function
> retaining that address after the call would be valid.

Your tracing below confirms my recollection that I was the one who added that
code.  Unfortunately, it came in as a merge from another tree, so it's going
to be hard to do the archeology to figure out what it was added for, but the
history certainly suggests to me that there *was* some test case when it did
have a longer life and that's why it was added.  Remember that all this stuff
is very sensitive to calling sequences so you may not be able to find it on
one or two machines (e.g., try Sparc).  I suspect the test case involved
something like two calls to the same function (that returns a structure)
within the parameter list to a third function.

My strong suggestion is to leave this alone.  The benefits in terms of
increased optimization opportunities is small and the costs if it
*does* cause wrong code to be generated is large because we know it'll
be an obscure and hard-to-find case.

Reply via email to