aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2009-12-11 19:39:55 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2009-12-11 19:39:55 +0000
commitfc51282cbe1bfe03994f44b718339597c9ce4de7 (patch)
tree38870d3f9bd92ac505bdc81f2e5f4f8735fd60d1 /llvm/lib/CodeGen/PrologEpilogInserter.cpp
parent098bd1bbeab74684f55c01b28eacaa7d0ff02cf7 (diff)
downloadllvm-fc51282cbe1bfe03994f44b718339597c9ce4de7.zip
llvm-fc51282cbe1bfe03994f44b718339597c9ce4de7.tar.gz
llvm-fc51282cbe1bfe03994f44b718339597c9ce4de7.tar.bz2
Honour setHasCalls() set from isel.
This is used in some weird cases like general dynamic TLS model. This fixes PR5723 llvm-svn: 91144
Diffstat (limited to 'llvm/lib/CodeGen/PrologEpilogInserter.cpp')
-rw-r--r--llvm/lib/CodeGen/PrologEpilogInserter.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
index 4d9f9f8..e94247f 100644
--- a/llvm/lib/CodeGen/PrologEpilogInserter.cpp
+++ b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
@@ -136,9 +136,10 @@ void PEI::getAnalysisUsage(AnalysisUsage &AU) const {
/// pseudo instructions.
void PEI::calculateCallsInformation(MachineFunction &Fn) {
const TargetRegisterInfo *RegInfo = Fn.getTarget().getRegisterInfo();
+ MachineFrameInfo *FFI = Fn.getFrameInfo();
unsigned MaxCallFrameSize = 0;
- bool HasCalls = false;
+ bool HasCalls = FFI->hasCalls();
// Get the function call frame set-up and tear-down instruction opcode
int FrameSetupOpcode = RegInfo->getCallFrameSetupOpcode();
@@ -166,7 +167,6 @@ void PEI::calculateCallsInformation(MachineFunction &Fn) {
HasCalls = true;
}
- MachineFrameInfo *FFI = Fn.getFrameInfo();
FFI->setHasCalls(HasCalls);
FFI->setMaxCallFrameSize(MaxCallFrameSize);