From: Benjamin Kramer Date: Thu, 29 Jan 2015 13:26:50 +0000 (+0000) Subject: EHPrepare: Remove leftover initialization code for DomTrees. X-Git-Tag: llvmorg-3.7.0-rc1~13744 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eb63e4d6f8c503f250e2a2cba43079e3603df04b;p=platform%2Fupstream%2Fllvm.git EHPrepare: Remove leftover initialization code for DomTrees. While there modernize some loops. NFC. llvm-svn: 227436 --- diff --git a/llvm/lib/CodeGen/DwarfEHPrepare.cpp b/llvm/lib/CodeGen/DwarfEHPrepare.cpp index 7066420..8e49ef3 100644 --- a/llvm/lib/CodeGen/DwarfEHPrepare.cpp +++ b/llvm/lib/CodeGen/DwarfEHPrepare.cpp @@ -14,18 +14,12 @@ #include "llvm/CodeGen/Passes.h" #include "llvm/ADT/Statistic.h" -#include "llvm/IR/CallSite.h" -#include "llvm/IR/Dominators.h" #include "llvm/IR/Function.h" #include "llvm/IR/Instructions.h" -#include "llvm/IR/IntrinsicInst.h" #include "llvm/IR/Module.h" -#include "llvm/MC/MCAsmInfo.h" #include "llvm/Pass.h" #include "llvm/Target/TargetLowering.h" #include "llvm/Target/TargetSubtargetInfo.h" -#include "llvm/Transforms/Utils/BasicBlockUtils.h" -#include "llvm/Transforms/Utils/SSAUpdater.h" using namespace llvm; #define DEBUG_TYPE "dwarfehprepare" @@ -45,9 +39,7 @@ namespace { public: static char ID; // Pass identification, replacement for typeid. DwarfEHPrepare(const TargetMachine *TM) - : FunctionPass(ID), TM(TM), RewindFunction(nullptr) { - initializeDominatorTreeWrapperPassPass(*PassRegistry::getPassRegistry()); - } + : FunctionPass(ID), TM(TM), RewindFunction(nullptr) {} bool runOnFunction(Function &Fn) override; @@ -56,8 +48,6 @@ namespace { return false; } - void getAnalysisUsage(AnalysisUsage &AU) const override { } - const char *getPassName() const override { return "Exception handling preparation"; } @@ -99,11 +89,11 @@ Value *DwarfEHPrepare::GetExceptionObject(ResumeInst *RI) { RI->eraseFromParent(); if (EraseIVIs) { - if (SelIVI->getNumUses() == 0) + if (SelIVI->use_empty()) SelIVI->eraseFromParent(); - if (ExcIVI->getNumUses() == 0) + if (ExcIVI->use_empty()) ExcIVI->eraseFromParent(); - if (SelLoad && SelLoad->getNumUses() == 0) + if (SelLoad && SelLoad->use_empty()) SelLoad->eraseFromParent(); } @@ -114,9 +104,8 @@ Value *DwarfEHPrepare::GetExceptionObject(ResumeInst *RI) { /// into calls to the appropriate _Unwind_Resume function. bool DwarfEHPrepare::InsertUnwindResumeCalls(Function &Fn) { SmallVector Resumes; - for (Function::iterator I = Fn.begin(), E = Fn.end(); I != E; ++I) { - TerminatorInst *TI = I->getTerminator(); - if (ResumeInst *RI = dyn_cast(TI)) + for (BasicBlock &BB : Fn) { + if (auto *RI = dyn_cast(BB.getTerminator())) Resumes.push_back(RI); } @@ -125,8 +114,8 @@ bool DwarfEHPrepare::InsertUnwindResumeCalls(Function &Fn) { // Find the rewind function if we didn't already. const TargetLowering *TLI = TM->getSubtargetImpl(Fn)->getTargetLowering(); + LLVMContext &Ctx = Fn.getContext(); if (!RewindFunction) { - LLVMContext &Ctx = Resumes[0]->getContext(); FunctionType *FTy = FunctionType::get(Type::getVoidTy(Ctx), Type::getInt8PtrTy(Ctx), false); const char *RewindName = TLI->getLibcallName(RTLIB::UNWIND_RESUME); @@ -134,7 +123,6 @@ bool DwarfEHPrepare::InsertUnwindResumeCalls(Function &Fn) { } // Create the basic block where the _Unwind_Resume call will live. - LLVMContext &Ctx = Fn.getContext(); unsigned ResumesSize = Resumes.size(); if (ResumesSize == 1) { @@ -159,9 +147,7 @@ bool DwarfEHPrepare::InsertUnwindResumeCalls(Function &Fn) { // Extract the exception object from the ResumeInst and add it to the PHI node // that feeds the _Unwind_Resume call. - for (SmallVectorImpl::iterator - I = Resumes.begin(), E = Resumes.end(); I != E; ++I) { - ResumeInst *RI = *I; + for (ResumeInst *RI : Resumes) { BasicBlock *Parent = RI->getParent(); BranchInst::Create(UnwindBB, Parent); diff --git a/llvm/lib/CodeGen/WinEHPrepare.cpp b/llvm/lib/CodeGen/WinEHPrepare.cpp index b5f8463..48b3585 100644 --- a/llvm/lib/CodeGen/WinEHPrepare.cpp +++ b/llvm/lib/CodeGen/WinEHPrepare.cpp @@ -17,10 +17,9 @@ #include "llvm/CodeGen/Passes.h" #include "llvm/Analysis/LibCallSemantics.h" #include "llvm/IR/Function.h" +#include "llvm/IR/IRBuilder.h" #include "llvm/IR/Instructions.h" -#include "llvm/IR/Intrinsics.h" #include "llvm/Pass.h" -#include "llvm/Target/TargetLowering.h" using namespace llvm; #define DEBUG_TYPE "winehprepare" @@ -32,9 +31,7 @@ class WinEHPrepare : public FunctionPass { public: static char ID; // Pass identification, replacement for typeid. WinEHPrepare(const TargetMachine *TM = nullptr) - : FunctionPass(ID), DwarfPrepare(createDwarfEHPass(TM)) { - initializeDominatorTreeWrapperPassPass(*PassRegistry::getPassRegistry()); - } + : FunctionPass(ID), DwarfPrepare(createDwarfEHPass(TM)) {} bool runOnFunction(Function &Fn) override;