On Oct 14, 2005, at 3:43 PM, Kean Johnston wrote:

What does the fact that -fno-optimize-sibling-calls worked
indicate really? Without that option something really does
seem to be mis-calculating the stack offsets by 4. What may
be of interest here is that aside from the vect/* tests,
the only other test that is failing is sibcall-6.

It indicated that sibling calling optimization in main should
be disabled for targets that need to up the stack alignment,
otherwise you get the stack alignment of a lower one than
that is required.  You have to look to see what changed
between 3.4.0 and 4.0.0 that caused this since it is a
regression.  I think the issue is that we are detecting them
at the tree level but not rejecting them when expanding.  So you
have to look at the expand functions for that.

Also main1 should be marked as noinline to make sure that at
-O3 and above, they work correctly.

The reason why nobody notices this before is because most x86 OS's
now a days align their stack going into main as 16byte aligned
which was what my comment about fixing your OS was about, it was
more of a joke rather than anything else.

sibcall-6 is a different issue, really and unrelated to the
current problem you are looking into.


-- Pinski

Reply via email to