diff options
author | Matthias Braun <matze@braunis.de> | 2018-07-12 19:27:01 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2018-07-12 19:27:01 +0000 |
commit | f03f32d4784f2b808dfdff568bcc023331e96cdb (patch) | |
tree | 3398d97fed255cd62ad65858111770b6beaf2e11 /llvm/lib/CodeGen/PrologEpilogInserter.cpp | |
parent | 762dee516c3b1d4d1cf7d8c34921977fd1d60c5a (diff) | |
download | bcm5719-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.cpp | 14 |
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; } |