summaryrefslogtreecommitdiff
path: root/src/passes/RemoveUnusedBrs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/RemoveUnusedBrs.cpp')
-rw-r--r--src/passes/RemoveUnusedBrs.cpp33
1 files changed, 14 insertions, 19 deletions
diff --git a/src/passes/RemoveUnusedBrs.cpp b/src/passes/RemoveUnusedBrs.cpp
index 5d1b70ad5..9d4575bb7 100644
--- a/src/passes/RemoveUnusedBrs.cpp
+++ b/src/passes/RemoveUnusedBrs.cpp
@@ -235,10 +235,8 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs>> {
}
curr->targets.resize(curr->targets.size() - removable);
Builder builder(*getModule());
- curr->condition =
- builder.makeBinary(SubInt32,
- curr->condition,
- builder.makeConst(Literal(int32_t(removable))));
+ curr->condition = builder.makeBinary(
+ SubInt32, curr->condition, builder.makeConst(int32_t(removable)));
}
// when there isn't a value, we can do some trivial optimizations without
// worrying about the value being executed before the condition
@@ -287,17 +285,16 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs>> {
Builder builder(*getModule());
auto temp = builder.addVar(getFunction(), Type::i32);
Expression* z;
- replaceCurrent(
- z = builder.makeIf(
- builder.makeLocalTee(temp, curr->condition, Type::i32),
- builder.makeIf(
- builder.makeBinary(
- EqInt32,
- builder.makeLocalGet(temp, Type::i32),
- builder.makeConst(Literal(int32_t(curr->targets.size() - 1)))),
- builder.makeBreak(curr->targets.back()),
- builder.makeBreak(curr->default_)),
- builder.makeBreak(curr->targets.front())));
+ replaceCurrent(z = builder.makeIf(
+ builder.makeLocalTee(temp, curr->condition, Type::i32),
+ builder.makeIf(builder.makeBinary(
+ EqInt32,
+ builder.makeLocalGet(temp, Type::i32),
+ builder.makeConst(
+ int32_t(curr->targets.size() - 1))),
+ builder.makeBreak(curr->targets.back()),
+ builder.makeBreak(curr->default_)),
+ builder.makeBreak(curr->targets.front())));
}
}
}
@@ -1262,10 +1259,8 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs>> {
Builder builder(*getModule());
// the table and condition are offset by the min
if (min != 0) {
- conditionValue =
- builder.makeBinary(SubInt32,
- conditionValue,
- builder.makeConst(Literal(int32_t(min))));
+ conditionValue = builder.makeBinary(
+ SubInt32, conditionValue, builder.makeConst(int32_t(min)));
}
list[end - 1] = builder.makeBlock(
defaultName,