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