X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=lib%2FTransforms%2FUtils%2FSimplifyInstructions.cpp;h=bbd65f17528baaeec3ec2497995f47a72ad9333c;hb=36b699f2b139a30a2dfa4448223d6985b55daa8a;hp=56bc9dd30f0688e3f072c93d3100feb6f3c63c05;hpb=7f2eff792a2e18758a25956abdac2440ee18dd7f;p=oota-llvm.git diff --git a/lib/Transforms/Utils/SimplifyInstructions.cpp b/lib/Transforms/Utils/SimplifyInstructions.cpp index 56bc9dd30f0..bbd65f17528 100644 --- a/lib/Transforms/Utils/SimplifyInstructions.cpp +++ b/lib/Transforms/Utils/SimplifyInstructions.cpp @@ -38,17 +38,18 @@ namespace { initializeInstSimplifierPass(*PassRegistry::getPassRegistry()); } - void getAnalysisUsage(AnalysisUsage &AU) const { + void getAnalysisUsage(AnalysisUsage &AU) const override { AU.setPreservesCFG(); AU.addRequired(); } /// runOnFunction - Remove instructions that simplify. - bool runOnFunction(Function &F) { + bool runOnFunction(Function &F) override { const DominatorTreeWrapperPass *DTWP = getAnalysisIfAvailable(); const DominatorTree *DT = DTWP ? &DTWP->getDomTree() : 0; - const DataLayout *TD = getAnalysisIfAvailable(); + DataLayoutPass *DLP = getAnalysisIfAvailable(); + const DataLayout *DL = DLP ? &DLP->getDataLayout() : 0; const TargetLibraryInfo *TLI = &getAnalysis(); SmallPtrSet S1, S2, *ToSimplify = &S1, *Next = &S2; bool Changed = false; @@ -65,11 +66,10 @@ namespace { continue; // Don't waste time simplifying unused instructions. if (!I->use_empty()) - if (Value *V = SimplifyInstruction(I, TD, TLI, DT)) { + if (Value *V = SimplifyInstruction(I, DL, TLI, DT)) { // Mark all uses for resimplification next time round the loop. - for (Value::use_iterator UI = I->use_begin(), UE = I->use_end(); - UI != UE; ++UI) - Next->insert(cast(*UI)); + for (User *U : I->users()) + Next->insert(cast(U)); I->replaceAllUsesWith(V); ++NumSimplified; Changed = true;