diff options
Diffstat (limited to 'lib/CodeGen/GCStrategy.cpp')
| -rw-r--r-- | lib/CodeGen/GCStrategy.cpp | 36 | 
1 files changed, 14 insertions, 22 deletions
diff --git a/lib/CodeGen/GCStrategy.cpp b/lib/CodeGen/GCStrategy.cpp index 1173d1102125..1fdff6bbf106 100644 --- a/lib/CodeGen/GCStrategy.cpp +++ b/lib/CodeGen/GCStrategy.cpp @@ -16,13 +16,12 @@  //===----------------------------------------------------------------------===//  #include "llvm/CodeGen/GCStrategy.h" -#include "llvm/Analysis/DominatorInternals.h" -#include "llvm/Analysis/Dominators.h"  #include "llvm/CodeGen/MachineFrameInfo.h"  #include "llvm/CodeGen/MachineFunctionPass.h"  #include "llvm/CodeGen/MachineInstrBuilder.h"  #include "llvm/CodeGen/MachineModuleInfo.h"  #include "llvm/CodeGen/Passes.h" +#include "llvm/IR/Dominators.h"  #include "llvm/IR/IntrinsicInst.h"  #include "llvm/IR/Module.h"  #include "llvm/Support/Debug.h" @@ -53,11 +52,11 @@ namespace {      static char ID;      LowerIntrinsics(); -    const char *getPassName() const; -    void getAnalysisUsage(AnalysisUsage &AU) const; +    const char *getPassName() const override; +    void getAnalysisUsage(AnalysisUsage &AU) const override; -    bool doInitialization(Module &M); -    bool runOnFunction(Function &F); +    bool doInitialization(Module &M) override; +    bool runOnFunction(Function &F) override;    }; @@ -83,9 +82,9 @@ namespace {      static char ID;      GCMachineCodeAnalysis(); -    void getAnalysisUsage(AnalysisUsage &AU) const; +    void getAnalysisUsage(AnalysisUsage &AU) const override; -    bool runOnMachineFunction(MachineFunction &MF); +    bool runOnMachineFunction(MachineFunction &MF) override;    };  } @@ -102,13 +101,6 @@ GCStrategy::GCStrategy() :    UsesMetadata(false)  {} -GCStrategy::~GCStrategy() { -  for (iterator I = begin(), E = end(); I != E; ++I) -    delete *I; - -  Functions.clear(); -} -  bool GCStrategy::initializeCustomLowering(Module &M) { return false; }  bool GCStrategy::performCustomLowering(Function &F) { @@ -119,14 +111,13 @@ bool GCStrategy::performCustomLowering(Function &F) {  bool GCStrategy::findCustomSafePoints(GCFunctionInfo& FI, MachineFunction &F) {    dbgs() << "gc " << getName() << " must override findCustomSafePoints.\n"; -  llvm_unreachable(0); +  llvm_unreachable(nullptr);  }  GCFunctionInfo *GCStrategy::insertFunctionInfo(const Function &F) { -  GCFunctionInfo *FI = new GCFunctionInfo(F, *this); -  Functions.push_back(FI); -  return FI; +  Functions.push_back(make_unique<GCFunctionInfo>(F, *this)); +  return Functions.back().get();  }  // ----------------------------------------------------------------------------- @@ -154,7 +145,7 @@ const char *LowerIntrinsics::getPassName() const {  void LowerIntrinsics::getAnalysisUsage(AnalysisUsage &AU) const {    FunctionPass::getAnalysisUsage(AU);    AU.addRequired<GCModuleInfo>(); -  AU.addPreserved<DominatorTree>(); +  AU.addPreserved<DominatorTreeWrapperPass>();  }  /// doInitialization - If this module uses the GC intrinsics, find them now. @@ -271,8 +262,9 @@ bool LowerIntrinsics::runOnFunction(Function &F) {    // Custom lowering may modify the CFG, so dominators must be recomputed.    if (UseCustomLoweringPass) { -    if (DominatorTree *DT = getAnalysisIfAvailable<DominatorTree>()) -      DT->DT->recalculate(F); +    if (DominatorTreeWrapperPass *DTWP = +            getAnalysisIfAvailable<DominatorTreeWrapperPass>()) +      DTWP->getDomTree().recalculate(F);    }    return MadeChange;  | 
