diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-07-26 00:05:14 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-07-26 00:05:14 +0000 |
commit | 906f6fb565e7bf6cf54fed8955e371d735b06d78 (patch) | |
tree | 7b4335a063124db9f77a7362d56a8d59e51a5600 /llvm/lib | |
parent | d052efc3326f1fbe03a673413eee6a6cd8142898 (diff) | |
download | bcm5719-llvm-906f6fb565e7bf6cf54fed8955e371d735b06d78.tar.gz bcm5719-llvm-906f6fb565e7bf6cf54fed8955e371d735b06d78.zip |
[safestack] Fix stack guard live range.
Stack guard slot is live throughout the function.
llvm-svn: 276712
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/SafeStack.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/CodeGen/SafeStackColoring.cpp | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SafeStack.cpp b/llvm/lib/CodeGen/SafeStack.cpp index 19cd59b9dba..4a1b9958a5b 100644 --- a/llvm/lib/CodeGen/SafeStack.cpp +++ b/llvm/lib/CodeGen/SafeStack.cpp @@ -530,7 +530,7 @@ Value *SafeStack::moveStaticAllocasToUnsafeStack( unsigned Align = std::max(DL->getPrefTypeAlignment(Ty), StackGuardSlot->getAlignment()); SSL.addObject(StackGuardSlot, getStaticAllocaAllocationSize(StackGuardSlot), - Align, SSC.getLiveRange(StackGuardSlot)); + Align, SSC.getFullLiveRange()); } for (Argument *Arg : ByValArguments) { diff --git a/llvm/lib/CodeGen/SafeStackColoring.cpp b/llvm/lib/CodeGen/SafeStackColoring.cpp index 709614f57e7..795eb8d2719 100644 --- a/llvm/lib/CodeGen/SafeStackColoring.cpp +++ b/llvm/lib/CodeGen/SafeStackColoring.cpp @@ -25,7 +25,9 @@ static cl::opt<bool> ClColoring("safe-stack-coloring", cl::Hidden, cl::init(true)); const StackColoring::LiveRange &StackColoring::getLiveRange(AllocaInst *AI) { - return LiveRanges[AllocaNumbering[AI]]; + const auto IT = AllocaNumbering.find(AI); + assert(IT != AllocaNumbering.end()); + return LiveRanges[IT->second]; } bool StackColoring::readMarker(Instruction *I, bool *IsStart) { |