summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/passes/LegalizeJSInterface.cpp5
-rw-r--r--test/lld/duplicate_imports.wat.out3
-rw-r--r--test/passes/legalize-js-interface-minimally.txt3
-rw-r--r--test/passes/legalize-js-interface_all-features.txt5
4 files changed, 8 insertions, 8 deletions
diff --git a/src/passes/LegalizeJSInterface.cpp b/src/passes/LegalizeJSInterface.cpp
index e840e375b..10e751701 100644
--- a/src/passes/LegalizeJSInterface.cpp
+++ b/src/passes/LegalizeJSInterface.cpp
@@ -144,6 +144,11 @@ struct LegalizeJSInterface : public Pass {
Fixer fixer(&illegalImportsToLegal);
fixer.run(runner, module);
fixer.walkModuleCode(module);
+
+ // Finally we can remove all the now-unused illegal imports
+ for (const auto& pair : illegalImportsToLegal) {
+ module->removeFunction(pair.first);
+ }
}
}
diff --git a/test/lld/duplicate_imports.wat.out b/test/lld/duplicate_imports.wat.out
index 221592373..3160d1dc2 100644
--- a/test/lld/duplicate_imports.wat.out
+++ b/test/lld/duplicate_imports.wat.out
@@ -1,15 +1,14 @@
(module
- (type $i64_=>_i32 (func (param i64) (result i32)))
(type $i32_f32_f64_=>_f32 (func (param i32 f32 f64) (result f32)))
(type $i32_f64_f64_=>_f32 (func (param i32 f64 f64) (result f32)))
(type $2 (func))
(type $1 (func (result i32)))
(type $0 (func (param i32) (result i32)))
+ (type $i64_=>_i32 (func (param i64) (result i32)))
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
(type $f32_f64_=>_f32 (func (param f32 f64) (result f32)))
(type $f64_f64_=>_f32 (func (param f64 f64) (result f32)))
(import "env" "puts" (func $puts1 (param i32) (result i32)))
- (import "env" "puts" (func $puts2 (param i64) (result i32)))
(import "env" "invoke_ffd" (func $invoke_ffd (param i32 f32 f64) (result f32)))
(import "env" "invoke_ffd" (func $invoke_ffd2 (param i32 f64 f64) (result f32)))
(import "env" "puts" (func $legalimport$puts2 (param i32 i32) (result i32)))
diff --git a/test/passes/legalize-js-interface-minimally.txt b/test/passes/legalize-js-interface-minimally.txt
index 18fb60c1f..f39a2ce84 100644
--- a/test/passes/legalize-js-interface-minimally.txt
+++ b/test/passes/legalize-js-interface-minimally.txt
@@ -1,11 +1,10 @@
(module
(type $none_=>_i64 (func (result i64)))
- (type $i64_=>_none (func (param i64)))
(type $i32_=>_none (func (param i32)))
+ (type $i64_=>_none (func (param i64)))
(type $i32_i32_=>_none (func (param i32 i32)))
(type $none_=>_i32 (func (result i32)))
(import "env" "imported" (func $imported (result i64)))
- (import "env" "invoke_vj" (func $invoke_vj (param i64)))
(import "env" "setTempRet0" (func $setTempRet0 (param i32)))
(import "env" "invoke_vj" (func $legalimport$invoke_vj (param i32 i32)))
(export "func" (func $func))
diff --git a/test/passes/legalize-js-interface_all-features.txt b/test/passes/legalize-js-interface_all-features.txt
index 05cc43e9b..b1c57b0b8 100644
--- a/test/passes/legalize-js-interface_all-features.txt
+++ b/test/passes/legalize-js-interface_all-features.txt
@@ -2,12 +2,9 @@
(type $none_=>_i32 (func (result i32)))
(type $none_=>_i64 (func (result i64)))
(type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32)))
- (type $i32_i64_i64_=>_none (func (param i32 i64 i64)))
(type $none_=>_none (func))
(type $i32_=>_none (func (param i32)))
- (import "env" "imported" (func $imported (result i64)))
- (import "env" "other" (func $other (param i32 i64 i64)))
- (import "env" "ref-func-arg" (func $ref-func-arg (result i64)))
+ (type $i32_i64_i64_=>_none (func (param i32 i64 i64)))
(import "env" "setTempRet0" (func $setTempRet0 (param i32)))
(import "env" "getTempRet0" (func $getTempRet0 (result i32)))
(import "env" "imported" (func $legalimport$imported (result i32)))