diff options
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp | 8 | ||||
| -rw-r--r-- | llvm/lib/Target/Mips/MipsISelDAGToDAG.h | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp b/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp index 7e843512f6e..f99f3a1b3e0 100644 --- a/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp +++ b/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp @@ -24,6 +24,7 @@ #include "llvm/CodeGen/MachineInstrBuilder.h" #include "llvm/CodeGen/MachineRegisterInfo.h" #include "llvm/CodeGen/SelectionDAGNodes.h" +#include "llvm/CodeGen/StackProtector.h" #include "llvm/IR/CFG.h" #include "llvm/IR/GlobalValue.h" #include "llvm/IR/Instructions.h" @@ -46,6 +47,13 @@ using namespace llvm; // instructions for SelectionDAG operations. //===----------------------------------------------------------------------===// +void MipsDAGToDAGISel::getAnalysisUsage(AnalysisUsage &AU) const { + // There are multiple MipsDAGToDAGISel instances added to the pass pipeline. + // We need to preserve StackProtector for the next one. + AU.addPreserved<StackProtector>(); + SelectionDAGISel::getAnalysisUsage(AU); +} + bool MipsDAGToDAGISel::runOnMachineFunction(MachineFunction &MF) { Subtarget = &static_cast<const MipsSubtarget &>(MF.getSubtarget()); bool Ret = SelectionDAGISel::runOnMachineFunction(MF); diff --git a/llvm/lib/Target/Mips/MipsISelDAGToDAG.h b/llvm/lib/Target/Mips/MipsISelDAGToDAG.h index 5a871b5930a..09003459d18 100644 --- a/llvm/lib/Target/Mips/MipsISelDAGToDAG.h +++ b/llvm/lib/Target/Mips/MipsISelDAGToDAG.h @@ -41,6 +41,8 @@ public: bool runOnMachineFunction(MachineFunction &MF) override; + void getAnalysisUsage(AnalysisUsage &AU) const override; + protected: SDNode *getGlobalBaseReg(); diff --git a/llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp b/llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp index 0be5abca03f..a2b55e8bddc 100644 --- a/llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp +++ b/llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp @@ -11,6 +11,7 @@ #include "Mips.h" #include "MipsTargetMachine.h" #include "llvm/CodeGen/TargetPassConfig.h" +#include "llvm/CodeGen/StackProtector.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" @@ -32,6 +33,7 @@ namespace { void getAnalysisUsage(AnalysisUsage &AU) const override { AU.addRequired<TargetPassConfig>(); + AU.addPreserved<StackProtector>(); MachineFunctionPass::getAnalysisUsage(AU); } |

