forked from OSchip/llvm-project
Fix a bug where we didn't realize that vaarg reads memory. This fixes
Transforms/DeadStoreElimination/2005-11-30-vaarg.ll llvm-svn: 24545
This commit is contained in:
parent
6299905a06
commit
dc4ffef633
|
@ -96,6 +96,13 @@ bool DSE::runOnBasicBlock(BasicBlock &BB) {
|
|||
}
|
||||
|
||||
if (!isa<StoreInst>(I) || cast<StoreInst>(I)->isVolatile()) {
|
||||
// If this is a vaarg instruction, it reads its operand. We don't model
|
||||
// it correctly, so just conservatively remove all entries.
|
||||
if (isa<VAArgInst>(I)) {
|
||||
KillLocs.clear();
|
||||
continue;
|
||||
}
|
||||
|
||||
// If this is a non-store instruction, it makes everything referenced no
|
||||
// longer killed. Remove anything aliased from the alias set tracker.
|
||||
KillLocs.remove(I);
|
||||
|
|
Loading…
Reference in New Issue