diff options
author | Eric Christopher <echristo@gmail.com> | 2012-10-04 20:46:14 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2012-10-04 20:46:14 +0000 |
commit | 13319578eae7e89f1b8d2a74f09448502c425226 (patch) | |
tree | c8a8d548e8432c17b4a1569bdab11c45c8085da6 /llvm/lib/CodeGen | |
parent | 463977462595f6c4a4b623599f5bbf0e9047c023 (diff) | |
download | bcm5719-llvm-13319578eae7e89f1b8d2a74f09448502c425226.tar.gz bcm5719-llvm-13319578eae7e89f1b8d2a74f09448502c425226.zip |
Update this a bit more to represent how the prologue should work:
a) frame setup instructions define the prologue
b) we shouldn't change our location mid-stream
Add a test to make sure that the stack adjustment stays within
the prologue.
llvm-svn: 165250
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index f79854dc443..fd2fd24331a 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -1355,9 +1355,10 @@ void DwarfDebug::beginFunction(const MachineFunction *MF) { if (!MI->isLabel()) AtBlockEntry = false; - // First known non DBG_VALUE location marks beginning of function - // body. - if (PrologEndLoc.isUnknown() && !MI->getDebugLoc().isUnknown()) + // First known non-DBG_VALUE and non-frame setup location marks + // the beginning of the function body. + if (!MI->getFlag(MachineInstr::FrameSetup) && + (PrologEndLoc.isUnknown() && !MI->getDebugLoc().isUnknown())) PrologEndLoc = MI->getDebugLoc(); // Check if the instruction clobbers any registers with debug vars. |