From: Chris Lattner Date: Tue, 30 Nov 2010 05:30:45 +0000 (+0000) Subject: rename a function and reduce some indentation, no functionality change. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=bbdc3703a37c2be32ed23d4bb1b1e2bb14780643;p=oota-llvm.git rename a function and reduce some indentation, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120391 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/DeadStoreElimination.cpp b/lib/Transforms/Scalar/DeadStoreElimination.cpp index 0d77ceee42b..46f54cf7bb9 100644 --- a/lib/Transforms/Scalar/DeadStoreElimination.cpp +++ b/lib/Transforms/Scalar/DeadStoreElimination.cpp @@ -111,9 +111,9 @@ static bool hasMemoryWrite(Instruction *I) { return false; } -/// isElidable - If the value of this instruction and the memory it writes to is -/// unused, may we delete this instrtction? -static bool isElidable(Instruction *I) { +/// isRemovable - If the value of this instruction and the memory it writes to +/// is unused, may we delete this instruction? +static bool isRemovable(Instruction *I) { assert(hasMemoryWrite(I)); if (IntrinsicInst *II = dyn_cast(I)) return II->getIntrinsicID() != Intrinsic::lifetime_end; @@ -192,6 +192,7 @@ static bool isStoreAtLeastAsWideAs(Instruction *I1, Instruction *I2, bool DSE::runOnBasicBlock(BasicBlock &BB) { MemoryDependenceAnalysis &MD = getAnalysis(); + AliasAnalysis &AA = getAnalysis(); TD = getAnalysisIfAvailable(); bool MadeChange = false; @@ -238,7 +239,7 @@ bool DSE::runOnBasicBlock(BasicBlock &BB) { } } } - + if (!InstDep.isDef()) { // If this is a may-aliased store that is clobbering the store value, we // can keep searching past it for another must-aliased pointer that stores @@ -249,7 +250,6 @@ bool DSE::runOnBasicBlock(BasicBlock &BB) { // we can remove the first store to P even though we don't know if P and Q // alias. if (StoreInst *SI = dyn_cast(Inst)) { - AliasAnalysis &AA = getAnalysis(); AliasAnalysis::Location Loc = AA.getLocation(SI); while (InstDep.isClobber() && InstDep.getInst() != &BB.front()) { // Can't look past this instruction if it might read 'Loc'. @@ -266,19 +266,21 @@ bool DSE::runOnBasicBlock(BasicBlock &BB) { // long as this store is at least as big as it. if (InstDep.isDef() && hasMemoryWrite(InstDep.getInst())) { Instruction *DepStore = InstDep.getInst(); - if (isStoreAtLeastAsWideAs(Inst, DepStore, TD) && isElidable(DepStore)) { - // Delete the store and now-dead instructions that feed it. - DeleteDeadInstruction(DepStore); - ++NumFastStores; - MadeChange = true; - - // DeleteDeadInstruction can delete the current instruction in loop - // cases, reset BBI. - BBI = Inst; - if (BBI != BB.begin()) - --BBI; + if (!isRemovable(DepStore) || + !isStoreAtLeastAsWideAs(Inst, DepStore, TD)) continue; - } + + // Delete the store and now-dead instructions that feed it. + DeleteDeadInstruction(DepStore); + ++NumFastStores; + MadeChange = true; + + // DeleteDeadInstruction can delete the current instruction in loop + // cases, reset BBI. + BBI = Inst; + if (BBI != BB.begin()) + --BBI; + continue; } } @@ -301,7 +303,7 @@ bool DSE::HandleFree(CallInst *F) { if (Dep.isNonLocal()) return false; Instruction *Dependency = Dep.getInst(); - if (!hasMemoryWrite(Dependency) || !isElidable(Dependency)) + if (!hasMemoryWrite(Dependency) || !isRemovable(Dependency)) return false; Value *DepPointer = getPointerOperand(Dependency)->getUnderlyingObject(); @@ -359,7 +361,7 @@ bool DSE::handleEndBlock(BasicBlock &BB) { // If we find a store whose pointer is dead. if (hasMemoryWrite(BBI)) { - if (isElidable(BBI)) { + if (isRemovable(BBI)) { // See through pointer-to-pointer bitcasts Value *pointerOperand = getPointerOperand(BBI)->getUnderlyingObject();