summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/passes/DeadCodeElimination.cpp2
-rw-r--r--test/passes/dce.txt4
-rw-r--r--test/passes/dce.wast6
3 files changed, 12 insertions, 0 deletions
diff --git a/src/passes/DeadCodeElimination.cpp b/src/passes/DeadCodeElimination.cpp
index c2799f13a..6cb7faf29 100644
--- a/src/passes/DeadCodeElimination.cpp
+++ b/src/passes/DeadCodeElimination.cpp
@@ -193,6 +193,8 @@ struct DeadCodeElimination : public WalkerPass<PostWalker<DeadCodeElimination, V
case Expression::Id::CallIndirectId: DELEGATE(CallIndirect);
case Expression::Id::GetLocalId: DELEGATE(GetLocal);
case Expression::Id::SetLocalId: DELEGATE(SetLocal);
+ case Expression::Id::GetGlobalId: DELEGATE(GetGlobal);
+ case Expression::Id::SetGlobalId: DELEGATE(SetGlobal);
case Expression::Id::LoadId: DELEGATE(Load);
case Expression::Id::StoreId: DELEGATE(Store);
case Expression::Id::ConstId: DELEGATE(Const);
diff --git a/test/passes/dce.txt b/test/passes/dce.txt
index edcaaa749..feb0715b7 100644
--- a/test/passes/dce.txt
+++ b/test/passes/dce.txt
@@ -6,6 +6,7 @@
(table 1 1 anyfunc)
(elem (i32.const 0) $call-me)
(memory $0 10)
+ (global $x (mut i32) (i32.const 0))
(func $call-me (type $ii) (param $0 i32) (param $1 i32)
(nop)
)
@@ -328,4 +329,7 @@
)
(unreachable)
)
+ (func $global (type $1)
+ (unreachable)
+ )
)
diff --git a/test/passes/dce.wast b/test/passes/dce.wast
index fe8cb73f9..ad1d1d3c0 100644
--- a/test/passes/dce.wast
+++ b/test/passes/dce.wast
@@ -4,6 +4,7 @@
(type $1 (func))
(table 1 1 anyfunc)
(elem (i32.const 0) $call-me)
+ (global $x (mut i32) (i32.const 0))
(func $call-me (type $ii) (param $0 i32) (param $1 i32)
(nop)
)
@@ -429,4 +430,9 @@
(i32.const 0)
)
)
+ (func $global
+ (unreachable)
+ (drop (get_global $x))
+ (set_global $x (i32.const 1))
+ )
)