Changes in directory llvm/lib/Transforms/Scalar:
DeadStoreElimination.cpp updated: 1.12 -> 1.13 --- Log message: Fix a bug where we didn't realize that vaarg reads memory. This fixes Transforms/DeadStoreElimination/2005-11-30-vaarg.ll --- Diffs of the changes: (+7 -0) DeadStoreElimination.cpp | 7 +++++++ 1 files changed, 7 insertions(+) Index: llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp diff -u llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:1.12 llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:1.13 --- llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:1.12 Thu Apr 21 18:45:12 2005 +++ llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp Wed Nov 30 13:38:22 2005 @@ -96,6 +96,13 @@ } 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); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits