Add a local stack object block allocation pass. This is still an
authorJim Grosbach <grosbach@apple.com>
Sat, 14 Aug 2010 00:15:52 +0000 (00:15 +0000)
committerJim Grosbach <grosbach@apple.com>
Sat, 14 Aug 2010 00:15:52 +0000 (00:15 +0000)
commit3d72367d30c9ce6f387764a028763f7a366cc443
tree5290b81ee70c16285532ecc8ce5e4b5bac3ee87f
parent61556e3a946f3814e2166a78667453e9fff17c77
Add a local stack object block allocation pass. This is still an
experimental pass that allocates locals relative to one another before
register allocation and then assigns them to actual stack slots as a block
later in PEI. This will eventually allow targets with limited index offset
range to allocate additional base registers (not just FP and SP) to
more efficiently reference locals, as well as handle situations where
locals cannot be referenced via SP or FP at all (dynamic stack realignment
together with variable sized objects, for example). It's currently
incomplete and almost certainly buggy. Work in progress.

Disabled by default and gated via the -enable-local-stack-alloc command
line option.

rdar://8277890

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111059 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/MachineFrameInfo.h
include/llvm/CodeGen/Passes.h
lib/CodeGen/CMakeLists.txt
lib/CodeGen/LLVMTargetMachine.cpp
lib/CodeGen/LocalStackSlotAllocation.cpp [new file with mode: 0644]
lib/CodeGen/PrologEpilogInserter.cpp