From e922c0201916e0b980ab3cfe91e1413e68d55647 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Wed, 22 Jul 2009 00:24:57 +0000 Subject: Get rid of the Pass+Context magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/PredicateSimplifier.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'lib/Transforms/Scalar/PredicateSimplifier.cpp') diff --git a/lib/Transforms/Scalar/PredicateSimplifier.cpp b/lib/Transforms/Scalar/PredicateSimplifier.cpp index 9928c68..4ee19f7 100644 --- a/lib/Transforms/Scalar/PredicateSimplifier.cpp +++ b/lib/Transforms/Scalar/PredicateSimplifier.cpp @@ -1664,7 +1664,7 @@ namespace { TopBB(TopBB), TopInst(NULL), modified(modified), - Context(TopBB->getContext()) + Context(&TopBB->getContext()) { assert(Top && "VRPSolver created for unreachable basic block."); } @@ -1681,7 +1681,7 @@ namespace { TopBB(TopInst->getParent()), TopInst(TopInst), modified(modified), - Context(TopInst->getParent()->getContext()) + Context(&TopInst->getContext()) { assert(Top && "VRPSolver created for unreachable basic block."); assert(Top->getBlock() == TopInst->getParent() && "Context mismatch."); @@ -2267,6 +2267,7 @@ namespace { std::vector WorkList; + LLVMContext *Context; public: static char ID; // Pass identification, replacement for typeid PredicateSimplifier() : FunctionPass(&ID) {} @@ -2402,6 +2403,7 @@ namespace { DominatorTree *DT = &getAnalysis(); DTDFS = new DomTreeDFS(DT); TargetData *TD = &getAnalysis(); + Context = &F.getContext(); DOUT << "Entering Function: " << F.getName() << "\n"; @@ -2447,7 +2449,7 @@ namespace { return; } - LLVMContext *Context = BI.getParent()->getContext(); + LLVMContext *Context = &BI.getContext(); for (DomTreeDFS::Node::iterator I = DTNode->begin(), E = DTNode->end(); I != E; ++I) { @@ -2505,7 +2507,7 @@ namespace { void PredicateSimplifier::Forwards::visitAllocaInst(AllocaInst &AI) { VRPSolver VRP(VN, IG, UB, VR, PS->DTDFS, PS->modified, &AI); - VRP.add(AI.getParent()->getContext()->getNullValue(AI.getType()), + VRP.add(AI.getContext().getNullValue(AI.getType()), &AI, ICmpInst::ICMP_NE); VRP.solve(); } @@ -2516,7 +2518,7 @@ namespace { if (isa(Ptr)) return; VRPSolver VRP(VN, IG, UB, VR, PS->DTDFS, PS->modified, &LI); - VRP.add(LI.getParent()->getContext()->getNullValue(Ptr->getType()), + VRP.add(LI.getContext().getNullValue(Ptr->getType()), Ptr, ICmpInst::ICMP_NE); VRP.solve(); } @@ -2526,14 +2528,14 @@ namespace { if (isa(Ptr)) return; VRPSolver VRP(VN, IG, UB, VR, PS->DTDFS, PS->modified, &SI); - VRP.add(SI.getParent()->getContext()->getNullValue(Ptr->getType()), + VRP.add(SI.getContext().getNullValue(Ptr->getType()), Ptr, ICmpInst::ICMP_NE); VRP.solve(); } void PredicateSimplifier::Forwards::visitSExtInst(SExtInst &SI) { VRPSolver VRP(VN, IG, UB, VR, PS->DTDFS, PS->modified, &SI); - LLVMContext *Context = SI.getParent()->getContext(); + LLVMContext *Context = &SI.getContext(); uint32_t SrcBitWidth = cast(SI.getSrcTy())->getBitWidth(); uint32_t DstBitWidth = cast(SI.getDestTy())->getBitWidth(); APInt Min(APInt::getHighBitsSet(DstBitWidth, DstBitWidth-SrcBitWidth+1)); @@ -2545,7 +2547,7 @@ namespace { void PredicateSimplifier::Forwards::visitZExtInst(ZExtInst &ZI) { VRPSolver VRP(VN, IG, UB, VR, PS->DTDFS, PS->modified, &ZI); - LLVMContext *Context = ZI.getParent()->getContext(); + LLVMContext *Context = &ZI.getContext(); uint32_t SrcBitWidth = cast(ZI.getSrcTy())->getBitWidth(); uint32_t DstBitWidth = cast(ZI.getDestTy())->getBitWidth(); APInt Max(APInt::getLowBitsSet(DstBitWidth, SrcBitWidth)); @@ -2564,7 +2566,7 @@ namespace { case Instruction::SDiv: { Value *Divisor = BO.getOperand(1); VRPSolver VRP(VN, IG, UB, VR, PS->DTDFS, PS->modified, &BO); - VRP.add(BO.getParent()->getContext()->getNullValue(Divisor->getType()), + VRP.add(BO.getContext().getNullValue(Divisor->getType()), Divisor, ICmpInst::ICMP_NE); VRP.solve(); break; @@ -2638,7 +2640,7 @@ namespace { Pred = IC.getPredicate(); - LLVMContext *Context = IC.getParent()->getContext(); + LLVMContext *Context = &IC.getContext(); if (ConstantInt *Op1 = dyn_cast(IC.getOperand(1))) { ConstantInt *NextVal = 0; -- cgit v1.1