implement PR8576, deleting dead stores with intervening may-alias stores.

llvm-svn: 119927
This commit is contained in:
Chris Lattner
2010-11-21 07:34:32 +00:00
parent 6e22221b37
commit e48c31ce33
4 changed files with 42 additions and 6 deletions

View File

@@ -409,9 +409,9 @@ MemDepResult MemoryDependenceAnalysis::getDependency(Instruction *QueryInst) {
if (MemLoc.Ptr) {
// If we can do a pointer scan, make it happen.
bool isLoad = !(MR & AliasAnalysis::Mod);
if (IntrinsicInst *II = dyn_cast<MemoryUseIntrinsic>(QueryInst)) {
if (IntrinsicInst *II = dyn_cast<MemoryUseIntrinsic>(QueryInst))
isLoad |= II->getIntrinsicID() == Intrinsic::lifetime_end;
}
LocalCache = getPointerDependencyFrom(MemLoc, isLoad, ScanPos,
QueryParent);
} else if (isa<CallInst>(QueryInst) || isa<InvokeInst>(QueryInst)) {