llvm-6502/lib
Jim Grosbach fa85eb6237 Fix PR6696 and PR6663
When a frame pointer is not otherwise required, and dynamic stack alignment
is necessary solely due to the spilling of a register with larger alignment
requirements than the default stack alignment, the frame pointer can be both
used as a general purpose register and a frame pointer. That goes poorly, for
obvious reasons. This patch brings back a bit of old logic for identifying
the use of such registers and conservatively reserves the frame pointer
during register allocation in such cases.

For now, implement for X86 only since it's 32-bit linux which is hitting this,
and we want a targeted fix for 2.7. As a follow-on, this will be expanded
to handle other targets, as theoretically the problem could arise elsewhere
as well.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100559 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06 20:26:37 +00:00
..
Analysis Add a const qualifier. 2010-04-06 01:31:12 +00:00
Archive Fix a grammaro. 2010-03-30 20:04:57 +00:00
AsmParser enhance SMDiagnostic to also maintain a pointer to the SourceMgr. 2010-04-06 18:06:18 +00:00
Bitcode Add special case bitcode support for DebugLoc. This avoids 2010-04-03 02:17:50 +00:00
CodeGen Code clean up. Move includes from VirtRegRewriter.h to VirtRegRewriter.cpp. 2010-04-06 17:19:55 +00:00
CompilerDriver
ExecutionEngine Fix OProfileJITEventListener build for new DebugLoc. 2010-04-05 21:09:12 +00:00
Linker
MC Give AsmParser an option to control whether it finalizes 2010-04-05 23:15:42 +00:00
Support enhance SMDiagnostic to also maintain a pointer to the SourceMgr. 2010-04-06 18:06:18 +00:00
System AddSignalHandler was not releasing the critical section on win32. 2010-03-31 12:07:16 +00:00
Target Fix PR6696 and PR6663 2010-04-06 20:26:37 +00:00
Transforms performance: get rid of repeated dereferencing of use_iterator by caching its result 2010-04-06 19:32:30 +00:00
VMCore Use a ManagedCleanup to prevent leaking the PassRegistrar map. In breaks the 2010-04-06 04:20:48 +00:00
Makefile