Skip to content

Commit fd15ea4

Browse files
authored
Remove unused stack-pointer and emscripten-sbrk-ptr pass args from PostEmscripten (WebAssembly#3161)
These were removed completely from the emscripten side in #12057
1 parent b867a54 commit fd15ea4

7 files changed

Lines changed: 0 additions & 168 deletions

src/passes/PostEmscripten.cpp

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -78,58 +78,6 @@ struct OptimizeCalls : public WalkerPass<PostWalker<OptimizeCalls>> {
7878

7979
struct PostEmscripten : public Pass {
8080
void run(PassRunner* runner, Module* module) override {
81-
// Apply the stack pointer, if it was provided. This is needed here
82-
// because the emscripten JS compiler can add static data allocations that
83-
// come before the stack.
84-
auto stackPtrStr =
85-
runner->options.getArgumentOrDefault("stack-pointer", "");
86-
if (stackPtrStr != "") {
87-
Global* stackPointer = getStackPointerGlobal(*module);
88-
BYN_TRACE("stack_pointer: " << stackPtrStr << "\n");
89-
if (stackPointer && !stackPointer->imported()) {
90-
auto stackPtr = std::stoi(stackPtrStr);
91-
auto oldValue = stackPointer->init->cast<Const>()->value;
92-
BYN_TRACE("updating __stack_pointer: " << oldValue.geti32() << " -> "
93-
<< stackPtr << "\n");
94-
stackPointer->init = Builder(*module).makeConst(int32_t(stackPtr));
95-
}
96-
}
97-
98-
// Apply the sbrk ptr, if it was provided.
99-
auto sbrkPtrStr =
100-
runner->options.getArgumentOrDefault("emscripten-sbrk-ptr", "");
101-
if (sbrkPtrStr != "") {
102-
auto sbrkPtr = std::stoi(sbrkPtrStr);
103-
ImportInfo imports(*module);
104-
auto* func = imports.getImportedFunction(ENV, "emscripten_get_sbrk_ptr");
105-
if (func) {
106-
Builder builder(*module);
107-
func->body = builder.makeConst(int32_t(sbrkPtr));
108-
func->module = func->base = Name();
109-
}
110-
// Apply the sbrk ptr value, if it was provided. This lets emscripten set
111-
// up sbrk entirely in wasm, without depending on the JS side to init
112-
// anything; this is necessary for standalone wasm mode, in which we do
113-
// not have any JS. Otherwise, the JS would set this value during
114-
// startup.
115-
auto sbrkValStr =
116-
runner->options.getArgumentOrDefault("emscripten-sbrk-val", "");
117-
if (sbrkValStr != "") {
118-
uint32_t sbrkVal = std::stoi(sbrkValStr);
119-
auto end = sbrkPtr + sizeof(sbrkVal);
120-
// Flatten memory to make it simple to write to. Later passes can
121-
// re-optimize it.
122-
MemoryUtils::ensureExists(module->memory);
123-
if (!MemoryUtils::flatten(module->memory, end, module)) {
124-
Fatal() << "cannot apply sbrk-val since memory is not flattenable\n";
125-
}
126-
auto& segment = module->memory.segments[0];
127-
assert(segment.offset->cast<Const>()->value.geti32() == 0);
128-
assert(end <= segment.data.size());
129-
memcpy(segment.data.data() + sbrkPtr, &sbrkVal, sizeof(sbrkVal));
130-
}
131-
}
132-
13381
// Optimize imports
13482
optimizeImports(runner, module);
13583

test/passes/post-emscripten_pass-arg=emscripten-sbrk-ptr@16_pass-arg=emscripten-sbrk-val@42.txt

Lines changed: 0 additions & 60 deletions
This file was deleted.

test/passes/post-emscripten_pass-arg=emscripten-sbrk-ptr@16_pass-arg=emscripten-sbrk-val@42.wast

Lines changed: 0 additions & 35 deletions
This file was deleted.

test/passes/post-emscripten_pass-arg=emscripten-sbrk-ptr@4008.txt

Lines changed: 0 additions & 8 deletions
This file was deleted.

test/passes/post-emscripten_pass-arg=emscripten-sbrk-ptr@4008.wast

Lines changed: 0 additions & 5 deletions
This file was deleted.

test/passes/post-emscripten_pass-arg=stack-pointer@1234.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

test/passes/post-emscripten_pass-arg=stack-pointer@1234.wast

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)