Under normal circumstances, when a frame pointer is not required, we reserve
authorEvan Cheng <evan.cheng@apple.com>
Tue, 1 May 2007 00:52:08 +0000 (00:52 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 1 May 2007 00:52:08 +0000 (00:52 +0000)
commit5c3885ce8e6a3dc69913b50fe6bdc0c89c5432d5
tree3d6f77d6123b4da9f1796dc57be8fcd9c9c89f20
parent14f1dd120fc13200697560680999c0efe7ecd714
Under normal circumstances, when a frame pointer is not required, we reserve
argument space for call sites in the function immediately on entry to the
current function. This eliminates the need for add/sub sp brackets around call
sites. However, this is not always a good idea. If the "call frame" is large and
the target load / store instructions have small immediate field to encode sp
offset, this can cause poor codegen. In the worst case, this can make it
impossible to scavenge a register if the reserved spill slot is pushed too far
apart from sp / fp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36607 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/PrologEpilogInserter.cpp
lib/Target/ARM/ARMRegisterInfo.cpp
lib/Target/ARM/ARMRegisterInfo.h