[llvm-commits] CVS: llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
Chris Lattner
lattner at cs.uiuc.edu
Wed Nov 30 11:38:34 PST 2005
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);
More information about the llvm-commits
mailing list