diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/passes/Strip.cpp | 5 | ||||
-rw-r--r-- | src/passes/pass.cpp | 1 | ||||
-rw-r--r-- | src/passes/passes.h | 1 | ||||
-rw-r--r-- | src/tools/wasm-emscripten-finalize.cpp | 1 | ||||
-rw-r--r-- | src/wasm-binary.h | 1 | ||||
-rw-r--r-- | src/wasm/wasm.cpp | 1 |
6 files changed, 10 insertions, 0 deletions
diff --git a/src/passes/Strip.cpp b/src/passes/Strip.cpp index edc171ab3..40e5a9e9d 100644 --- a/src/passes/Strip.cpp +++ b/src/passes/Strip.cpp @@ -75,4 +75,9 @@ Pass *createStripProducersPass() { }); } +Pass *createStripTargetFeaturesPass() { + return new Strip([&](const UserSection& curr) { + return curr.name == BinaryConsts::UserSections::TargetFeatures; + }); +} } // namespace wasm diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp index 3712bf19e..5d8b8d2c8 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -138,6 +138,7 @@ void PassRegistry::registerPasses() { registerPass("strip", "deprecated; same as strip-debug", createStripDebugPass); registerPass("strip-debug", "strip debug info (including the names section)", createStripDebugPass); registerPass("strip-producers", "strip the wasm producers section", createStripProducersPass); + registerPass("strip-target-features", "strip the wasm target features section", createStripTargetFeaturesPass); registerPass("trap-mode-clamp", "replace trapping operations with clamping semantics", createTrapModeClamp); registerPass("trap-mode-js", "replace trapping operations with js semantics", createTrapModeJS); registerPass("untee", "removes local.tees, replacing them with sets and gets", createUnteePass); diff --git a/src/passes/passes.h b/src/passes/passes.h index ab11721fb..ac7126bd4 100644 --- a/src/passes/passes.h +++ b/src/passes/passes.h @@ -88,6 +88,7 @@ Pass* createSimplifyLocalsNoStructurePass(); Pass* createSimplifyLocalsNoTeeNoStructurePass(); Pass* createStripDebugPass(); Pass* createStripProducersPass(); +Pass* createStripTargetFeaturesPass(); Pass* createSouperifyPass(); Pass* createSouperifySingleUsePass(); Pass* createSpillPointersPass(); diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp index 6e898b3f0..2aa5de46f 100644 --- a/src/tools/wasm-emscripten-finalize.cpp +++ b/src/tools/wasm-emscripten-finalize.cpp @@ -204,6 +204,7 @@ int main(int argc, const char *argv[]) { legalizeJavaScriptFFI ? ABI::LegalizationLevel::Full : ABI::LegalizationLevel::Minimal )); + passRunner.add("strip-target-features"); passRunner.run(); } diff --git a/src/wasm-binary.h b/src/wasm-binary.h index a875db791..32166af00 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -345,6 +345,7 @@ extern const char* SourceMapUrl; extern const char* Dylink; extern const char* Linking; extern const char* Producers; +extern const char* TargetFeatures; enum Subsection { NameFunction = 1, diff --git a/src/wasm/wasm.cpp b/src/wasm/wasm.cpp index c12481760..c99bb0994 100644 --- a/src/wasm/wasm.cpp +++ b/src/wasm/wasm.cpp @@ -32,6 +32,7 @@ const char* SourceMapUrl = "sourceMappingURL"; const char* Dylink = "dylink"; const char* Linking = "linking"; const char* Producers = "producers"; +const char* TargetFeatures = "target_features"; } } |