summaryrefslogtreecommitdiff
path: root/test/FrontendC++
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-04-06 20:26:37 +0000
committerJim Grosbach <grosbach@apple.com>2010-04-06 20:26:37 +0000
commitfa85eb62378900a884a7eb4933a9deb6513d26ab (patch)
treeba680cbed4da06d765a15ea16ed65e7bbb845298 /test/FrontendC++
parentaa59c88a6e963cf0f71511ae81784da2873dbc78 (diff)
downloadllvm-fa85eb62378900a884a7eb4933a9deb6513d26ab.tar.gz
llvm-fa85eb62378900a884a7eb4933a9deb6513d26ab.tar.bz2
llvm-fa85eb62378900a884a7eb4933a9deb6513d26ab.tar.xz
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
Diffstat (limited to 'test/FrontendC++')
0 files changed, 0 insertions, 0 deletions