summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2018-07-12 19:27:01 +0000
committerMatthias Braun <matze@braunis.de>2018-07-12 19:27:01 +0000
commitf03f32d4784f2b808dfdff568bcc023331e96cdb (patch)
tree3398d97fed255cd62ad65858111770b6beaf2e11 /llvm/lib/CodeGen/PrologEpilogInserter.cpp
parent762dee516c3b1d4d1cf7d8c34921977fd1d60c5a (diff)
downloadbcm5719-llvm-f03f32d4784f2b808dfdff568bcc023331e96cdb.tar.gz
bcm5719-llvm-f03f32d4784f2b808dfdff568bcc023331e96cdb.zip
Revert "(HEAD -> master, origin/master, arcpatch-D37582) CodeGen: Remove pipeline dependencies on StackProtector; NFC"
This was triggering pass scheduling failures. This reverts commit r336929. llvm-svn: 336934
Diffstat (limited to 'llvm/lib/CodeGen/PrologEpilogInserter.cpp')
-rw-r--r--llvm/lib/CodeGen/PrologEpilogInserter.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
index fc62c8caf59..d27128b614b 100644
--- a/llvm/lib/CodeGen/PrologEpilogInserter.cpp
+++ b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
@@ -38,6 +38,7 @@
#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/RegisterScavenging.h"
+#include "llvm/CodeGen/StackProtector.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
@@ -142,6 +143,7 @@ INITIALIZE_PASS_BEGIN(PEI, DEBUG_TYPE, "Prologue/Epilogue Insertion", false,
false)
INITIALIZE_PASS_DEPENDENCY(MachineLoopInfo)
INITIALIZE_PASS_DEPENDENCY(MachineDominatorTree)
+INITIALIZE_PASS_DEPENDENCY(StackProtector)
INITIALIZE_PASS_DEPENDENCY(MachineOptimizationRemarkEmitterPass)
INITIALIZE_PASS_END(PEI, DEBUG_TYPE,
"Prologue/Epilogue Insertion & Frame Finalization", false,
@@ -158,6 +160,7 @@ void PEI::getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
AU.addPreserved<MachineLoopInfo>();
AU.addPreserved<MachineDominatorTree>();
+ AU.addRequired<StackProtector>();
AU.addRequired<MachineOptimizationRemarkEmitterPass>();
MachineFunctionPass::getAnalysisUsage(AU);
}
@@ -692,6 +695,7 @@ AssignProtectedObjSet(const StackObjSet &UnassignedObjs,
/// abstract stack objects.
void PEI::calculateFrameObjectOffsets(MachineFunction &MF) {
const TargetFrameLowering &TFI = *MF.getSubtarget().getFrameLowering();
+ StackProtector *SP = &getAnalysis<StackProtector>();
bool StackGrowsDown =
TFI.getStackGrowthDirection() == TargetFrameLowering::StackGrowsDown;
@@ -840,16 +844,16 @@ void PEI::calculateFrameObjectOffsets(MachineFunction &MF) {
EHRegNodeFrameIndex == (int)i)
continue;
- switch (MFI.getObjectSSPLayout(i)) {
- case MachineFrameInfo::SSPLK_None:
+ switch (SP->getSSPLayout(MFI.getObjectAllocation(i))) {
+ case StackProtector::SSPLK_None:
continue;
- case MachineFrameInfo::SSPLK_SmallArray:
+ case StackProtector::SSPLK_SmallArray:
SmallArrayObjs.insert(i);
continue;
- case MachineFrameInfo::SSPLK_AddrOf:
+ case StackProtector::SSPLK_AddrOf:
AddrOfObjs.insert(i);
continue;
- case MachineFrameInfo::SSPLK_LargeArray:
+ case StackProtector::SSPLK_LargeArray:
LargeArrayObjs.insert(i);
continue;
}
OpenPOWER on IntegriCloud