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:
Chris Lattner 2005-11-30 19:38:22 +00:00
parent 6299905a06
commit dc4ffef633
1 changed files with 7 additions and 0 deletions

View File

@ -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);