Skip to content

Commit dfdae1a

Browse files
authored
Partial legalization (#1824) review followup (#1832)
1 parent bf6972c commit dfdae1a

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

src/abi/js.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ namespace wasm {
2323

2424
namespace ABI {
2525

26-
enum LegalizationLevel {
26+
enum class LegalizationLevel {
2727
Full = 0,
2828
Minimal = 1
2929
};
3030

3131
inline std::string getLegalizationPass(LegalizationLevel level) {
32-
if (level == Full) {
32+
if (level == LegalizationLevel::Full) {
3333
return "legalize-js-interface";
3434
} else {
3535
return "legalize-js-interface-minimally";

src/asm2wasm.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1454,7 +1454,8 @@ void Asm2WasmBuilder::processAsm(Ref ast) {
14541454
// so that the output of the first pass is valid
14551455
passRunner.add<FinalizeCalls>(this);
14561456
passRunner.add(ABI::getLegalizationPass(
1457-
legalizeJavaScriptFFI ? ABI::Full : ABI::Minimal
1457+
legalizeJavaScriptFFI ? ABI::LegalizationLevel::Full
1458+
: ABI::LegalizationLevel::Minimal
14581459
));
14591460
if (runOptimizationPasses) {
14601461
// autodrop can add some garbage

src/passes/LegalizeJSInterface.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ struct LegalizeJSInterface : public Pass {
5757
if (ex->kind == ExternalKind::Function) {
5858
// if it's an import, ignore it
5959
auto* func = module->getFunction(ex->value);
60-
if (isIllegal(func) && isRelevant(ex.get(), func)) {
60+
if (isIllegal(func) && shouldBeLegalized(ex.get(), func)) {
6161
auto legalName = makeLegalStub(func, module);
6262
ex->value = legalName;
6363
}
@@ -131,7 +131,7 @@ struct LegalizeJSInterface : public Pass {
131131
return false;
132132
}
133133

134-
bool isRelevant(Export* ex, Function* func) {
134+
bool shouldBeLegalized(Export* ex, Function* func) {
135135
if (full) return true;
136136
// We are doing minimal legalization - just what JS needs.
137137
return ex->name.startsWith("dynCall_");

src/tools/wasm-emscripten-finalize.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,8 @@ int main(int argc, const char *argv[]) {
163163
passRunner.setDebug(options.debug);
164164
passRunner.setDebugInfo(debugInfo);
165165
passRunner.add(ABI::getLegalizationPass(
166-
legalizeJavaScriptFFI ? ABI::Full : ABI::Minimal
166+
legalizeJavaScriptFFI ? ABI::LegalizationLevel::Full
167+
: ABI::LegalizationLevel::Minimal
167168
));
168169
passRunner.run();
169170

0 commit comments

Comments
 (0)