-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
bad codegen of memmove #1516
Comments
Reproduce with: |
Nick, I wasn't able to reproduce the bug:
Could you please:
|
GDB proves uninformative, which is unsurprising as the input is asm files: Program received signal SIGSEGV, Segmentation fault.
|
To reproduce: $ cd projects/llvm-test/SingleSource/Benchmarks/Shootout-C++ If you want to bugpoint the error, run this: |
Well. The crash at my side is the same (mov (%esi), %esi). It seems, that |
Well. Seems to be something wrong with fp elimination. If I extract failed function and compile it separately - everything is ok. Even So, the problem is somewhere outside of the crashed function... Looking
@@ -3021,7 +3022,6 @@
@@ -3053,6 +3053,7 @@
And so on. Actually files differ only on that "subl $12, %esp" lines. Cool. |
Afaik, there shouldn't be any stack-manipulation at all here. |
And finally:
Note, there are 2 adjcall* calls for memmove call
entry (0x8754fa0, LLVM BB @0x87569c8, ID#0): Note, we've dropped adjcallstackdown (seems to be ok), but turned adjcallstackup |
If I follow Anton's instructions and remove any %esp manipulation instruction |
This was the result of "sret" patch. Codegen really thought, that memmove is Sorry for the breakage. Fixed with these patches: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070129/043666.html |
Extended Description
bugpoint reduced this out of Shootout-C++/hash2. It works if I compile it with
the CBE, but fails if I compile it with the x86 backend.
The text was updated successfully, but these errors were encountered: