summaryrefslogtreecommitdiff
path: root/src/passes/RedundantSetElimination.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/RedundantSetElimination.cpp')
-rw-r--r--src/passes/RedundantSetElimination.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/passes/RedundantSetElimination.cpp b/src/passes/RedundantSetElimination.cpp
index ab052853c..a891653df 100644
--- a/src/passes/RedundantSetElimination.cpp
+++ b/src/passes/RedundantSetElimination.cpp
@@ -35,6 +35,7 @@
#include <cfg/cfg-traversal.h>
#include <ir/literal-utils.h>
+#include <ir/properties.h>
#include <ir/utils.h>
#include <pass.h>
#include <support/unique_deferring_queue.h>
@@ -159,9 +160,9 @@ struct RedundantSetElimination
}
Index getValue(Expression* value, LocalValues& currValues) {
- if (auto* c = value->dynCast<Const>()) {
+ if (Properties::isConstantExpression(value)) {
// a constant
- return getLiteralValue({c->value});
+ return getLiteralValue(Properties::getLiterals(value));
} else if (auto* get = value->dynCast<LocalGet>()) {
// a copy of whatever that was
return currValues[get->index];