summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2018-12-17 17:04:51 -0800
committerGitHub <noreply@github.com>2018-12-17 17:04:51 -0800
commitdfdae1aece431cc98defaf04e08108fea0f07a34 (patch)
treed1562a18031b400648ccfb66f90a05f9d9198ea6 /src
parentbf6972c3816dc81b167317a94487d5b9d2c88db0 (diff)
downloadbinaryen-dfdae1aece431cc98defaf04e08108fea0f07a34.tar.gz
binaryen-dfdae1aece431cc98defaf04e08108fea0f07a34.tar.bz2
binaryen-dfdae1aece431cc98defaf04e08108fea0f07a34.zip
Partial legalization (#1824) review followup (#1832)
Diffstat (limited to 'src')
-rw-r--r--src/abi/js.h4
-rw-r--r--src/asm2wasm.h3
-rw-r--r--src/passes/LegalizeJSInterface.cpp4
-rw-r--r--src/tools/wasm-emscripten-finalize.cpp3
4 files changed, 8 insertions, 6 deletions
diff --git a/src/abi/js.h b/src/abi/js.h
index 539b465fb..bcc7dbb6e 100644
--- a/src/abi/js.h
+++ b/src/abi/js.h
@@ -23,13 +23,13 @@ namespace wasm {
namespace ABI {
-enum LegalizationLevel {
+enum class LegalizationLevel {
Full = 0,
Minimal = 1
};
inline std::string getLegalizationPass(LegalizationLevel level) {
- if (level == Full) {
+ if (level == LegalizationLevel::Full) {
return "legalize-js-interface";
} else {
return "legalize-js-interface-minimally";
diff --git a/src/asm2wasm.h b/src/asm2wasm.h
index 522d53a2b..edd54f06d 100644
--- a/src/asm2wasm.h
+++ b/src/asm2wasm.h
@@ -1454,7 +1454,8 @@ void Asm2WasmBuilder::processAsm(Ref ast) {
// so that the output of the first pass is valid
passRunner.add<FinalizeCalls>(this);
passRunner.add(ABI::getLegalizationPass(
- legalizeJavaScriptFFI ? ABI::Full : ABI::Minimal
+ legalizeJavaScriptFFI ? ABI::LegalizationLevel::Full
+ : ABI::LegalizationLevel::Minimal
));
if (runOptimizationPasses) {
// autodrop can add some garbage
diff --git a/src/passes/LegalizeJSInterface.cpp b/src/passes/LegalizeJSInterface.cpp
index 8a8bb3e27..9d223390e 100644
--- a/src/passes/LegalizeJSInterface.cpp
+++ b/src/passes/LegalizeJSInterface.cpp
@@ -57,7 +57,7 @@ struct LegalizeJSInterface : public Pass {
if (ex->kind == ExternalKind::Function) {
// if it's an import, ignore it
auto* func = module->getFunction(ex->value);
- if (isIllegal(func) && isRelevant(ex.get(), func)) {
+ if (isIllegal(func) && shouldBeLegalized(ex.get(), func)) {
auto legalName = makeLegalStub(func, module);
ex->value = legalName;
}
@@ -131,7 +131,7 @@ private:
return false;
}
- bool isRelevant(Export* ex, Function* func) {
+ bool shouldBeLegalized(Export* ex, Function* func) {
if (full) return true;
// We are doing minimal legalization - just what JS needs.
return ex->name.startsWith("dynCall_");
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp
index e9e623e3c..3d74138cc 100644
--- a/src/tools/wasm-emscripten-finalize.cpp
+++ b/src/tools/wasm-emscripten-finalize.cpp
@@ -163,7 +163,8 @@ int main(int argc, const char *argv[]) {
passRunner.setDebug(options.debug);
passRunner.setDebugInfo(debugInfo);
passRunner.add(ABI::getLegalizationPass(
- legalizeJavaScriptFFI ? ABI::Full : ABI::Minimal
+ legalizeJavaScriptFFI ? ABI::LegalizationLevel::Full
+ : ABI::LegalizationLevel::Minimal
));
passRunner.run();