Fix eliminating stores to pointer arguments.
If a store address has no definition, it must be a pointer argument.
Unlike stores to alloca's, these are not dead.
Change-Id: I66e50b14ffea1cfc61fc756b5545ab8ae28b4bf8
Reviewed-on: https://swiftshader-review.googlesource.com/8573
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Reactor/Optimizer.cpp b/src/Reactor/Optimizer.cpp
index 75b225e..fa12a92 100644
--- a/src/Reactor/Optimizer.cpp
+++ b/src/Reactor/Optimizer.cpp
@@ -454,7 +454,7 @@
{
Ice::Inst *def = definition[address];
- if(!def || llvm::isa<Ice::InstAlloca>(def))
+ if(def && llvm::isa<Ice::InstAlloca>(def))
{
return uses[address].size() == 1; // Dead if this store is the only use
}