-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MultiSource/Benchmarks/Prolangs-C/allroots broken on x86 #1368
Comments
Anton, could you give us more information on this? If it crashes on the first movaps in newton: That must means %esp is not properly aligned. Can you verify if this is the case? Can you tell me if it segfault the first time it reaches this function? Do you |
what is the stack alignment on linux? 8 bytes, 4 bytes? I'm pretty sure it's not 16. |
Might this be related to Bug 995? -Chris |
Yes, it's that instruction. It crashes the first time entering the function (gdb) p $esp and that seems to be the problem |
Chris, default stack alignment on linux is 4 bytes, but sse stuff usually wants |
Evan, are we generating movaps for f64 load/stores or something? -Chris |
Yep. We use movaps for f32/f64 load / store. That obviously doesn't work for |
Can we just override stack alignment from command line? This will allow use |
nope, stack alignment is part of the ABI. You can't compile just some functions with aligned stacks: the |
Well, assume we have 4 bytes stack alignment on linux by default. Command line |
I misspoke. Actually we are not using movaps for f32/f64 load / stores. The |
this requires either:
Since 'entire program' implies libraries (e.g. libc), it isn't feasible. |
We should not have been generating spills of vector values in this test case. |
Works for me now, thanks, Evan. |
Extended Description
This test is definitely broken. Please find attached LLVM bytecode & generated
assembler code.
Generated code segfaults at first "movaps" instruction in newton function. llc
-march=pentium3 generates working code.
The text was updated successfully, but these errors were encountered: