LLVM backend for 6502
Go to file
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
autoconf Fixed spurious warning problem noticed by Daniel Dunbar. The configure script 2010-03-25 13:59:09 +00:00
bindings
cmake
docs Adding SAFECode to the list of projects that work with LLVM 2.7. 2010-04-06 14:52:14 +00:00
examples Fix the ocaml kaleidoscope tutorial to fix linking external libraries. 2010-03-21 23:15:13 +00:00
include Make this hack more specific to the Apple gcc 4.2 non-LLVM compiler. 2010-04-06 20:07:21 +00:00
lib Fix PR6696 and PR6663 2010-04-06 20:26:37 +00:00
projects
runtime
test Don't try to collapse DomainValues onto an incompatible SSE domain. 2010-04-06 19:48:56 +00:00
tools add .o file writing for inline asm in llc. Here's a silly 2010-04-05 23:11:24 +00:00
unittests update unit test for api change. 2010-04-05 22:49:48 +00:00
utils stringref-ize the MemoryBuffer::get apis. This requires 2010-04-05 22:42:30 +00:00
website
build-for-llvm-top.sh
CMakeLists.txt
configure Fixed spurious warning problem noticed by Daniel Dunbar. The configure script 2010-03-25 13:59:09 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Second try of initial ARM/Thumb disassembler check-in. It consists of a tablgen 2010-04-02 22:27:38 +00:00
ModuleInfo.txt
README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.