Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/tools/wasm-split/split-options.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ WasmSplitOptions::WasmSplitOptions()
"module into the secondary module. In instrument mode, refers to the "
"namespace from which to import the secondary memory, if any.",
WasmSplitOption,
{Mode::Split, Mode::Instrument, Mode::MultiSplit},
{Mode::Split, Mode::MultiSplit, Mode::Instrument},

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This just changed the order

Options::Arguments::One,
[&](Options* o, const std::string& argument) {
importNamespace = argument;
Expand Down
21 changes: 13 additions & 8 deletions src/tools/wasm-split/wasm-split.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,16 @@ void writePlaceholderMap(
}
}

void setCommonSplitConfigs(ModuleSplitting::Config& config,
const WasmSplitOptions& options) {
config.usePlaceholders = options.usePlaceholders;
config.minimizeNewExportNames = !options.passOptions.debugInfo;
if (options.importNamespace.size()) {
config.importNamespace = options.importNamespace;
}
// TODO Add more configs here
}

void splitModule(const WasmSplitOptions& options) {
Module wasm;
parseInput(wasm, options);
Expand Down Expand Up @@ -329,18 +339,14 @@ void splitModule(const WasmSplitOptions& options) {

// Actually perform the splitting
ModuleSplitting::Config config;
setCommonSplitConfigs(config, options);
config.secondaryFuncs.push_back(std::move(splitFuncs));
if (options.importNamespace.size()) {
config.importNamespace = options.importNamespace;
}
if (options.placeholderNamespace.size()) {
config.placeholderNamespace = options.placeholderNamespace;
}
if (options.exportPrefix.size()) {
config.newExportPrefix = options.exportPrefix;
}
config.usePlaceholders = options.usePlaceholders;
config.minimizeNewExportNames = !options.passOptions.debugInfo;
config.jspi = options.jspi;
auto splitResults = ModuleSplitting::splitFunctions(wasm, config);
auto& secondary = *splitResults.secondaries.begin();
Expand Down Expand Up @@ -398,6 +404,8 @@ void multiSplitModule(const WasmSplitOptions& options) {
std::unordered_map<Name, Name> funcModules;

ModuleSplitting::Config config;
setCommonSplitConfigs(config, options);

std::string line;
bool newSection = true;
std::vector<Name> moduleNames;
Expand Down Expand Up @@ -436,9 +444,6 @@ void multiSplitModule(const WasmSplitOptions& options) {
}
}

config.usePlaceholders = options.usePlaceholders;
config.importNamespace = options.importNamespace;
config.minimizeNewExportNames = !options.passOptions.debugInfo;
if (options.emitModuleNames && !wasm.name) {
wasm.name = Path::getBaseName(options.output);
}
Expand Down
18 changes: 9 additions & 9 deletions test/lit/wasm-split/multi-split.wast
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@

;; MOD1: (type $2 (func (result i32)))

;; MOD1: (import "" "table" (table $timport$0 3 funcref))
;; MOD1: (import "primary" "table" (table $timport$0 3 funcref))

;; MOD1: (import "" "trampoline_B" (func $trampoline_B (result i64)))
;; MOD1: (import "primary" "trampoline_B" (func $trampoline_B (result i64)))

;; MOD1: (import "" "trampoline_C" (func $trampoline_C (result f32)))
;; MOD1: (import "primary" "trampoline_C" (func $trampoline_C (result f32)))

;; MOD1: (elem $0 (i32.const 2) $A)

Expand Down Expand Up @@ -117,11 +117,11 @@

;; MOD2: (type $2 (func (result i64)))

;; MOD2: (import "" "table" (table $timport$0 3 funcref))
;; MOD2: (import "primary" "table" (table $timport$0 3 funcref))

;; MOD2: (import "" "trampoline_A" (func $trampoline_A (result i32)))
;; MOD2: (import "primary" "trampoline_A" (func $trampoline_A (result i32)))

;; MOD2: (import "" "trampoline_C" (func $trampoline_C (result f32)))
;; MOD2: (import "primary" "trampoline_C" (func $trampoline_C (result f32)))

;; MOD2: (elem $0 (i32.const 0) $B)

Expand Down Expand Up @@ -200,11 +200,11 @@

;; MOD3: (type $2 (func (result f32)))

;; MOD3: (import "" "table" (table $timport$0 3 funcref))
;; MOD3: (import "primary" "table" (table $timport$0 3 funcref))

;; MOD3: (import "" "trampoline_A" (func $trampoline_A (result i32)))
;; MOD3: (import "primary" "trampoline_A" (func $trampoline_A (result i32)))

;; MOD3: (import "" "trampoline_B" (func $trampoline_B (result i64)))
;; MOD3: (import "primary" "trampoline_B" (func $trampoline_B (result i64)))

;; MOD3: (elem $0 (i32.const 1) $C)

Expand Down
Loading