diff options
-rw-r--r-- | src/asm2wasm.h | 55 | ||||
-rw-r--r-- | src/asm_v_wasm.h | 4 | ||||
-rw-r--r-- | src/ast_utils.h | 8 | ||||
-rw-r--r-- | src/binaryen-shell.cpp | 4 | ||||
-rw-r--r-- | src/passes/NameManager.cpp | 10 | ||||
-rw-r--r-- | src/passes/Print.cpp | 24 | ||||
-rw-r--r-- | src/passes/ReorderLocals.cpp | 87 | ||||
-rw-r--r-- | src/passes/SimplifyLocals.cpp | 26 | ||||
-rw-r--r-- | src/s2wasm.h | 23 | ||||
-rw-r--r-- | src/wasm-binary.h | 72 | ||||
-rw-r--r-- | src/wasm-builder.h | 75 | ||||
-rw-r--r-- | src/wasm-interpreter.h | 29 | ||||
-rw-r--r-- | src/wasm-s-parser.h | 74 | ||||
-rw-r--r-- | src/wasm.h | 74 | ||||
-rw-r--r-- | src/wasm2asm.h | 61 | ||||
-rw-r--r-- | test/emcc_O2_hello_world.fromasm | 184 | ||||
-rw-r--r-- | test/emcc_O2_hello_world.fromasm.imprecise | 184 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm | 2376 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm.imprecise | 2376 | ||||
-rw-r--r-- | test/memorygrowth.fromasm | 192 | ||||
-rw-r--r-- | test/memorygrowth.fromasm.imprecise | 192 | ||||
-rw-r--r-- | test/unit.fromasm | 2 | ||||
-rw-r--r-- | test/unit.fromasm.imprecise | 2 |
23 files changed, 3167 insertions, 2967 deletions
diff --git a/src/asm2wasm.h b/src/asm2wasm.h index 8fcb1fb64..da97d7580 100644 --- a/src/asm2wasm.h +++ b/src/asm2wasm.h @@ -742,16 +742,18 @@ void Asm2WasmBuilder::processAsm(Ref ast) { // apply memory growth, if relevant if (memoryGrowth) { // create and export a function that just calls memory growth - auto growWasmMemory = allocator.alloc<Function>(); - growWasmMemory->name = GROW_WASM_MEMORY; - growWasmMemory->params.emplace_back(NEW_SIZE, i32); // the new size - auto get = allocator.alloc<GetLocal>(); - get->name = NEW_SIZE; - auto grow = allocator.alloc<Host>(); - grow->op = GrowMemory; - grow->operands.push_back(get); - growWasmMemory->body = grow; - wasm.addFunction(growWasmMemory); + Builder builder(wasm); + wasm.addFunction(builder.makeFunction( + GROW_WASM_MEMORY, + { { NEW_SIZE, i32 } }, + none, + {}, + builder.makeHost( + GrowMemory, + Name(), + { builder.makeGetLocal(0, i32) } + ) + )); auto export_ = allocator.alloc<Export>(); export_->name = export_->value = GROW_WASM_MEMORY; wasm.addExport(export_); @@ -777,17 +779,16 @@ void Asm2WasmBuilder::processAsm(Ref ast) { // returns x / y auto* func = wasm.getFunction(udivmoddi4); assert(!func->type.is()); - Name xl = func->params[0].name, - xh = func->params[1].name, - yl = func->params[2].name, - yh = func->params[3].name, - r = func->params[4].name; - func->vars.clear(); - Name x64("x64"), y64("y64"); - func->vars.emplace_back(x64, i64); - func->vars.emplace_back(y64, i64); + Builder::clearLocals(func); + Index xl = Builder::addParam(func, "xl", i32), + xh = Builder::addParam(func, "xh", i32), + yl = Builder::addParam(func, "yl", i32), + yh = Builder::addParam(func, "yh", i32), + r = Builder::addParam(func, "r", i32), + x64 = Builder::addVar(func, "x64", i64), + y64 = Builder::addVar(func, "y64", i64); auto* body = allocator.alloc<Block>(); - auto recreateI64 = [&](Name target, Name low, Name high) { + auto recreateI64 = [&](Index target, Index low, Index high) { return builder.makeSetLocal( target, builder.makeBinary( @@ -899,7 +900,7 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { assert(curr[0] == ASSIGN && curr[2][0] == NAME); IString name = curr[2][1]->getIString(); AsmType asmType = detectType(curr[3], nullptr, false, Math_fround); - function->params.emplace_back(name, asmToWasmType(asmType)); + Builder::addParam(function, name, asmToWasmType(asmType)); functionVariables.insert(name); asmData.addParam(name, asmType); } @@ -910,7 +911,7 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { Ref pair = curr[1][j]; IString name = pair[0]->getIString(); AsmType asmType = detectType(pair[1], nullptr, true, Math_fround); - function->vars.emplace_back(name, asmToWasmType(asmType)); + Builder::addVar(function, name, asmToWasmType(asmType)); functionVariables.insert(name); asmData.addVar(name, asmType); } @@ -921,7 +922,7 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { auto ensureI32Temp = [&]() { if (addedI32Temp) return; addedI32Temp = true; - function->vars.emplace_back(I32_TEMP, i32); + Builder::addVar(function, I32_TEMP, i32); functionVariables.insert(I32_TEMP); asmData.addVar(I32_TEMP, ASM_INT); }; @@ -946,7 +947,7 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { IString name = ast[2][1]->getIString(); if (functionVariables.has(name)) { auto ret = allocator.alloc<SetLocal>(); - ret->name = ast[2][1]->getIString(); + ret->index = function->getLocalIndex(ast[2][1]->getIString()); ret->value = process(ast[3]); ret->type = ret->value->type; return ret; @@ -1041,7 +1042,7 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { if (functionVariables.has(name)) { // var in scope auto ret = allocator.alloc<GetLocal>(); - ret->name = name; + ret->index = function->getLocalIndex(name); ret->type = asmToWasmType(asmData.getType(name)); return ret; } @@ -1248,12 +1249,12 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { // No wasm support, so use a temp local ensureI32Temp(); auto set = allocator.alloc<SetLocal>(); - set->name = I32_TEMP; + set->index = function->getLocalIndex(I32_TEMP); set->value = value; set->type = i32; auto get = [&]() { auto ret = allocator.alloc<GetLocal>(); - ret->name = I32_TEMP; + ret->index = function->getLocalIndex(I32_TEMP); ret->type = i32; return ret; }; diff --git a/src/asm_v_wasm.h b/src/asm_v_wasm.h index 6a279a2a7..440c9ec89 100644 --- a/src/asm_v_wasm.h +++ b/src/asm_v_wasm.h @@ -67,8 +67,8 @@ std::string getSig(FunctionType *type) { std::string getSig(Function *func) { std::string ret; ret += getSig(func->result); - for (auto param : func->params) { - ret += getSig(param.type); + for (auto type : func->params) { + ret += getSig(type); } return ret; } diff --git a/src/ast_utils.h b/src/ast_utils.h index f97697265..3fe4ee17a 100644 --- a/src/ast_utils.h +++ b/src/ast_utils.h @@ -45,8 +45,8 @@ struct BreakSeeker : public PostWalker<BreakSeeker> { struct EffectAnalyzer : public PostWalker<EffectAnalyzer> { bool branches = false; bool calls = false; - std::set<Name> localsRead; - std::set<Name> localsWritten; + std::set<Index> localsRead; + std::set<Index> localsWritten; bool readsMemory = false; bool writesMemory = false; @@ -98,10 +98,10 @@ struct EffectAnalyzer : public PostWalker<EffectAnalyzer> { void visitCallImport(CallImport *curr) { calls = true; } void visitCallIndirect(CallIndirect *curr) { calls = true; } void visitGetLocal(GetLocal *curr) { - localsRead.insert(curr->name); + localsRead.insert(curr->index); } void visitSetLocal(SetLocal *curr) { - localsWritten.insert(curr->name); + localsWritten.insert(curr->index); } void visitLoad(Load *curr) { readsMemory = true; } void visitStore(Store *curr) { writesMemory = true; } diff --git a/src/binaryen-shell.cpp b/src/binaryen-shell.cpp index 6e3cc8af2..82094a697 100644 --- a/src/binaryen-shell.cpp +++ b/src/binaryen-shell.cpp @@ -89,8 +89,8 @@ static void run_asserts(size_t* i, bool* checked, AllocatingModule* wasm, std::cerr << "Unknown entry " << entry << std::endl; } else { ModuleInstance::LiteralList arguments; - for (NameType param : function->params) { - arguments.push_back(Literal(param.type)); + for (WasmType param : function->params) { + arguments.push_back(Literal(param)); } try { instance->callExport(entry, arguments); diff --git a/src/passes/NameManager.cpp b/src/passes/NameManager.cpp index 6a07de4c7..2f20979b8 100644 --- a/src/passes/NameManager.cpp +++ b/src/passes/NameManager.cpp @@ -60,11 +60,11 @@ void NameManager::visitFunctionType(FunctionType* curr) { } void NameManager::visitFunction(Function* curr) { names.insert(curr->name); - for (auto& param : curr->params) { - names.insert(param.name); - } - for (auto& var : curr->vars) { - names.insert(var.name); + for (Index i = 0; i < curr->getNumLocals(); i++) { + Name name = curr->tryLocalName(i); + if (name.is()) { + names.insert(name); + } } } void NameManager::visitImport(Import* curr) { diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index d791e5377..aa533849f 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -35,6 +35,8 @@ struct PrintSExpression : public Visitor<PrintSExpression> { bool fullAST = false; // whether to not elide nodes in output when possible // (like implicit blocks) + Function* currFunction = nullptr; + PrintSExpression(std::ostream& o) : o(o) { setMinify(false); } @@ -64,6 +66,15 @@ struct PrintSExpression : public Visitor<PrintSExpression> { visit(expression); o << maybeNewLine; } + + Name printableLocal(Index index) { + Name name = currFunction->tryLocalName(index); + if (!name.is()) { + name = Name::fromInt(index); + } + return name; + } + void visitBlock(Block *curr) { // special-case Block, because Block nesting (in their first element) can be incredibly deep std::vector<Block*> stack; @@ -205,10 +216,10 @@ struct PrintSExpression : public Visitor<PrintSExpression> { decIndent(); } void visitGetLocal(GetLocal *curr) { - printOpening(o, "get_local ") << curr->name << ')'; + printOpening(o, "get_local ") << printableLocal(curr->index) << ')'; } void visitSetLocal(SetLocal *curr) { - printOpening(o, "set_local ") << curr->name; + printOpening(o, "set_local ") << printableLocal(curr->index); incIndent(); printFullLine(curr->value); decIndent(); @@ -423,14 +434,15 @@ struct PrintSExpression : public Visitor<PrintSExpression> { printText(o, curr->name.str) << ' ' << curr->value << ')'; } void visitFunction(Function *curr) { + currFunction = curr; printOpening(o, "func ", true) << curr->name; if (curr->type.is()) { o << maybeSpace << "(type " << curr->type << ')'; } if (curr->params.size() > 0) { - for (auto& param : curr->params) { + for (size_t i = 0; i < curr->params.size(); i++) { o << maybeSpace; - printMinorOpening(o, "param ") << param.name << ' ' << printWasmType(param.type) << ")"; + printMinorOpening(o, "param ") << printableLocal(i) << ' ' << printWasmType(curr->getLocalType(i)) << ")"; } } if (curr->result != none) { @@ -438,9 +450,9 @@ struct PrintSExpression : public Visitor<PrintSExpression> { printMinorOpening(o, "result ") << printWasmType(curr->result) << ")"; } incIndent(); - for (auto& local : curr->vars) { + for (size_t i = curr->getVarIndexBase(); i < curr->getNumLocals(); i++) { doIndent(o, indent); - printMinorOpening(o, "local ") << local.name << ' ' << printWasmType(local.type) << ")"; + printMinorOpening(o, "local ") << printableLocal(i) << ' ' << printWasmType(curr->getLocalType(i)) << ")"; o << maybeNewLine; } // It is ok to emit a block here, as a function can directly contain a list, even if our diff --git a/src/passes/ReorderLocals.cpp b/src/passes/ReorderLocals.cpp index 66ea131de..22295dc1a 100644 --- a/src/passes/ReorderLocals.cpp +++ b/src/passes/ReorderLocals.cpp @@ -29,29 +29,94 @@ namespace wasm { struct ReorderLocals : public WalkerPass<PostWalker<ReorderLocals>> { bool isFunctionParallel() { return true; } - std::map<Name, uint32_t> counts; + std::map<Index, uint32_t> counts; void visitFunction(Function *curr) { - auto& vars = curr->vars; - sort(vars.begin(), vars.end(), [this](NameType a, NameType b) -> bool { - if (this->counts[a.name] == this->counts[b.name]) { - return strcmp(a.name.str, b.name.str) > 0; + Index num = curr->getNumLocals(); + std::vector<Index> newToOld; + for (size_t i = 0; i < num; i++) { + newToOld.push_back(i); + } + // sort, keeping params in front (where they will not be moved) + sort(newToOld.begin(), newToOld.end(), [this, curr, &newToOld](Index a, Index b) -> bool { + if (curr->isParam(a) && !curr->isParam(b)) return true; + if (curr->isParam(b) && !curr->isParam(a)) return false; + if (curr->isParam(b) && curr->isParam(a)) { + return a < b; + } + if (this->counts[a] == this->counts[b]) { + return a < b; } - return this->counts[a.name] > this->counts[b.name]; + return this->counts[a] > this->counts[b]; }); - // drop completely unused vars - while (vars.size() > 0 && counts[vars.back().name] == 0) { - vars.pop_back(); + // sorting left params in front, perhaps slightly reordered. verify and fix. + for (size_t i = 0; i < curr->params.size(); i++) { + assert(newToOld[i] < curr->params.size()); + } + for (size_t i = 0; i < curr->params.size(); i++) { + newToOld[i] = i; + } + // sort vars, and drop unused ones + auto oldVars = curr->vars; + curr->vars.clear(); + for (size_t i = curr->getVarIndexBase(); i < newToOld.size(); i++) { + Index index = newToOld[i]; + if (counts[index] > 0) { + curr->vars.push_back(oldVars[index - curr->getVarIndexBase()]); + } else { + newToOld.resize(i); + break; + } } counts.clear(); + std::vector<Index> oldToNew; + oldToNew.resize(num); + for (size_t i = 0; i < newToOld.size(); i++) { + if (curr->isParam(i)) { + oldToNew[i] = i; + } else { + oldToNew[newToOld[i]] = i; + } + } + // apply the renaming to AST nodes + struct ReIndexer : public PostWalker<ReIndexer> { + Function* func; + std::vector<Index>& oldToNew; + + ReIndexer(Function* func, std::vector<Index>& oldToNew) : func(func), oldToNew(oldToNew) {} + + void visitGetLocal(GetLocal *curr) { + if (func->isVar(curr->index)) { + curr->index = oldToNew[curr->index]; + } + } + + void visitSetLocal(SetLocal *curr) { + if (func->isVar(curr->index)) { + curr->index = oldToNew[curr->index]; + } + } + }; + ReIndexer reIndexer(curr, oldToNew); + reIndexer.walk(curr->body); + // apply to the names + auto oldLocalNames = curr->localNames; + auto oldLocalIndices = curr->localIndices; + curr->localNames.clear(); + curr->localNames.resize(newToOld.size()); + curr->localIndices.clear(); + for (size_t i = 0; i < newToOld.size(); i++) { + curr->localNames[i] = oldLocalNames[newToOld[i]]; + curr->localIndices[oldLocalNames[newToOld[i]]] = i; + } } void visitGetLocal(GetLocal *curr) { - counts[curr->name]++; + counts[curr->index]++; } void visitSetLocal(SetLocal *curr) { - counts[curr->name]++; + counts[curr->index]++; } }; diff --git a/src/passes/SimplifyLocals.cpp b/src/passes/SimplifyLocals.cpp index 6220d0780..ddb3bccae 100644 --- a/src/passes/SimplifyLocals.cpp +++ b/src/passes/SimplifyLocals.cpp @@ -45,12 +45,12 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> }; // locals in current linear execution trace, which we try to sink - std::map<Name, SinkableInfo> sinkables; + std::map<Index, SinkableInfo> sinkables; bool sunk; - // name => # of get_locals for it - std::map<Name, int> numGetLocals; + // local => # of get_locals for it + std::map<Index, int> numGetLocals; // for each set_local, its origin pointer std::map<SetLocal*, Expression**> setLocalOrigins; @@ -60,7 +60,7 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> } void visitGetLocal(GetLocal *curr) { - auto found = sinkables.find(curr->name); + auto found = sinkables.find(curr->index); if (found != sinkables.end()) { // sink it, and nop the origin TODO: clean up nops replaceCurrent(*found->second.item); @@ -70,7 +70,7 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> sinkables.erase(found); sunk = true; } else { - numGetLocals[curr->name]++; + numGetLocals[curr->index]++; } } @@ -78,7 +78,7 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> // if we are a potentially-sinkable thing, forget it - this // write overrides the last TODO: optimizable // TODO: if no get_locals left, can remove the set as well (== expressionizer in emscripten optimizer) - auto found = sinkables.find(curr->name); + auto found = sinkables.find(curr->index); if (found != sinkables.end()) { sinkables.erase(found); } @@ -86,14 +86,14 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> void checkInvalidations(EffectAnalyzer& effects) { // TODO: this is O(bad) - std::vector<Name> invalidated; + std::vector<Index> invalidated; for (auto& sinkable : sinkables) { if (effects.invalidates(sinkable.second.effects)) { invalidated.push_back(sinkable.first); } } - for (auto name : invalidated) { - sinkables.erase(name); + for (auto index : invalidated) { + sinkables.erase(index); } } @@ -125,9 +125,9 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> static void tryMarkSinkable(SimplifyLocals* self, Expression** currp) { auto* curr = (*currp)->dynCast<SetLocal>(); if (curr) { - Name name = curr->name; - assert(self->sinkables.count(name) == 0); - self->sinkables.emplace(std::make_pair(name, SinkableInfo(currp))); + Index index = curr->index; + assert(self->sinkables.count(index) == 0); + self->sinkables.emplace(std::make_pair(index, SinkableInfo(currp))); } } @@ -175,7 +175,7 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>> std::vector<SetLocal*> optimizables; for (auto pair : setLocalOrigins) { SetLocal* curr = pair.first; - if (numGetLocals[curr->name] == 0) { + if (numGetLocals[curr->index] == 0) { // no gets, can remove the set and leave just the value optimizables.push_back(curr); } diff --git a/src/s2wasm.h b/src/s2wasm.h index 1edbb7b6b..4cfb4a20d 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -638,8 +638,8 @@ class S2WasmBuilder { inputs[i] = nullptr; } else { auto curr = allocator.alloc<GetLocal>(); - curr->name = getStrToSep(); - curr->type = localTypes[curr->name]; + curr->index = func->getLocalIndex(getStrToSep()); + curr->type = func->getLocalType(curr->index); inputs[i] = curr; } if (*s == ')') s++; // tolerate 0(argument) syntax, where we started at the 'a' @@ -664,7 +664,7 @@ class S2WasmBuilder { push(curr); } else { // set to a local auto set = allocator.alloc<SetLocal>(); - set->name = assign; + set->index = func->getLocalIndex(assign); set->value = curr; set->type = curr->type; addToBlock(set); @@ -1056,7 +1056,7 @@ class S2WasmBuilder { Name assign = getAssign(); skipComma(); auto curr = allocator.alloc<SetLocal>(); - curr->name = getAssign(); + curr->index = func->getLocalIndex(getAssign()); skipComma(); curr->value = getInput(); curr->type = curr->value->type; @@ -1261,10 +1261,10 @@ class S2WasmBuilder { int p = 0; for (const auto& ty : funcType->params) params.emplace_back("$" + std::to_string(p++), ty); Function* f = wasmBuilder.makeFunction(std::string("dynCall_") + sig, std::move(params), funcType->result, {}); - Expression* fptr = wasmBuilder.makeGetLocal("fptr", i32); + Expression* fptr = wasmBuilder.makeGetLocal(0, i32); std::vector<Expression*> args; for (unsigned i = 0; i < funcType->params.size(); ++i) { - args.push_back(wasmBuilder.makeGetLocal("$" + std::to_string(i), funcType->params[i])); + args.push_back(wasmBuilder.makeGetLocal(i + 1, funcType->params[i])); } Expression* call = wasmBuilder.makeCallIndirect(funcType, fptr, std::move(args)); f->body = funcType->result == none ? call : wasmBuilder.makeReturn(call); @@ -1344,17 +1344,18 @@ class S2WasmBuilder { wasm.addStart(start); auto* block = allocator.alloc<Block>(); func->body = block; - { // Create the call, matching its parameters. + { + // Create the call, matching its parameters. // TODO allow calling with non-default values. auto* call = allocator.alloc<Call>(); call->target = startFunction; size_t paramNum = 0; - for (const NameType& nt : target->params) { + for (WasmType type : target->params) { Name name = Name::fromInt(paramNum++); - func->vars.emplace_back(name, nt.type); + Builder::addVar(func, name, type); auto* param = allocator.alloc<GetLocal>(); - param->name = name; - param->type = nt.type; + param->index = func->getLocalIndex(name); + param->type = type; call->operands.push_back(param); } block->list.push_back(call); diff --git a/src/wasm-binary.h b/src/wasm-binary.h index 6b77500bf..0af60600d 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -28,6 +28,7 @@ #include "wasm-traversal.h" #include "shared-constants.h" #include "asm_v_wasm.h" +#include "wasm-builder.h" namespace wasm { @@ -550,40 +551,39 @@ public: finishSection(start); } - std::map<Name, size_t> mappedLocals; // local name => index in compact form of [all int32s][all int64s]etc + std::map<Index, size_t> mappedLocals; // local index => index in compact form of [all int32s][all int64s]etc std::map<WasmType, size_t> numLocalsByType; // type => number of locals of that type in the compact form void mapLocals(Function* function) { - for (auto& param : function->params) { + for (Index i = 0; i < function->getNumParams(); i++) { size_t curr = mappedLocals.size(); - mappedLocals[param.name] = curr; + mappedLocals[i] = curr; } - for (auto& var : function->vars) { - numLocalsByType[var.type]++; + for (auto type : function->vars) { + numLocalsByType[type]++; } std::map<WasmType, size_t> currLocalsByType; - for (auto& var : function->vars) { - size_t index = function->params.size(); - Name name = var.name; - WasmType type = var.type; + for (Index i = function->getVarIndexBase(); i < function->getNumLocals(); i++) { + size_t index = function->getVarIndexBase(); + WasmType type = function->getLocalType(i); currLocalsByType[type]++; // increment now for simplicity, must decrement it in returns if (type == i32) { - mappedLocals[name] = index + currLocalsByType[i32] - 1; + mappedLocals[i] = index + currLocalsByType[i32] - 1; continue; } index += numLocalsByType[i32]; if (type == i64) { - mappedLocals[name] = index + currLocalsByType[i64] - 1; + mappedLocals[i] = index + currLocalsByType[i64] - 1; continue; } index += numLocalsByType[i64]; if (type == f32) { - mappedLocals[name] = index + currLocalsByType[f32] - 1; + mappedLocals[i] = index + currLocalsByType[f32] - 1; continue; } index += numLocalsByType[f32]; if (type == f64) { - mappedLocals[name] = index + currLocalsByType[f64] - 1; + mappedLocals[i] = index + currLocalsByType[f64] - 1; continue; } abort(); @@ -879,12 +879,12 @@ public: } void visitGetLocal(GetLocal *curr) { if (debug) std::cerr << "zz node: GetLocal " << (o.size() + 1) << std::endl; - o << int8_t(BinaryConsts::GetLocal) << U32LEB(mappedLocals[curr->name]); + o << int8_t(BinaryConsts::GetLocal) << U32LEB(mappedLocals[curr->index]); } void visitSetLocal(SetLocal *curr) { if (debug) std::cerr << "zz node: SetLocal" << std::endl; recurse(curr->value); - o << int8_t(BinaryConsts::SetLocal) << U32LEB(mappedLocals[curr->name]); + o << int8_t(BinaryConsts::SetLocal) << U32LEB(mappedLocals[curr->index]); } void emitMemoryAccess(size_t alignment, size_t bytes, uint32_t offset) { @@ -1390,6 +1390,7 @@ public: std::vector<Function*> functions; // we store functions here before wasm.addFunction after we know their names std::map<size_t, std::vector<Call*>> functionCalls; // at index i we have all calls to i + Function* currFunction = nullptr; void readFunctions() { if (debug) std::cerr << "== readFunctions" << std::endl; @@ -1400,41 +1401,36 @@ public: assert(size > 0); // we could also check it matches the seen size auto type = functionTypes[i]; if (debug) std::cerr << "reading" << i << std::endl; - auto func = allocator.alloc<Function>(); - func->type = type->name; - func->result = type->result; size_t nextVar = 0; auto addVar = [&]() { Name name = cashew::IString(("var$" + std::to_string(nextVar++)).c_str(), false); return name; }; + std::vector<NameType> params, vars; for (size_t j = 0; j < type->params.size(); j++) { - func->params.emplace_back(addVar(), type->params[j]); + params.emplace_back(addVar(), type->params[j]); } size_t numLocalTypes = getU32LEB(); for (size_t t = 0; t < numLocalTypes; t++) { auto num = getU32LEB(); auto type = getWasmType(); while (num > 0) { - func->vars.emplace_back(addVar(), type); + vars.emplace_back(addVar(), type); num--; } } + auto func = Builder(wasm).makeFunction( + Name("TODO"), + std::move(params), + type->result, + std::move(vars) + ); + func->type = type->name; + currFunction = func; { // process the function body if (debug) std::cerr << "processing function: " << i << std::endl; nextLabel = 0; - // prepare locals - mappedLocals.clear(); - localTypes.clear(); - for (size_t i = 0; i < func->params.size(); i++) { - mappedLocals.push_back(func->params[i].name); - localTypes[func->params[i].name] = func->params[i].type; - } - for (size_t i = 0; i < func->vars.size(); i++) { - mappedLocals.push_back(func->vars[i].name); - localTypes[func->vars[i].name] = func->vars[i].type; - } // process body assert(breakStack.empty()); assert(expressionStack.empty()); @@ -1446,6 +1442,7 @@ public: assert(breakStack.empty()); assert(expressionStack.empty()); } + currFunction = nullptr; functions.push_back(func); } } @@ -1466,9 +1463,6 @@ public: } } - std::vector<Name> mappedLocals; // index => local name - std::map<Name, WasmType> localTypes; // TODO: optimize - std::vector<Name> breakStack; std::vector<Expression*> expressionStack; @@ -1745,14 +1739,14 @@ public: } void visitGetLocal(GetLocal *curr) { if (debug) std::cerr << "zz node: GetLocal " << pos << std::endl; - curr->name = mappedLocals[getU32LEB()]; - assert(curr->name.is()); - curr->type = localTypes[curr->name]; + curr->index = getU32LEB(); + assert(curr->index < currFunction->getNumLocals()); + curr->type = currFunction->getLocalType(curr->index); } void visitSetLocal(SetLocal *curr) { if (debug) std::cerr << "zz node: SetLocal" << std::endl; - curr->name = mappedLocals[getU32LEB()]; - assert(curr->name.is()); + curr->index = getU32LEB(); + assert(curr->index < currFunction->getNumLocals()); curr->value = popExpression(); curr->type = curr->value->type; } diff --git a/src/wasm-builder.h b/src/wasm-builder.h index 362f1a871..0d6ba30cd 100644 --- a/src/wasm-builder.h +++ b/src/wasm-builder.h @@ -21,21 +21,46 @@ namespace wasm { +// Useful data structures + +struct NameType { + Name name; + WasmType type; + NameType() : name(nullptr), type(none) {} + NameType(Name name, WasmType type) : name(name), type(type) {} +}; + +// General AST node builder + class Builder { MixedArena &allocator; public: Builder(AllocatingModule& wasm) : allocator(wasm.allocator) {} + // make* functions, create nodes + Function* makeFunction(Name name, std::vector<NameType>&& params, WasmType resultType, - std::vector<NameType>&& vars) { + std::vector<NameType>&& vars, + Expression* body = nullptr) { auto* func = allocator.alloc<Function>(); func->name = name; - func->params = params; func->result = resultType; - func->vars = vars; + func->body = body; + + for (auto& param : params) { + func->params.push_back(param.type); + func->localIndices[param.name] = func->localNames.size(); + func->localNames.push_back(param.name); + } + for (auto& var : vars) { + func->vars.push_back(var.type); + func->localIndices[var.name] = func->localNames.size(); + func->localNames.push_back(var.name); + } + return func; } @@ -63,15 +88,15 @@ public: return call; } // FunctionType - GetLocal* makeGetLocal(Name name, WasmType type) { + GetLocal* makeGetLocal(Index index, WasmType type) { auto* ret = allocator.alloc<GetLocal>(); - ret->name = name; + ret->index = index; ret->type = type; return ret; } - SetLocal* makeSetLocal(Name name, Expression* value) { + SetLocal* makeSetLocal(Index index, Expression* value) { auto* ret = allocator.alloc<SetLocal>(); - ret->name = name; + ret->index = index; ret->value = value; ret->type = value->type; return ret; @@ -130,9 +155,43 @@ public: ret->value = value; return ret; } - // Host + Host* makeHost(HostOp op, Name nameOperand, ExpressionList&& operands) { + auto* ret = allocator.alloc<Host>(); + ret->op = op; + ret->nameOperand = nameOperand; + ret->operands = operands; + return ret; + } // Unreachable + // Additional utility functions for building on top of nodes + + static Index addParam(Function* func, Name name, WasmType type) { + // only ok to add a param if no vars, otherwise indices are invalidated + assert(func->localIndices.size() == func->params.size()); + func->params.push_back(type); + Index index = func->localNames.size(); + func->localIndices[name] = index; + func->localNames.push_back(name); + return index; + } + + static Index addVar(Function* func, Name name, WasmType type) { + // always ok to add a var, it does not affect other indices + assert(func->localIndices.size() == func->params.size() + func->vars.size()); + func->vars.emplace_back(type); + Index index = func->localNames.size(); + func->localIndices[name] = index; + func->localNames.push_back(name); + return index; + } + + static void clearLocals(Function* func) { + func->params.clear(); + func->vars.clear(); + func->localNames.clear(); + func->localIndices.clear(); + } }; } // namespace wasm diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index 528f812d0..8f3f09ed1 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -156,18 +156,21 @@ private: << arguments.size() << " arguments." << std::endl; abort(); } - for (size_t i = 0; i < arguments.size(); i++) { - if (function->params[i].type != arguments[i].type) { - std::cerr << "Function `" << function->name << "` expects type " - << printWasmType(function->params[i].type) - << " for parameter " << i << ", got " - << printWasmType(arguments[i].type) << "." << std::endl; - abort(); + for (size_t i = 0; i < function->getNumLocals(); i++) { + if (i < arguments.size()) { + assert(function->isParam(i)); + if (function->params[i] != arguments[i].type) { + std::cerr << "Function `" << function->name << "` expects type " + << printWasmType(function->params[i]) + << " for parameter " << i << ", got " + << printWasmType(arguments[i].type) << "." << std::endl; + abort(); + } + locals[function->getLocalName(i)] = arguments[i]; + } else { + assert(function->isVar(i)); + locals[function->getLocalName(i)].type = function->getLocalType(i); } - locals[function->params[i].name] = arguments[i]; - } - for (auto& local : function->vars) { - locals[local.name].type = local.type; } } }; @@ -356,14 +359,14 @@ private: Flow visitGetLocal(GetLocal *curr) { NOTE_ENTER("GetLocal"); - IString name = curr->name; + IString name = scope.function->getLocalName(curr->index); NOTE_NAME(name); NOTE_EVAL1(scope.locals[name]); return scope.locals[name]; } Flow visitSetLocal(SetLocal *curr) { NOTE_ENTER("SetLocal"); - IString name = curr->name; + IString name = scope.function->getLocalName(curr->index); Flow flow = visit(curr->value); if (flow.breaking()) return flow; NOTE_NAME(name); diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h index a85899c6a..994aac4da 100644 --- a/src/wasm-s-parser.h +++ b/src/wasm-s-parser.h @@ -32,6 +32,7 @@ #include "parsing.h" #include "asm_v_wasm.h" #include "ast_utils.h" +#include "wasm-builder.h" namespace wasm { @@ -341,21 +342,33 @@ private: } void parseFunction(Element& s) { - auto func = currFunction = allocator.alloc<Function>(); size_t i = 1; + Name name; if (s[i]->isStr()) { - func->name = s[i]->str(); + name = s[i]->str(); i++; } else { // unnamed, use an index - func->name = Name::fromInt(functionCounter); + name = Name::fromInt(functionCounter); } functionCounter++; - func->body = nullptr; + Expression* body = nullptr; localIndex = 0; otherIndex = 0; std::vector<NameType> typeParams; // we may have both params and a type. store the type info here + std::vector<NameType> params; + std::vector<NameType> vars; + WasmType result = none; + Name type; Block* autoBlock = nullptr; // we may need to add a block for the very top level + auto makeFunction = [&]() { + currFunction = Builder(wasm).makeFunction( + name, + std::move(params), + result, + std::move(vars) + ); + }; for (;i < s.size(); i++) { Element& curr = *s[i]; IString id = curr[0]->str(); @@ -377,21 +390,21 @@ private: } j++; if (id == PARAM) { - func->params.emplace_back(name, type); + params.emplace_back(name, type); } else { - func->vars.emplace_back(name, type); + vars.emplace_back(name, type); } localIndex++; currLocalTypes[name] = type; } } else if (id == RESULT) { - func->result = stringToWasmType(curr[1]->str()); + result = stringToWasmType(curr[1]->str()); } else if (id == TYPE) { Name name = curr[1]->str(); - func->type = name; + type = name; if (!wasm.checkFunctionType(name)) onError(); FunctionType* type = wasm.getFunctionType(name); - func->result = type->result; + result = type->result; for (size_t j = 0; j < type->params.size(); j++) { IString name = Name::fromInt(j); WasmType currType = type->params[j]; @@ -400,25 +413,32 @@ private: } } else { // body - if (typeParams.size() > 0 && func->params.size() == 0) { - func->params = typeParams; + if (typeParams.size() > 0 && params.size() == 0) { + params = typeParams; } + if (!currFunction) makeFunction(); Expression* ex = parseExpression(curr); - if (!func->body) { - func->body = ex; + if (!body) { + body = ex; } else { if (!autoBlock) { autoBlock = allocator.alloc<Block>(); - autoBlock->list.push_back(func->body); + autoBlock->list.push_back(body); autoBlock->finalize(); - func->body = autoBlock; + body = autoBlock; } autoBlock->list.push_back(ex); } } } - if (!func->body) func->body = allocator.alloc<Nop>(); - wasm.addFunction(func); + if (!currFunction) { + makeFunction(); + body = allocator.alloc<Nop>(); + } + assert(currFunction->result == result); + currFunction->body = body; + currFunction->type = type; + wasm.addFunction(currFunction); currLocalTypes.clear(); labelStack.clear(); currFunction = nullptr; @@ -701,30 +721,24 @@ private: return ret; } - Name getLocalName(Element& s) { - if (s.dollared()) return s.str(); + Index getLocalIndex(Element& s) { + if (s.dollared()) return currFunction->getLocalIndex(s.str()); // this is a numeric index - size_t i = atoi(s.c_str()); - size_t numParams = currFunction->params.size(); - if (i < numParams) { - return currFunction->params[i].name; - } else { - return currFunction->vars[i - currFunction->params.size()].name; - } + return atoi(s.c_str()); } Expression* makeGetLocal(Element& s) { auto ret = allocator.alloc<GetLocal>(); - ret->name = getLocalName(*s[1]); - ret->type = currLocalTypes[ret->name]; + ret->index = getLocalIndex(*s[1]); + ret->type = currFunction->getLocalType(ret->index); return ret; } Expression* makeSetLocal(Element& s) { auto ret = allocator.alloc<SetLocal>(); - ret->name = getLocalName(*s[1]); + ret->index = getLocalIndex(*s[1]); ret->value = parseExpression(s[2]); - ret->type = currLocalTypes[ret->name]; + ret->type = currFunction->getLocalType(ret->index); return ret; } diff --git a/src/wasm.h b/src/wasm.h index d9c36d878..d62d4fcab 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -64,7 +64,11 @@ namespace wasm { // We use a Name for all of the identifiers. These are IStrings, so they are // all interned - comparisons etc are just pointer comparisons, so there is no -// perf loss. Having names everywhere makes using the AST much nicer. +// perf loss. Having names everywhere makes using the AST much nicer (for +// example, block names are strings and not offsets, which makes composition +// - adding blocks, removing blocks - easy). One exception is local variables, +// where we do use indices, as they are a large proportion of the AST, +// perf matters a lot there, and compositionality is not a problem. // TODO: as an optimization, IString values < some threshold could be considered // numerical indices directly. @@ -84,6 +88,10 @@ struct Name : public cashew::IString { } }; +// An index in a wasm module + +typedef uint32_t Index; + // Types enum WasmType { @@ -924,14 +932,14 @@ class GetLocal : public Expression { public: GetLocal() : Expression(GetLocalId) {} - Name name; + Index index; }; class SetLocal : public Expression { public: SetLocal() : Expression(SetLocalId) {} - Name name; + Index index; Expression *value; }; @@ -1055,23 +1063,65 @@ public: // Globals -struct NameType { - Name name; - WasmType type; - NameType() : name(nullptr), type(none) {} - NameType(Name name, WasmType type) : name(name), type(type) {} -}; - class Function { public: Name name; WasmType result; - std::vector<NameType> params; // function locals are params - std::vector<NameType> vars; // plus vars + std::vector<WasmType> params; // function locals are + std::vector<WasmType> vars; // params plus vars Name type; // if null, it is implicit in params and result Expression *body; + // local names. these are optional. + std::vector<Name> localNames; + std::map<Name, Index> localIndices; + Function() : result(none) {} + + size_t getNumParams() { + return params.size(); + } + size_t getNumVars() { + return vars.size(); + } + size_t getNumLocals() { + return params.size() + vars.size(); + } + + bool isParam(Index index) { + return index < params.size(); + } + bool isVar(Index index) { + return index >= params.size(); + } + + Name getLocalName(Index index) { + assert(index < localNames.size() && localNames[index].is()); + return localNames[index]; + } + Name tryLocalName(Index index) { + if (index < localNames.size() && localNames[index].is()) { + return localNames[index]; + } + // this is an unnamed local + return Name(); + } + Index getLocalIndex(Name name) { + assert(localIndices.count(name) > 0); + return localIndices[name]; + } + Index getVarIndexBase() { + return params.size(); + } + WasmType getLocalType(Index index) { + if (isParam(index)) { + return params[index]; + } else if (isVar(index)) { + return vars[index - getVarIndexBase()]; + } else { + WASM_UNREACHABLE(); + } + } }; class Import { diff --git a/src/wasm2asm.h b/src/wasm2asm.h index 0e244a932..9ccbb4f19 100644 --- a/src/wasm2asm.h +++ b/src/wasm2asm.h @@ -119,7 +119,7 @@ public: // @param result Whether the context we are in receives a value, // and its type, or if not, then we can drop our return, // if we have one. - Ref processFunctionBody(Expression* curr, IString result); + Ref processFunctionBody(Function* func, IString result); // Get a temp var. IString getTemp(WasmType type) { @@ -333,14 +333,14 @@ Ref Wasm2AsmBuilder::processFunction(Function* func) { temps.resize(std::max(i32, std::max(f32, f64)) + 1); temps[i32] = temps[f32] = temps[f64] = 0; // arguments - for (auto& param : func->params) { - IString name = fromName(param.name); + for (Index i = 0; i < func->getNumParams(); i++) { + IString name = fromName(func->getLocalName(i)); ValueBuilder::appendArgumentToFunction(ret, name); ret[3]->push_back( ValueBuilder::makeStatement( ValueBuilder::makeAssign( ValueBuilder::makeName(name), - makeAsmCoercion(ValueBuilder::makeName(name), wasmToAsmType(param.type)) + makeAsmCoercion(ValueBuilder::makeName(name), wasmToAsmType(func->getLocalType(i))) ) ) ); @@ -352,7 +352,7 @@ Ref Wasm2AsmBuilder::processFunction(Function* func) { scanFunctionBody(func->body); if (isStatement(func->body)) { IString result = func->result != none ? getTemp(func->result) : NO_RESULT; - flattenAppend(ret, ValueBuilder::makeStatement(processFunctionBody(func->body, result))); + flattenAppend(ret, ValueBuilder::makeStatement(processFunctionBody(func, result))); if (func->result != none) { // do the actual return ret[3]->push_back(ValueBuilder::makeStatement(ValueBuilder::makeReturn(makeAsmCoercion(ValueBuilder::makeName(result), wasmToAsmType(func->result))))); @@ -361,14 +361,14 @@ Ref Wasm2AsmBuilder::processFunction(Function* func) { } else { // whole thing is an expression, just do a return if (func->result != none) { - ret[3]->push_back(ValueBuilder::makeStatement(ValueBuilder::makeReturn(makeAsmCoercion(processFunctionBody(func->body, EXPRESSION_RESULT), wasmToAsmType(func->result))))); + ret[3]->push_back(ValueBuilder::makeStatement(ValueBuilder::makeReturn(makeAsmCoercion(processFunctionBody(func, EXPRESSION_RESULT), wasmToAsmType(func->result))))); } else { - flattenAppend(ret, processFunctionBody(func->body, NO_RESULT)); + flattenAppend(ret, processFunctionBody(func, NO_RESULT)); } } // vars, including new temp vars - for (auto& var : func->vars) { - ValueBuilder::appendToVar(theVar, fromName(var.name), makeAsmCoercedZero(wasmToAsmType(var.type))); + for (Index i = func->getVarIndexBase(); i < func->getNumLocals(); i++) { + ValueBuilder::appendToVar(theVar, fromName(func->getLocalName(i)), makeAsmCoercedZero(wasmToAsmType(func->getLocalType(i)))); } for (auto f : frees[i32]) { ValueBuilder::appendToVar(theVar, f, makeAsmCoercedZero(ASM_INT)); @@ -482,11 +482,12 @@ void Wasm2AsmBuilder::scanFunctionBody(Expression* curr) { ExpressionScanner(this).walk(curr); } -Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { +Ref Wasm2AsmBuilder::processFunctionBody(Function* func, IString result) { struct ExpressionProcessor : public Visitor<ExpressionProcessor, Ref> { Wasm2AsmBuilder* parent; IString result; - ExpressionProcessor(Wasm2AsmBuilder* parent) : parent(parent) {} + Function* func; + ExpressionProcessor(Wasm2AsmBuilder* parent, Function* func) : parent(parent), func(func) {} // A scoped temporary variable. struct ScopedTemp { @@ -735,23 +736,23 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { return makeStatementizedCall(curr->operands, ret, theCall, result, curr->type); } Ref visitGetLocal(GetLocal *curr) { - return ValueBuilder::makeName(fromName(curr->name)); + return ValueBuilder::makeName(fromName(func->getLocalName(curr->index))); } Ref visitSetLocal(SetLocal *curr) { if (!isStatement(curr)) { - return ValueBuilder::makeAssign(ValueBuilder::makeName(fromName(curr->name)), visit(curr->value, EXPRESSION_RESULT)); + return ValueBuilder::makeAssign(ValueBuilder::makeName(fromName(func->getLocalName(curr->index))), visit(curr->value, EXPRESSION_RESULT)); } ScopedTemp temp(curr->type, parent, result); // if result was provided, our child can just assign there. otherwise, allocate a temp for it to assign to. Ref ret = blockify(visit(curr->value, temp)); // the output was assigned to result, so we can just assign it to our target - ret[1]->push_back(ValueBuilder::makeStatement(ValueBuilder::makeAssign(ValueBuilder::makeName(fromName(curr->name)), temp.getAstName()))); + ret[1]->push_back(ValueBuilder::makeStatement(ValueBuilder::makeAssign(ValueBuilder::makeName(fromName(func->getLocalName(curr->index))), temp.getAstName()))); return ret; } Ref visitLoad(Load *curr) { if (isStatement(curr)) { ScopedTemp temp(i32, parent); GetLocal fakeLocal; - fakeLocal.name = temp.getName(); + fakeLocal.index = func->getLocalIndex(temp.getName()); Load fakeLoad = *curr; fakeLoad.ptr = &fakeLocal; Ref ret = blockify(visitAndAssign(curr->ptr, temp)); @@ -762,11 +763,11 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { // set the pointer to a local ScopedTemp temp(i32, parent); SetLocal set; - set.name = temp.getName(); + set.index = func->getLocalIndex(temp.getName()); set.value = curr->ptr; Ref ptrSet = visit(&set, NO_RESULT); GetLocal get; - get.name = temp.getName(); + get.index = func->getLocalIndex(temp.getName()); // fake loads Load load = *curr; load.ptr = &get; @@ -814,9 +815,9 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { ScopedTemp tempPtr(i32, parent); ScopedTemp tempValue(curr->type, parent); GetLocal fakeLocalPtr; - fakeLocalPtr.name = tempPtr.getName(); + fakeLocalPtr.index = func->getLocalIndex(tempPtr.getName()); GetLocal fakeLocalValue; - fakeLocalValue.name = tempValue.getName(); + fakeLocalValue.index = func->getLocalIndex(tempValue.getName()); Store fakeStore = *curr; fakeStore.ptr = &fakeLocalPtr; fakeStore.value = &fakeLocalValue; @@ -829,19 +830,19 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { // set the pointer to a local ScopedTemp temp(i32, parent); SetLocal set; - set.name = temp.getName(); + set.index = func->getLocalIndex(temp.getName()); set.value = curr->ptr; Ref ptrSet = visit(&set, NO_RESULT); GetLocal get; - get.name = temp.getName(); + get.index = func->getLocalIndex(temp.getName()); // set the value to a local ScopedTemp tempValue(curr->value->type, parent); SetLocal setValue; - setValue.name = tempValue.getName(); + setValue.index = func->getLocalIndex(tempValue.getName()); setValue.value = curr->value; Ref valueSet = visit(&setValue, NO_RESULT); GetLocal getValue; - getValue.name = tempValue.getName(); + getValue.index = func->getLocalIndex(tempValue.getName()); // fake stores Store store = *curr; store.ptr = &get; @@ -929,7 +930,7 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { if (isStatement(curr)) { ScopedTemp temp(curr->value->type, parent); GetLocal fakeLocal; - fakeLocal.name = temp.getName(); + fakeLocal.index = func->getLocalIndex(temp.getName()); Unary fakeUnary = *curr; fakeUnary.value = &fakeLocal; Ref ret = blockify(visitAndAssign(curr->value, temp)); @@ -977,10 +978,10 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { if (isStatement(curr)) { ScopedTemp tempLeft(curr->left->type, parent); GetLocal fakeLocalLeft; - fakeLocalLeft.name = tempLeft.getName(); + fakeLocalLeft.index = func->getLocalIndex(tempLeft.getName()); ScopedTemp tempRight(curr->right->type, parent); GetLocal fakeLocalRight; - fakeLocalRight.name = tempRight.getName(); + fakeLocalRight.index = func->getLocalIndex(tempRight.getName()); Binary fakeBinary = *curr; fakeBinary.left = &fakeLocalLeft; fakeBinary.right = &fakeLocalRight; @@ -1050,13 +1051,13 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { if (isStatement(curr)) { ScopedTemp tempIfTrue(curr->ifTrue->type, parent); GetLocal fakeLocalIfTrue; - fakeLocalIfTrue.name = tempIfTrue.getName(); + fakeLocalIfTrue.index = func->getLocalIndex(tempIfTrue.getName()); ScopedTemp tempIfFalse(curr->ifFalse->type, parent); GetLocal fakeLocalIfFalse; - fakeLocalIfFalse.name = tempIfFalse.getName(); + fakeLocalIfFalse.index = func->getLocalIndex(tempIfFalse.getName()); ScopedTemp tempCondition(i32, parent); GetLocal fakeCondition; - fakeCondition.name = tempCondition.getName(); + fakeCondition.index = func->getLocalIndex(tempCondition.getName()); Select fakeSelect = *curr; fakeSelect.ifTrue = &fakeLocalIfTrue; fakeSelect.ifFalse = &fakeLocalIfFalse; @@ -1099,7 +1100,7 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { return ValueBuilder::makeCall(ABORT_FUNC); } }; - return ExpressionProcessor(this).visit(curr, result); + return ExpressionProcessor(this, func).visit(func->body, result); } } // namespace wasm diff --git a/test/emcc_O2_hello_world.fromasm b/test/emcc_O2_hello_world.fromasm index ef166e465..de6dfd4b8 100644 --- a/test/emcc_O2_hello_world.fromasm +++ b/test/emcc_O2_hello_world.fromasm @@ -50,17 +50,17 @@ (local $i62 i32) (local $i8 i32) (local $i15 i32) - (local $i45 i32) (local $i44 i32) + (local $i45 i32) (local $i60 i32) (local $i3 i32) (local $i4 i32) (local $i50 i32) (local $i36 i32) (local $i14 i32) - (local $i61 i32) - (local $i53 i32) (local $i2 i32) + (local $i53 i32) + (local $i61 i32) (local $i52 i32) (local $i12 i32) (local $i17 i32) @@ -73,66 +73,66 @@ (local $i59 i32) (local $i54 i32) (local $i11 i32) - (local $i72 i32) - (local $i56 i32) (local $i24 i32) + (local $i56 i32) + (local $i72 i32) (local $i16 i32) (local $i9 i32) (local $i79 i32) - (local $i89 i32) - (local $i82 i32) - (local $i51 i32) (local $i38 i32) - (local $i73 i32) - (local $i46 i32) - (local $i32 i32) - (local $i25 i32) + (local $i51 i32) + (local $i82 i32) + (local $i89 i32) (local $i21 i32) - (local $i71 i32) - (local $i68 i32) + (local $i25 i32) + (local $i32 i32) + (local $i46 i32) + (local $i73 i32) (local $i37 i32) - (local $i74 i32) - (local $i47 i32) - (local $i39 i32) - (local $i35 i32) - (local $i26 i32) + (local $i68 i32) + (local $i71 i32) (local $i23 i32) - (local $i90 i32) - (local $i88 i32) - (local $i83 i32) - (local $i81 i32) - (local $i42 i32) - (local $i41 i32) - (local $i40 i32) - (local $i34 i32) - (local $i33 i32) - (local $i30 i32) - (local $i20 i32) + (local $i26 i32) + (local $i35 i32) + (local $i39 i32) + (local $i47 i32) + (local $i74 i32) (local $i18 i32) - (local $i91 i32) - (local $i87 i32) - (local $i86 i32) - (local $i84 i32) - (local $i80 i32) - (local $i78 i32) - (local $i77 i32) - (local $i76 i32) - (local $i70 i32) + (local $i20 i32) + (local $i30 i32) + (local $i33 i32) + (local $i34 i32) + (local $i40 i32) + (local $i41 i32) + (local $i42 i32) + (local $i81 i32) + (local $i83 i32) + (local $i88 i32) + (local $i90 i32) (local $i6 i32) - (local $i49 i32) - (local $i29 i32) - (local $i28 i32) (local $i19 i32) - (local $i92 i32) - (local $i85 i32) - (local $i75 i32) - (local $i69 i32) - (local $i67 i32) - (local $i66 i32) - (local $i65 i32) - (local $i64 i32) - (local $i48 i32) + (local $i28 i32) + (local $i29 i32) + (local $i49 i32) + (local $i70 i32) + (local $i76 i32) + (local $i77 i32) + (local $i78 i32) + (local $i80 i32) + (local $i84 i32) + (local $i86 i32) + (local $i87 i32) + (local $i91 i32) (local $i27 i32) + (local $i48 i32) + (local $i64 i32) + (local $i65 i32) + (local $i66 i32) + (local $i67 i32) + (local $i69 i32) + (local $i75 i32) + (local $i85 i32) + (local $i92 i32) (block $do-once$0 (if (i32.lt_u @@ -6149,23 +6149,23 @@ (local $i21 i32) (local $i15 i32) (local $i20 i32) - (local $i30 i32) (local $i3 i32) (local $i29 i32) - (local $i32 i32) + (local $i30 i32) (local $i16 i32) - (local $i28 i32) + (local $i32 i32) (local $i24 i32) + (local $i28 i32) (local $i25 i32) - (local $i34 i32) (local $i33 i32) + (local $i34 i32) (local $i4 i32) - (local $i37 i32) - (local $i35 i32) (local $i27 i32) - (local $i36 i32) - (local $i26 i32) + (local $i35 i32) + (local $i37 i32) (local $i17 i32) + (local $i26 i32) + (local $i36 i32) (if (i32.eqz (get_local $i1) @@ -8040,26 +8040,26 @@ ) (func $___stdio_write (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32) (local $i7 i32) - (local $i14 i32) (local $i12 i32) + (local $i14 i32) (local $i9 i32) (local $i21 i32) (local $i8 i32) - (local $i13 i32) (local $i11 i32) - (local $i6 i32) - (local $i5 i32) + (local $i13 i32) (local $i4 i32) + (local $i5 i32) + (local $i6 i32) (local $i20 i32) - (local $i24 i32) - (local $i22 i32) - (local $i19 i32) - (local $i18 i32) - (local $i15 i32) (local $i10 i32) - (local $i23 i32) - (local $i17 i32) + (local $i15 i32) + (local $i18 i32) + (local $i19 i32) + (local $i22 i32) + (local $i24 i32) (local $i16 i32) + (local $i17 i32) + (local $i23 i32) (set_local $i4 (i32.load (i32.const 8) @@ -8460,12 +8460,12 @@ (local $i5 i32) (local $i10 i32) (local $i8 i32) - (local $i13 i32) - (local $i12 i32) (local $i11 i32) - (local $i9 i32) - (local $i7 i32) + (local $i12 i32) + (local $i13 i32) (local $i6 i32) + (local $i7 i32) + (local $i9 i32) (local $i14 i32) (if (set_local $i5 @@ -8705,10 +8705,10 @@ (local $i3 i32) (local $i4 i32) (local $i2 i32) - (local $i8 i32) (local $i5 i32) - (local $i7 i32) + (local $i8 i32) (local $i6 i32) + (local $i7 i32) (block $do-once$0 (if (get_local $i1) @@ -8875,10 +8875,10 @@ (local $i10 i32) (local $i9 i32) (local $i5 i32) - (local $i8 i32) - (local $i7 i32) - (local $i6 i32) (local $i2 i32) + (local $i6 i32) + (local $i7 i32) + (local $i8 i32) (local $i11 i32) (block $label$break$L1 (if @@ -9051,10 +9051,10 @@ (local $i6 i32) (local $i10 i32) (local $i7 i32) - (local $i9 i32) - (local $i8 i32) - (local $i4 i32) (local $i3 i32) + (local $i4 i32) + (local $i8 i32) + (local $i9 i32) (local $i5 i32) (local $i11 i32) (set_local $i3 @@ -9212,13 +9212,13 @@ ) ) (func $___fflush_unlocked (param $i1 i32) (result i32) - (local $i4 i32) (local $i2 i32) - (local $i8 i32) - (local $i7 i32) - (local $i6 i32) - (local $i5 i32) + (local $i4 i32) (local $i3 i32) + (local $i5 i32) + (local $i6 i32) + (local $i7 i32) + (local $i8 i32) (if (if (i32.gt_u @@ -9488,8 +9488,8 @@ (func $_memset (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32) (local $i5 i32) (local $i4 i32) - (local $i7 i32) (local $i6 i32) + (local $i7 i32) (set_local $i4 (i32.add (get_local $i1) @@ -9625,8 +9625,8 @@ (func $_puts (param $i1 i32) (result i32) (local $i2 i32) (local $i4 i32) - (local $i6 i32) (local $i3 i32) + (local $i6 i32) (local $i5 i32) (if (i32.gt_s @@ -9735,8 +9735,8 @@ (func $___stdio_seek (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32) (local $i5 i32) (local $i4 i32) - (local $i7 i32) (local $i6 i32) + (local $i7 i32) (set_local $i4 (i32.load (i32.const 8) @@ -9814,8 +9814,8 @@ ) ) (func $___towrite (param $i1 i32) (result i32) - (local $i3 i32) (local $i2 i32) + (local $i3 i32) (local $i4 i32) (set_local $i3 (i32.load8_s @@ -9900,8 +9900,8 @@ (func $_fwrite (param $i1 i32) (param $i2 i32) (param $i3 i32) (param $i4 i32) (result i32) (local $i8 i32) (local $i5 i32) - (local $i9 i32) (local $i7 i32) + (local $i9 i32) (local $i6 i32) (set_local $i5 (i32.mul diff --git a/test/emcc_O2_hello_world.fromasm.imprecise b/test/emcc_O2_hello_world.fromasm.imprecise index ef166e465..de6dfd4b8 100644 --- a/test/emcc_O2_hello_world.fromasm.imprecise +++ b/test/emcc_O2_hello_world.fromasm.imprecise @@ -50,17 +50,17 @@ (local $i62 i32) (local $i8 i32) (local $i15 i32) - (local $i45 i32) (local $i44 i32) + (local $i45 i32) (local $i60 i32) (local $i3 i32) (local $i4 i32) (local $i50 i32) (local $i36 i32) (local $i14 i32) - (local $i61 i32) - (local $i53 i32) (local $i2 i32) + (local $i53 i32) + (local $i61 i32) (local $i52 i32) (local $i12 i32) (local $i17 i32) @@ -73,66 +73,66 @@ (local $i59 i32) (local $i54 i32) (local $i11 i32) - (local $i72 i32) - (local $i56 i32) (local $i24 i32) + (local $i56 i32) + (local $i72 i32) (local $i16 i32) (local $i9 i32) (local $i79 i32) - (local $i89 i32) - (local $i82 i32) - (local $i51 i32) (local $i38 i32) - (local $i73 i32) - (local $i46 i32) - (local $i32 i32) - (local $i25 i32) + (local $i51 i32) + (local $i82 i32) + (local $i89 i32) (local $i21 i32) - (local $i71 i32) - (local $i68 i32) + (local $i25 i32) + (local $i32 i32) + (local $i46 i32) + (local $i73 i32) (local $i37 i32) - (local $i74 i32) - (local $i47 i32) - (local $i39 i32) - (local $i35 i32) - (local $i26 i32) + (local $i68 i32) + (local $i71 i32) (local $i23 i32) - (local $i90 i32) - (local $i88 i32) - (local $i83 i32) - (local $i81 i32) - (local $i42 i32) - (local $i41 i32) - (local $i40 i32) - (local $i34 i32) - (local $i33 i32) - (local $i30 i32) - (local $i20 i32) + (local $i26 i32) + (local $i35 i32) + (local $i39 i32) + (local $i47 i32) + (local $i74 i32) (local $i18 i32) - (local $i91 i32) - (local $i87 i32) - (local $i86 i32) - (local $i84 i32) - (local $i80 i32) - (local $i78 i32) - (local $i77 i32) - (local $i76 i32) - (local $i70 i32) + (local $i20 i32) + (local $i30 i32) + (local $i33 i32) + (local $i34 i32) + (local $i40 i32) + (local $i41 i32) + (local $i42 i32) + (local $i81 i32) + (local $i83 i32) + (local $i88 i32) + (local $i90 i32) (local $i6 i32) - (local $i49 i32) - (local $i29 i32) - (local $i28 i32) (local $i19 i32) - (local $i92 i32) - (local $i85 i32) - (local $i75 i32) - (local $i69 i32) - (local $i67 i32) - (local $i66 i32) - (local $i65 i32) - (local $i64 i32) - (local $i48 i32) + (local $i28 i32) + (local $i29 i32) + (local $i49 i32) + (local $i70 i32) + (local $i76 i32) + (local $i77 i32) + (local $i78 i32) + (local $i80 i32) + (local $i84 i32) + (local $i86 i32) + (local $i87 i32) + (local $i91 i32) (local $i27 i32) + (local $i48 i32) + (local $i64 i32) + (local $i65 i32) + (local $i66 i32) + (local $i67 i32) + (local $i69 i32) + (local $i75 i32) + (local $i85 i32) + (local $i92 i32) (block $do-once$0 (if (i32.lt_u @@ -6149,23 +6149,23 @@ (local $i21 i32) (local $i15 i32) (local $i20 i32) - (local $i30 i32) (local $i3 i32) (local $i29 i32) - (local $i32 i32) + (local $i30 i32) (local $i16 i32) - (local $i28 i32) + (local $i32 i32) (local $i24 i32) + (local $i28 i32) (local $i25 i32) - (local $i34 i32) (local $i33 i32) + (local $i34 i32) (local $i4 i32) - (local $i37 i32) - (local $i35 i32) (local $i27 i32) - (local $i36 i32) - (local $i26 i32) + (local $i35 i32) + (local $i37 i32) (local $i17 i32) + (local $i26 i32) + (local $i36 i32) (if (i32.eqz (get_local $i1) @@ -8040,26 +8040,26 @@ ) (func $___stdio_write (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32) (local $i7 i32) - (local $i14 i32) (local $i12 i32) + (local $i14 i32) (local $i9 i32) (local $i21 i32) (local $i8 i32) - (local $i13 i32) (local $i11 i32) - (local $i6 i32) - (local $i5 i32) + (local $i13 i32) (local $i4 i32) + (local $i5 i32) + (local $i6 i32) (local $i20 i32) - (local $i24 i32) - (local $i22 i32) - (local $i19 i32) - (local $i18 i32) - (local $i15 i32) (local $i10 i32) - (local $i23 i32) - (local $i17 i32) + (local $i15 i32) + (local $i18 i32) + (local $i19 i32) + (local $i22 i32) + (local $i24 i32) (local $i16 i32) + (local $i17 i32) + (local $i23 i32) (set_local $i4 (i32.load (i32.const 8) @@ -8460,12 +8460,12 @@ (local $i5 i32) (local $i10 i32) (local $i8 i32) - (local $i13 i32) - (local $i12 i32) (local $i11 i32) - (local $i9 i32) - (local $i7 i32) + (local $i12 i32) + (local $i13 i32) (local $i6 i32) + (local $i7 i32) + (local $i9 i32) (local $i14 i32) (if (set_local $i5 @@ -8705,10 +8705,10 @@ (local $i3 i32) (local $i4 i32) (local $i2 i32) - (local $i8 i32) (local $i5 i32) - (local $i7 i32) + (local $i8 i32) (local $i6 i32) + (local $i7 i32) (block $do-once$0 (if (get_local $i1) @@ -8875,10 +8875,10 @@ (local $i10 i32) (local $i9 i32) (local $i5 i32) - (local $i8 i32) - (local $i7 i32) - (local $i6 i32) (local $i2 i32) + (local $i6 i32) + (local $i7 i32) + (local $i8 i32) (local $i11 i32) (block $label$break$L1 (if @@ -9051,10 +9051,10 @@ (local $i6 i32) (local $i10 i32) (local $i7 i32) - (local $i9 i32) - (local $i8 i32) - (local $i4 i32) (local $i3 i32) + (local $i4 i32) + (local $i8 i32) + (local $i9 i32) (local $i5 i32) (local $i11 i32) (set_local $i3 @@ -9212,13 +9212,13 @@ ) ) (func $___fflush_unlocked (param $i1 i32) (result i32) - (local $i4 i32) (local $i2 i32) - (local $i8 i32) - (local $i7 i32) - (local $i6 i32) - (local $i5 i32) + (local $i4 i32) (local $i3 i32) + (local $i5 i32) + (local $i6 i32) + (local $i7 i32) + (local $i8 i32) (if (if (i32.gt_u @@ -9488,8 +9488,8 @@ (func $_memset (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32) (local $i5 i32) (local $i4 i32) - (local $i7 i32) (local $i6 i32) + (local $i7 i32) (set_local $i4 (i32.add (get_local $i1) @@ -9625,8 +9625,8 @@ (func $_puts (param $i1 i32) (result i32) (local $i2 i32) (local $i4 i32) - (local $i6 i32) (local $i3 i32) + (local $i6 i32) (local $i5 i32) (if (i32.gt_s @@ -9735,8 +9735,8 @@ (func $___stdio_seek (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32) (local $i5 i32) (local $i4 i32) - (local $i7 i32) (local $i6 i32) + (local $i7 i32) (set_local $i4 (i32.load (i32.const 8) @@ -9814,8 +9814,8 @@ ) ) (func $___towrite (param $i1 i32) (result i32) - (local $i3 i32) (local $i2 i32) + (local $i3 i32) (local $i4 i32) (set_local $i3 (i32.load8_s @@ -9900,8 +9900,8 @@ (func $_fwrite (param $i1 i32) (param $i2 i32) (param $i3 i32) (param $i4 i32) (result i32) (local $i8 i32) (local $i5 i32) - (local $i9 i32) (local $i7 i32) + (local $i9 i32) (local $i6 i32) (set_local $i5 (i32.mul diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm index ce5bd76e0..3f72ff7a6 100644 --- a/test/emcc_hello_world.fromasm +++ b/test/emcc_hello_world.fromasm @@ -293,13 +293,13 @@ ) (func $_frexp (param $$x f64) (param $$e i32) (result f64) (local $$retval$0 f64) - (local $$x$addr$0 f64) (local $$storemerge i32) - (local $$conv i32) - (local $$call f64) - (local $$2 i32) - (local $$1 i32) + (local $$x$addr$0 f64) (local $$0 i32) + (local $$1 i32) + (local $$2 i32) + (local $$call f64) + (local $$conv i32) (i32.load (i32.const 8) ) @@ -450,15 +450,15 @@ (func $_strerror (param $$e i32) (result i32) (local $label i32) (local $$i$012 i32) - (local $$s$1 i32) - (local $$s$010 i32) (local $$i$111 i32) - (local $$s$0$lcssa i32) - (local $$incdec$ptr$lcssa i32) - (local $$incdec$ptr i32) + (local $$s$010 i32) + (local $$s$1 i32) (local $$i$012$lcssa i32) - (local $$inc i32) + (local $$incdec$ptr i32) + (local $$incdec$ptr$lcssa i32) + (local $$s$0$lcssa i32) (local $$dec i32) + (local $$inc i32) (i32.load (i32.const 8) ) @@ -646,8 +646,8 @@ ) (func $___stdio_close (param $$f i32) (result i32) (local $sp i32) - (local $$vararg_buffer i32) (local $$call1 i32) + (local $$vararg_buffer i32) (set_local $sp (i32.load (i32.const 8) @@ -700,8 +700,8 @@ (func $___stdout_write (param $$f i32) (param $$buf i32) (param $$len i32) (result i32) (local $$vararg_buffer i32) (local $sp i32) - (local $$tio i32) (local $$call3 i32) + (local $$tio i32) (set_local $sp (i32.load (i32.const 8) @@ -800,8 +800,8 @@ (func $___stdio_seek (param $$f i32) (param $$off i32) (param $$whence i32) (result i32) (local $$vararg_buffer i32) (local $sp i32) - (local $$ret i32) (local $$1 i32) + (local $$ret i32) (set_local $sp (i32.load (i32.const 8) @@ -892,15 +892,15 @@ (func $_fflush (param $$f i32) (result i32) (local $$f$addr$022 i32) (local $$retval$0 i32) - (local $$r$1 i32) - (local $$r$021 i32) (local $$cond10 i32) - (local $$r$0$lcssa i32) - (local $$cond19 i32) + (local $$r$021 i32) + (local $$r$1 i32) (local $$call1 i32) - (local $$phitmp i32) - (local $$f$addr$0$19 i32) + (local $$cond19 i32) + (local $$r$0$lcssa i32) (local $$f$addr$0 i32) + (local $$f$addr$0$19 i32) + (local $$phitmp i32) (i32.load (i32.const 8) ) @@ -1090,8 +1090,8 @@ ) (func $_printf (param $$fmt i32) (param $$varargs i32) (result i32) (local $sp i32) - (local $$call i32) (local $$ap i32) + (local $$call i32) (set_local $sp (i32.load (i32.const 8) @@ -1155,34 +1155,34 @@ (return) ) (func $___stdio_write (param $$f i32) (param $$buf i32) (param $$len i32) (result i32) - (local $$iov$0 i32) (local $$cnt$0 i32) + (local $$iov$0 i32) (local $$iovcnt$0 i32) (local $$iov$1 i32) (local $$wbase i32) - (local $sp i32) - (local $$vararg_buffer3 i32) - (local $$vararg_buffer i32) - (local $$iovs i32) (local $$cnt$1 i32) - (local $label i32) - (local $$wpos i32) - (local $$retval$0 i32) - (local $$rem$0 i32) - (local $$iovcnt$1 i32) - (local $$14 i32) + (local $$iovs i32) + (local $$vararg_buffer i32) + (local $$vararg_buffer3 i32) + (local $sp i32) (local $$10 i32) - (local $$fd8 i32) + (local $$14 i32) + (local $$iovcnt$1 i32) + (local $$rem$0 i32) + (local $$retval$0 i32) + (local $$wpos i32) + (local $label i32) (local $$buf31 i32) - (local $$sub26 i32) - (local $$sub$ptr$sub i32) - (local $$iovcnt$0$lcssa58 i32) - (local $$iov$0$lcssa57 i32) - (local $$call7 i32) - (local $$7 i32) - (local $$5 i32) - (local $$11 i32) + (local $$fd8 i32) (local $$0 i32) + (local $$11 i32) + (local $$5 i32) + (local $$7 i32) + (local $$call7 i32) + (local $$iov$0$lcssa57 i32) + (local $$iovcnt$0$lcssa58 i32) + (local $$sub$ptr$sub i32) + (local $$sub26 i32) (set_local $sp (i32.load (i32.const 8) @@ -1593,27 +1593,27 @@ ) (func $_vfprintf (param $$f i32) (param $$fmt i32) (param $$ap i32) (result i32) (local $sp i32) - (local $$internal_buf i32) (local $$ap2 i32) - (local $dest i32) - (local $$ret$1 i32) - (local $$nl_type i32) + (local $$internal_buf i32) (local $$nl_arg i32) - (local $$wpos i32) - (local $$retval$0 i32) - (local $$cond i32) - (local $$call21 i32) - (local $$buf_size i32) - (local $$buf i32) + (local $$nl_type i32) + (local $$ret$1 i32) + (local $dest i32) (local $$4 i32) - (local $stop i32) - (local $$wend i32) - (local $$wbase i32) - (local $$ret$1$ i32) - (local $$and i32) - (local $$7 i32) - (local $$1 i32) + (local $$buf i32) + (local $$buf_size i32) + (local $$call21 i32) + (local $$cond i32) + (local $$retval$0 i32) + (local $$wpos i32) (local $$$call21 i32) + (local $$1 i32) + (local $$7 i32) + (local $$and i32) + (local $$ret$1$ i32) + (local $$wbase i32) + (local $$wend i32) + (local $stop i32) (set_local $sp (i32.load (i32.const 8) @@ -1944,20 +1944,20 @@ (func $___fwritex (param $$s i32) (param $$l i32) (param $$f i32) (result i32) (local $$i$0$lcssa36 i32) (local $$l$addr$0 i32) - (local $$retval$0 i32) (local $$i$0 i32) - (local $$wpos i32) - (local $$s$addr$0 i32) - (local $$i$1 i32) + (local $$retval$0 i32) (local $$9 i32) - (local $label i32) - (local $$4 i32) + (local $$i$1 i32) + (local $$s$addr$0 i32) + (local $$wpos i32) (local $$3 i32) - (local $$wend i32) - (local $$sub i32) - (local $$cmp i32) - (local $$2 i32) + (local $$4 i32) + (local $label i32) (local $$0 i32) + (local $$2 i32) + (local $$cmp i32) + (local $$sub i32) + (local $$wend i32) (i32.load (i32.const 8) ) @@ -2218,12 +2218,12 @@ ) ) (func $___towrite (param $$f i32) (result i32) - (local $$retval$0 i32) (local $$2 i32) - (local $$mode i32) - (local $$conv3 i32) - (local $$conv i32) + (local $$retval$0 i32) (local $$1 i32) + (local $$conv i32) + (local $$conv3 i32) + (local $$mode i32) (i32.load (i32.const 8) ) @@ -2573,37 +2573,37 @@ ) (func $_memchr (param $$src i32) (param $$c i32) (param $$n i32) (result i32) (local $label i32) - (local $$s$2 i32) - (local $$s$128 i32) - (local $$s$0$lcssa60 i32) - (local $$n$addr$3 i32) (local $$n$addr$0$lcssa61 i32) - (local $$w$034 i32) - (local $$s$044 i32) + (local $$n$addr$3 i32) + (local $$s$0$lcssa60 i32) + (local $$s$128 i32) + (local $$s$2 i32) (local $$n$addr$227 i32) - (local $$w$0$lcssa i32) - (local $$s$0$lcssa i32) - (local $$n$addr$133 i32) - (local $$n$addr$1$lcssa i32) + (local $$s$044 i32) + (local $$w$034 i32) (local $$n$addr$043 i32) - (local $$tobool2$lcssa i32) - (local $$sub22 i32) - (local $$n$addr$0$lcssa i32) - (local $$incdec$ptr33 i32) - (local $$incdec$ptr21 i32) - (local $$incdec$ptr i32) + (local $$n$addr$1$lcssa i32) + (local $$n$addr$133 i32) + (local $$s$0$lcssa i32) + (local $$w$0$lcssa i32) (local $$dec i32) - (local $$xor i32) - (local $$w$034$lcssa i32) - (local $$tobool2$41 i32) - (local $$tobool2 i32) - (local $$sub i32) - (local $$n$addr$133$lcssa i32) - (local $$mul i32) - (local $$dec34 i32) - (local $$conv1 i32) - (local $$5 i32) + (local $$incdec$ptr i32) + (local $$incdec$ptr21 i32) + (local $$incdec$ptr33 i32) + (local $$n$addr$0$lcssa i32) + (local $$sub22 i32) + (local $$tobool2$lcssa i32) (local $$1 i32) + (local $$5 i32) + (local $$conv1 i32) + (local $$dec34 i32) + (local $$mul i32) + (local $$n$addr$133$lcssa i32) + (local $$sub i32) + (local $$tobool2 i32) + (local $$tobool2$41 i32) + (local $$w$034$lcssa i32) + (local $$xor i32) (i32.load (i32.const 8) ) @@ -3071,14 +3071,14 @@ ) ) (func $___fflush_unlocked (param $$f i32) (result i32) - (local $label i32) - (local $$wpos i32) (local $$retval$0 i32) - (local $$wbase i32) - (local $$rpos i32) - (local $$rend i32) - (local $$5 i32) + (local $$wpos i32) + (local $label i32) (local $$4 i32) + (local $$5 i32) + (local $$rend i32) + (local $$rpos i32) + (local $$wbase i32) (i32.load (i32.const 8) ) @@ -3231,476 +3231,476 @@ (func $_printf_core (param $$f i32) (param $$fmt i32) (param $$ap i32) (param $$nl_arg i32) (param $$nl_type i32) (result i32) (local $label i32) (local $$p$0 i32) - (local $$w$1 i32) (local $$cnt$1 i32) + (local $$w$1 i32) (local $$fl$1$and219 i32) (local $$arg i32) (local $$incdec$ptr169275 i32) - (local $$l10n$3 i32) - (local $$l10n$0 i32) (local $$cnt$0 i32) + (local $$l10n$0 i32) + (local $$l10n$3 i32) (local $$l$0 i32) (local $$retval$0 i32) (local $$e2$i i32) (local $$incdec$ptr169$lcssa i32) - (local $$sub$ptr$sub i32) - (local $$p$addr$3$i i32) (local $$e$5$ph$i i32) - (local $$incdec$ptr169269 i32) - (local $$buf$i i32) + (local $$p$addr$3$i i32) + (local $$sub$ptr$sub i32) (local $$add$ptr205 i32) - (local $sp i32) - (local $$t$0 i32) - (local $$p$2 i32) - (local $$i$0$lcssa i32) - (local $$a$3539$i i32) + (local $$buf$i i32) + (local $$incdec$ptr169269 i32) (local $$a$3$lcssa$i i32) - (local $$arraydecay208$add$ptr213$i i32) + (local $$a$3539$i i32) + (local $$i$0$lcssa i32) + (local $$p$2 i32) + (local $$t$0 i32) + (local $sp i32) (local $$add$ptr358$i i32) - (local $$z$3538$i i32) - (local $$z$3$lcssa$i i32) - (local $$storemerge$186282 i32) - (local $$prefix$1 i32) - (local $$prefix$0$i i32) - (local $$pl$1 i32) - (local $$pl$0$i i32) - (local $$i$0$lcssa368 i32) - (local $$fl$6 i32) - (local $$fl$4 i32) - (local $$fl$1 i32) - (local $$fl$0284 i32) - (local $$a$9$ph$i i32) + (local $$arraydecay208$add$ptr213$i i32) (local $$a$0 i32) - (local $$z$7$i$lcssa i32) - (local $$y$addr$0$i f64) - (local $$sub$ptr$lhs$cast160$i i32) - (local $$s753$2$i i32) - (local $$s753$0$i i32) - (local $$pl$2 i32) - (local $$p$addr$2$i i32) - (local $$p$5 i32) - (local $$incdec$ptr169276$lcssa i32) - (local $$incdec$ptr169274 i32) - (local $$incdec$ptr169272 i32) - (local $$e$1$i i32) - (local $$a$2 i32) + (local $$a$9$ph$i i32) + (local $$fl$0284 i32) + (local $$fl$1 i32) + (local $$fl$4 i32) + (local $$fl$6 i32) + (local $$i$0$lcssa368 i32) + (local $$pl$0$i i32) + (local $$pl$1 i32) + (local $$prefix$0$i i32) + (local $$prefix$1 i32) + (local $$storemerge$186282 i32) + (local $$z$3$lcssa$i i32) + (local $$z$3538$i i32) (local $$a$1549$i i32) - (local $$z$7$i i32) - (local $$z$2$i i32) - (local $$z$2 i32) - (local $$tobool25 i32) - (local $$t$addr$1$i i32) - (local $$t$addr$0$i i32) - (local $$s668$1$i i32) - (local $$prefix$2 i32) - (local $$p$addr$5501$i i32) - (local $$p$addr$4489$i i32) - (local $$mul$i$240 f64) - (local $$j$2$i i32) - (local $$incdec$ptr292$a$3573$i i32) - (local $$i$2299 i32) - (local $$i$1$lcssa$i i32) - (local $$i$0316 i32) - (local $$fl$3 i32) - (local $$call384 i32) - (local $$and610$pre$phi$iZ2D i32) - (local $$add165$i i32) - (local $$add$ptr671$i i32) - (local $$a$5$lcssa$i i32) - (local $$a$2$ph$i i32) - (local $$a$1 i32) - (local $$249 i32) + (local $$a$2 i32) + (local $$e$1$i i32) + (local $$incdec$ptr169272 i32) + (local $$incdec$ptr169274 i32) + (local $$incdec$ptr169276$lcssa i32) + (local $$p$5 i32) + (local $$p$addr$2$i i32) + (local $$pl$2 i32) + (local $$s753$0$i i32) + (local $$s753$2$i i32) + (local $$sub$ptr$lhs$cast160$i i32) + (local $$y$addr$0$i f64) + (local $$z$7$i$lcssa i32) (local $$$p$i i32) - (local $$z$4$i i32) - (local $$z$0$lcssa i32) - (local $$w$2 i32) - (local $$w$0 i32) - (local $$sub$ptr$rhs$cast345$i i32) - (local $$small$0$i f64) - (local $$s$addr$0$lcssa$i$229 i32) - (local $$s$1$i i32) - (local $$s$0$i i32) - (local $$round377$1$i f64) - (local $$prefix$0 i32) - (local $$pl$0 i32) - (local $$p$1 i32) - (local $$mul80$i$lcssa f64) - (local $$l10n$1 i32) - (local $$incdec$ptr689$i i32) - (local $$incdec$ptr419$i i32) - (local $$incdec$ptr169276301 i32) - (local $$incdec$ptr169271 i32) - (local $$incdec$ptr115$i i32) - (local $$e$4$i i32) - (local $$d$7500$i i32) - (local $$d$5494$i i32) - (local $$d$4$i i32) - (local $$d$1534$i i32) - (local $$d$0545$i i32) - (local $$cond271$i i32) - (local $$arrayidx$i$236 i32) - (local $$argpos$0 i32) - (local $$and219 i32) - (local $$add653$i i32) - (local $$add441 i32) - (local $$a$8$i i32) - (local $$a$5521$i i32) - (local $$7 i32) - (local $$181 f64) - (local $$149 i32) - (local $$148 i32) + (local $$249 i32) + (local $$a$1 i32) + (local $$a$2$ph$i i32) + (local $$a$5$lcssa$i i32) + (local $$add$ptr671$i i32) + (local $$add165$i i32) + (local $$and610$pre$phi$iZ2D i32) + (local $$call384 i32) + (local $$fl$3 i32) + (local $$i$0316 i32) + (local $$i$1$lcssa$i i32) + (local $$i$2299 i32) + (local $$incdec$ptr292$a$3573$i i32) + (local $$j$2$i i32) + (local $$mul$i$240 f64) + (local $$p$addr$4489$i i32) + (local $$p$addr$5501$i i32) + (local $$prefix$2 i32) + (local $$s668$1$i i32) + (local $$t$addr$0$i i32) + (local $$t$addr$1$i i32) + (local $$tobool25 i32) + (local $$z$2 i32) + (local $$z$2$i i32) + (local $$z$7$i i32) (local $$12 i32) - (local $$z$2$i$lcssa i32) - (local $$z$1548$i i32) - (local $$z$1$lcssa$i i32) - (local $$z$0302 i32) - (local $$z$0$i i32) - (local $$y$addr$4$i f64) - (local $$y$addr$2$i f64) - (local $$y$addr$1$i f64) - (local $$ws$1326 i32) - (local $$ws$0317 i32) - (local $$t$1 i32) - (local $$sub256$i i32) - (local $$sub$ptr$sub789$i i32) - (local $$sub$ptr$sub433 i32) - (local $$sub$ptr$rhs$cast$i i32) - (local $$storemerge$191 i32) - (local $$storemerge$186309 i32) - (local $$storemerge i32) - (local $$st$0 i32) - (local $$small$1$i f64) - (local $$retval$0$i i32) - (local $$rem370$i i32) - (local $$p$4365 i32) - (local $$or$i$241 i32) - (local $$mul125$i f64) - (local $$mb i32) - (local $$l10n$2 i32) - (local $$l$2 i32) - (local $$incdec$ptr776$i i32) - (local $$incdec$ptr773$i i32) - (local $$incdec$ptr725$i i32) - (local $$incdec$ptr681$i i32) - (local $$incdec$ptr639$i i32) - (local $$incdec$ptr122$i i32) - (local $$i$3296 i32) - (local $$fl$0310 i32) - (local $$estr$2$i i32) - (local $$estr$1$lcssa$i i32) - (local $$estr$0$i i32) - (local $$d$6488$i i32) - (local $$d$2520$i i32) - (local $$d$2$lcssa$i i32) - (local $$cmp450$lcssa$i i32) - (local $$arrayidx68 i32) - (local $$arrayidx119 i32) - (local $$add$i$239 i32) - (local $$a$6$i i32) - (local $$a$1$lcssa$i i32) - (local $$99 i32) - (local $$9 i32) - (local $$211 i32) - (local $$198 i32) - (local $$140 i32) - (local $$137 i32) - (local $$126 i32) - (local $$$pr477$i i32) + (local $$148 i32) + (local $$149 i32) + (local $$181 f64) + (local $$7 i32) + (local $$a$5521$i i32) + (local $$a$8$i i32) + (local $$add441 i32) + (local $$add653$i i32) + (local $$and219 i32) + (local $$argpos$0 i32) + (local $$arrayidx$i$236 i32) + (local $$cond271$i i32) + (local $$d$0545$i i32) + (local $$d$1534$i i32) + (local $$d$4$i i32) + (local $$d$5494$i i32) + (local $$d$7500$i i32) + (local $$e$4$i i32) + (local $$incdec$ptr115$i i32) + (local $$incdec$ptr169271 i32) + (local $$incdec$ptr169276301 i32) + (local $$incdec$ptr419$i i32) + (local $$incdec$ptr689$i i32) + (local $$l10n$1 i32) + (local $$mul80$i$lcssa f64) + (local $$p$1 i32) + (local $$pl$0 i32) + (local $$prefix$0 i32) + (local $$round377$1$i f64) + (local $$s$0$i i32) + (local $$s$1$i i32) + (local $$s$addr$0$lcssa$i$229 i32) + (local $$small$0$i f64) + (local $$sub$ptr$rhs$cast345$i i32) + (local $$w$0 i32) + (local $$w$2 i32) + (local $$z$0$lcssa i32) + (local $$z$4$i i32) (local $$$396$i f64) - (local $$z$7$ph$i i32) - (local $$y$addr$3$i f64) - (local $$wc i32) - (local $$tobool357 i32) - (local $$sub806$i i32) - (local $$sub735$i i32) - (local $$sub$ptr$sub650$pn$i i32) - (local $$sub$ptr$sub433$p$5 i32) - (local $$sub$ptr$sub172$i i32) - (local $$sub$ptr$lhs$cast694$i i32) - (local $$sub$ptr$lhs$cast317 i32) - (local $$st$0$lcssa415 i32) - (local $$s753$1496$i i32) - (local $$s715$0484$i i32) - (local $$s715$0$lcssa$i i32) - (local $$s668$0492$i i32) - (local $$s$addr$06$i$221 i32) - (local $$s$addr$06$i i32) - (local $$round$0481$i f64) - (local $$re$1482$i i32) - (local $$prefix$0$add$ptr65$i i32) - (local $$pl$1$i i32) - (local $$p$addr$5$lcssa$i i32) - (local $$p$addr$4$lcssa$i i32) - (local $$or i32) - (local $$mul80$i f64) - (local $$mul513$i i32) - (local $$mul431$i i32) - (local $$mul367$i i32) - (local $$mul322$i i32) - (local $$mul286$i$lcssa i32) - (local $$mul286$i i32) - (local $$l$1315 i32) - (local $$j$1513$i i32) - (local $$j$0527$i i32) - (local $$isdigittmp8$i$200 i32) - (local $$isdigittmp8$i i32) - (local $$incdec$ptr698$i$lcssa i32) - (local $$incdec$ptr698$i i32) - (local $$incdec$ptr647$i i32) - (local $$incdec$ptr62 i32) - (local $$incdec$ptr292$a$3$i i32) - (local $$incdec$ptr23 i32) - (local $$incdec$ptr217$i$lcssa i32) - (local $$incdec$ptr217$i i32) - (local $$incdec$ptr169 i32) - (local $$incdec$ptr106$i i32) - (local $$incdec$ptr$i$225 i32) - (local $$incdec$ptr$i$212$lcssa i32) - (local $$incdec$ptr$i$212 i32) - (local $$incdec$ptr$i$204 i32) - (local $$incdec$ptr$i i32) - (local $$inc500$i i32) - (local $$inc488 i32) - (local $$inc438$i i32) - (local $$inc$i i32) - (local $$i$3512$i i32) - (local $$i$2516$i i32) - (local $$i$2299$lcssa i32) - (local $$i$1526$i i32) - (local $$i$1325 i32) - (local $$i$07$i$201 i32) - (local $$i$07$i i32) - (local $$i$0530$i i32) - (local $$estr$1507$i i32) - (local $$e$2517$i i32) - (local $$e$0531$i i32) - (local $$conv48311 i32) - (local $$conv242$i$lcssa i32) - (local $$conv207 i32) - (local $$conv174$lcssa i32) - (local $$conv174 i32) - (local $$cond233$i i32) - (local $$cmp38$i i32) - (local $$cmp37 i32) - (local $$cmp184 i32) - (local $$carry262$0535$i i32) - (local $$carry$0544$i i32) - (local $$call356 i32) - (local $$arrayidx31 i32) - (local $$arrayidx114 i32) - (local $$and309$fl$4 i32) - (local $$add67$i i32) - (local $$add412 i32) - (local $$add395 i32) - (local $$add313$i i32) - (local $$add275$i i32) - (local $$add$ptr43$arrayidx31 i32) - (local $$add$ptr340 i32) - (local $$add$ptr311$z$4$i i32) - (local $$add$ptr i32) - (local $$add$i$lcssa i32) - (local $$add$i$203 i32) - (local $$add$i i32) - (local $$49 i32) - (local $$29 i32) - (local $$255 i32) - (local $$243 i32) - (local $$237 i32) - (local $$231 i32) - (local $$223 i32) - (local $$219 i32) - (local $$210 i32) - (local $$194 i32) - (local $$143 i32) - (local $$142 i32) - (local $$129 i32) - (local $$101 i32) - (local $$10 i32) - (local $$1 i32) - (local $$$sub562$i i32) - (local $$$sub514$i i32) - (local $$$pre566$i i32) - (local $$$pr$i i32) - (local $$$p$inc468$i i32) + (local $$$pr477$i i32) + (local $$126 i32) + (local $$137 i32) + (local $$140 i32) + (local $$198 i32) + (local $$211 i32) + (local $$9 i32) + (local $$99 i32) + (local $$a$1$lcssa$i i32) + (local $$a$6$i i32) + (local $$add$i$239 i32) + (local $$arrayidx119 i32) + (local $$arrayidx68 i32) + (local $$cmp450$lcssa$i i32) + (local $$d$2$lcssa$i i32) + (local $$d$2520$i i32) + (local $$d$6488$i i32) + (local $$estr$0$i i32) + (local $$estr$1$lcssa$i i32) + (local $$estr$2$i i32) + (local $$fl$0310 i32) + (local $$i$3296 i32) + (local $$incdec$ptr122$i i32) + (local $$incdec$ptr639$i i32) + (local $$incdec$ptr681$i i32) + (local $$incdec$ptr725$i i32) + (local $$incdec$ptr773$i i32) + (local $$incdec$ptr776$i i32) + (local $$l$2 i32) + (local $$l10n$2 i32) + (local $$mb i32) + (local $$mul125$i f64) + (local $$or$i$241 i32) + (local $$p$4365 i32) + (local $$rem370$i i32) + (local $$retval$0$i i32) + (local $$small$1$i f64) + (local $$st$0 i32) + (local $$storemerge i32) + (local $$storemerge$186309 i32) + (local $$storemerge$191 i32) + (local $$sub$ptr$rhs$cast$i i32) + (local $$sub$ptr$sub433 i32) + (local $$sub$ptr$sub789$i i32) + (local $$sub256$i i32) + (local $$t$1 i32) + (local $$ws$0317 i32) + (local $$ws$1326 i32) + (local $$y$addr$1$i f64) + (local $$y$addr$2$i f64) + (local $$y$addr$4$i f64) + (local $$z$0$i i32) + (local $$z$0302 i32) + (local $$z$1$lcssa$i i32) + (local $$z$1548$i i32) + (local $$z$2$i$lcssa i32) (local $$$lcssa i32) - (local $$z$7$add$ptr742$i i32) - (local $$z$1 i32) - (local $$tobool781$i i32) - (local $$tobool56$i i32) - (local $$tobool37$i i32) - (local $$tobool341$i i32) - (local $$tobool135$i i32) - (local $$sub97$i i32) - (local $$sub74$i i32) - (local $$sub626$le$i i32) - (local $$sub562$i i32) - (local $$sub514$i i32) - (local $$sub409$i i32) - (local $$sub343$i i32) - (local $$sub281$i i32) - (local $$sub264$i i32) - (local $$sub203$i i32) - (local $$sub164 i32) - (local $$sub$ptr$sub363 i32) - (local $$sub$ptr$sub175$i i32) - (local $$sub$ptr$sub159$i i32) - (local $$sub$ptr$sub153$i i32) - (local $$sub$ptr$sub145$i i32) - (local $$shr285$i i32) - (local $$s35$0$i i32) - (local $$s$1$i$lcssa i32) - (local $$r$0$a$9$i i32) - (local $$p$addr$2$$sub562399$i i32) - (local $$p$addr$2$$sub514398$i i32) - (local $$p$3 i32) - (local $$p$2$add322 i32) - (local $$or$cond384 i32) - (local $$or$cond192 i32) - (local $$notrhs$i i32) - (local $$mul499$i i32) - (local $$mul437$i i32) - (local $$mul335$i i32) - (local $$mul328$i i32) - (local $$mul220$i f64) - (local $$lor$ext$i i32) - (local $$l10n$0$lcssa i32) - (local $$l$0$i i32) - (local $$j$0$i i32) - (local $$j$0$524$i i32) - (local $$isdigittmp189 i32) - (local $$isdigittmp187 i32) - (local $$isdigittmp$i$206 i32) - (local $$isdigittmp$i i32) - (local $$isdigittmp$5$i$198 i32) - (local $$isdigittmp$5$i i32) - (local $$isdigittmp$ i32) - (local $$isdigittmp i32) - (local $$incdec$ptr808$i i32) - (local $$incdec$ptr734$i i32) - (local $$incdec$ptr423$i i32) - (local $$incdec$ptr410 i32) - (local $$incdec$ptr383 i32) - (local $$incdec$ptr292$i i32) - (local $$incdec$ptr292$570$i i32) - (local $$incdec$ptr288$i i32) - (local $$incdec$ptr246$i i32) - (local $$incdec$ptr169271$lcssa414 i32) - (local $$incdec$ptr$i$lcssa i32) - (local $$incdec$ptr i32) - (local $$inc425$i i32) - (local $$inc i32) - (local $$ebuf0$i i32) - (local $$div384$i i32) - (local $$dec78$i i32) - (local $$d$0$i i32) - (local $$d$0$542$i i32) - (local $$conv48$307 i32) - (local $$conv48 i32) - (local $$conv216$i i32) - (local $$conv116$i i32) - (local $$cond800$i i32) - (local $$cond732$i i32) - (local $$cond629$i i32) - (local $$cond43$i i32) - (local $$cond426 i32) - (local $$cond304$i i32) - (local $$cond245 i32) - (local $$cond100$i i32) - (local $$cond$i i32) - (local $$cnt$1$lcssa i32) - (local $$cmp94$i i32) - (local $$cmp614$i i32) - (local $$cmp374$i i32) - (local $$cmp338$i i32) - (local $$cmp299$i i32) - (local $$call411 i32) - (local $$buf i32) - (local $$big$i i32) - (local $$arrayidx453$i i32) - (local $$arrayidx370 i32) - (local $$arrayidx251$i i32) - (local $$and62$i i32) - (local $$and483$i i32) - (local $$and309 i32) - (local $$and294 i32) - (local $$and282$i i32) - (local $$and249 i32) - (local $$and214 i32) - (local $$and12$i i32) - (local $$add620$i i32) - (local $$add414$i i32) - (local $$add355$i i32) - (local $$add322 i32) - (local $$add269$p$0 i32) - (local $$add269 i32) - (local $$add163$i i32) - (local $$add154$i i32) - (local $$add$ptr742$i i32) - (local $$add$ptr65$i i32) - (local $$add$ptr442$z$3$i i32) - (local $$add$ptr442$i i32) - (local $$add$ptr43 i32) - (local $$add$ptr359 i32) - (local $$add$ptr311$i i32) - (local $$add$ptr213$i i32) - (local $$95 i32) - (local $$92 i32) - (local $$90 i32) - (local $$86 i32) - (local $$76 i32) - (local $$65 i32) - (local $$60 i32) - (local $$59 i32) - (local $$56 i32) - (local $$54 i32) - (local $$52 i32) - (local $$5 i32) - (local $$48 i32) - (local $$47 i32) - (local $$38 i32) - (local $$36 i32) - (local $$32 i32) - (local $$28 i32) - (local $$27 i32) - (local $$267 i32) - (local $$259 i32) - (local $$242 i32) - (local $$239 i32) - (local $$234 i32) - (local $$228 i32) - (local $$225 i32) - (local $$217 i32) - (local $$216 i32) - (local $$215 i32) - (local $$201 i32) - (local $$200 i32) - (local $$193 i32) - (local $$187 i32) - (local $$18 i32) - (local $$179 i32) - (local $$177 i32) - (local $$172 i32) - (local $$170 i32) - (local $$169 i32) - (local $$163 i32) - (local $$161 i32) - (local $$16 i32) - (local $$159 i32) - (local $$151 i32) - (local $$144 i32) - (local $$135 i32) - (local $$131 i32) - (local $$130 i32) - (local $$121 i32) - (local $$118 i32) - (local $$116 i32) - (local $$107 i32) - (local $$103 i32) - (local $$102 i32) - (local $$0 i32) - (local $$$l10n$0 i32) - (local $$$$i i32) + (local $$$p$inc468$i i32) + (local $$$pr$i i32) + (local $$$pre566$i i32) + (local $$$sub514$i i32) + (local $$$sub562$i i32) + (local $$1 i32) + (local $$10 i32) + (local $$101 i32) + (local $$129 i32) + (local $$142 i32) + (local $$143 i32) + (local $$194 i32) + (local $$210 i32) + (local $$219 i32) + (local $$223 i32) + (local $$231 i32) + (local $$237 i32) + (local $$243 i32) + (local $$255 i32) + (local $$29 i32) + (local $$49 i32) + (local $$add$i i32) + (local $$add$i$203 i32) + (local $$add$i$lcssa i32) + (local $$add$ptr i32) + (local $$add$ptr311$z$4$i i32) + (local $$add$ptr340 i32) + (local $$add$ptr43$arrayidx31 i32) + (local $$add275$i i32) + (local $$add313$i i32) + (local $$add395 i32) + (local $$add412 i32) + (local $$add67$i i32) + (local $$and309$fl$4 i32) + (local $$arrayidx114 i32) + (local $$arrayidx31 i32) + (local $$call356 i32) + (local $$carry$0544$i i32) + (local $$carry262$0535$i i32) + (local $$cmp184 i32) + (local $$cmp37 i32) + (local $$cmp38$i i32) + (local $$cond233$i i32) + (local $$conv174 i32) + (local $$conv174$lcssa i32) + (local $$conv207 i32) + (local $$conv242$i$lcssa i32) + (local $$conv48311 i32) + (local $$e$0531$i i32) + (local $$e$2517$i i32) + (local $$estr$1507$i i32) + (local $$i$0530$i i32) + (local $$i$07$i i32) + (local $$i$07$i$201 i32) + (local $$i$1325 i32) + (local $$i$1526$i i32) + (local $$i$2299$lcssa i32) + (local $$i$2516$i i32) + (local $$i$3512$i i32) + (local $$inc$i i32) + (local $$inc438$i i32) + (local $$inc488 i32) + (local $$inc500$i i32) + (local $$incdec$ptr$i i32) + (local $$incdec$ptr$i$204 i32) + (local $$incdec$ptr$i$212 i32) + (local $$incdec$ptr$i$212$lcssa i32) + (local $$incdec$ptr$i$225 i32) + (local $$incdec$ptr106$i i32) + (local $$incdec$ptr169 i32) + (local $$incdec$ptr217$i i32) + (local $$incdec$ptr217$i$lcssa i32) + (local $$incdec$ptr23 i32) + (local $$incdec$ptr292$a$3$i i32) + (local $$incdec$ptr62 i32) + (local $$incdec$ptr647$i i32) + (local $$incdec$ptr698$i i32) + (local $$incdec$ptr698$i$lcssa i32) + (local $$isdigittmp8$i i32) + (local $$isdigittmp8$i$200 i32) + (local $$j$0527$i i32) + (local $$j$1513$i i32) + (local $$l$1315 i32) + (local $$mul286$i i32) + (local $$mul286$i$lcssa i32) + (local $$mul322$i i32) + (local $$mul367$i i32) + (local $$mul431$i i32) + (local $$mul513$i i32) + (local $$mul80$i f64) + (local $$or i32) + (local $$p$addr$4$lcssa$i i32) + (local $$p$addr$5$lcssa$i i32) + (local $$pl$1$i i32) + (local $$prefix$0$add$ptr65$i i32) + (local $$re$1482$i i32) + (local $$round$0481$i f64) + (local $$s$addr$06$i i32) + (local $$s$addr$06$i$221 i32) + (local $$s668$0492$i i32) + (local $$s715$0$lcssa$i i32) + (local $$s715$0484$i i32) + (local $$s753$1496$i i32) + (local $$st$0$lcssa415 i32) + (local $$sub$ptr$lhs$cast317 i32) + (local $$sub$ptr$lhs$cast694$i i32) + (local $$sub$ptr$sub172$i i32) + (local $$sub$ptr$sub433$p$5 i32) + (local $$sub$ptr$sub650$pn$i i32) + (local $$sub735$i i32) + (local $$sub806$i i32) + (local $$tobool357 i32) + (local $$wc i32) + (local $$y$addr$3$i f64) + (local $$z$7$ph$i i32) (local $$$ i32) + (local $$$$i i32) + (local $$$l10n$0 i32) + (local $$0 i32) + (local $$102 i32) + (local $$103 i32) + (local $$107 i32) + (local $$116 i32) + (local $$118 i32) + (local $$121 i32) + (local $$130 i32) + (local $$131 i32) + (local $$135 i32) + (local $$144 i32) + (local $$151 i32) + (local $$159 i32) + (local $$16 i32) + (local $$161 i32) + (local $$163 i32) + (local $$169 i32) + (local $$170 i32) + (local $$172 i32) + (local $$177 i32) + (local $$179 i32) + (local $$18 i32) + (local $$187 i32) + (local $$193 i32) + (local $$200 i32) + (local $$201 i32) + (local $$215 i32) + (local $$216 i32) + (local $$217 i32) + (local $$225 i32) + (local $$228 i32) + (local $$234 i32) + (local $$239 i32) + (local $$242 i32) + (local $$259 i32) + (local $$267 i32) + (local $$27 i32) + (local $$28 i32) + (local $$32 i32) + (local $$36 i32) + (local $$38 i32) + (local $$47 i32) + (local $$48 i32) + (local $$5 i32) + (local $$52 i32) + (local $$54 i32) + (local $$56 i32) + (local $$59 i32) + (local $$60 i32) + (local $$65 i32) + (local $$76 i32) + (local $$86 i32) + (local $$90 i32) + (local $$92 i32) + (local $$95 i32) + (local $$add$ptr213$i i32) + (local $$add$ptr311$i i32) + (local $$add$ptr359 i32) + (local $$add$ptr43 i32) + (local $$add$ptr442$i i32) + (local $$add$ptr442$z$3$i i32) + (local $$add$ptr65$i i32) + (local $$add$ptr742$i i32) + (local $$add154$i i32) + (local $$add163$i i32) + (local $$add269 i32) + (local $$add269$p$0 i32) + (local $$add322 i32) + (local $$add355$i i32) + (local $$add414$i i32) + (local $$add620$i i32) + (local $$and12$i i32) + (local $$and214 i32) + (local $$and249 i32) + (local $$and282$i i32) + (local $$and294 i32) + (local $$and309 i32) + (local $$and483$i i32) + (local $$and62$i i32) + (local $$arrayidx251$i i32) + (local $$arrayidx370 i32) + (local $$arrayidx453$i i32) + (local $$big$i i32) + (local $$buf i32) + (local $$call411 i32) + (local $$cmp299$i i32) + (local $$cmp338$i i32) + (local $$cmp374$i i32) + (local $$cmp614$i i32) + (local $$cmp94$i i32) + (local $$cnt$1$lcssa i32) + (local $$cond$i i32) + (local $$cond100$i i32) + (local $$cond245 i32) + (local $$cond304$i i32) + (local $$cond426 i32) + (local $$cond43$i i32) + (local $$cond629$i i32) + (local $$cond732$i i32) + (local $$cond800$i i32) + (local $$conv116$i i32) + (local $$conv216$i i32) + (local $$conv48 i32) + (local $$conv48$307 i32) + (local $$d$0$542$i i32) + (local $$d$0$i i32) + (local $$dec78$i i32) + (local $$div384$i i32) + (local $$ebuf0$i i32) + (local $$inc i32) + (local $$inc425$i i32) + (local $$incdec$ptr i32) + (local $$incdec$ptr$i$lcssa i32) + (local $$incdec$ptr169271$lcssa414 i32) + (local $$incdec$ptr246$i i32) + (local $$incdec$ptr288$i i32) + (local $$incdec$ptr292$570$i i32) + (local $$incdec$ptr292$i i32) + (local $$incdec$ptr383 i32) + (local $$incdec$ptr410 i32) + (local $$incdec$ptr423$i i32) + (local $$incdec$ptr734$i i32) + (local $$incdec$ptr808$i i32) + (local $$isdigittmp i32) + (local $$isdigittmp$ i32) + (local $$isdigittmp$5$i i32) + (local $$isdigittmp$5$i$198 i32) + (local $$isdigittmp$i i32) + (local $$isdigittmp$i$206 i32) + (local $$isdigittmp187 i32) + (local $$isdigittmp189 i32) + (local $$j$0$524$i i32) + (local $$j$0$i i32) + (local $$l$0$i i32) + (local $$l10n$0$lcssa i32) + (local $$lor$ext$i i32) + (local $$mul220$i f64) + (local $$mul328$i i32) + (local $$mul335$i i32) + (local $$mul437$i i32) + (local $$mul499$i i32) + (local $$notrhs$i i32) + (local $$or$cond192 i32) + (local $$or$cond384 i32) + (local $$p$2$add322 i32) + (local $$p$3 i32) + (local $$p$addr$2$$sub514398$i i32) + (local $$p$addr$2$$sub562399$i i32) + (local $$r$0$a$9$i i32) + (local $$s$1$i$lcssa i32) + (local $$s35$0$i i32) + (local $$shr285$i i32) + (local $$sub$ptr$sub145$i i32) + (local $$sub$ptr$sub153$i i32) + (local $$sub$ptr$sub159$i i32) + (local $$sub$ptr$sub175$i i32) + (local $$sub$ptr$sub363 i32) + (local $$sub164 i32) + (local $$sub203$i i32) + (local $$sub264$i i32) + (local $$sub281$i i32) + (local $$sub343$i i32) + (local $$sub409$i i32) + (local $$sub514$i i32) + (local $$sub562$i i32) + (local $$sub626$le$i i32) + (local $$sub74$i i32) + (local $$sub97$i i32) + (local $$tobool135$i i32) + (local $$tobool341$i i32) + (local $$tobool37$i i32) + (local $$tobool56$i i32) + (local $$tobool781$i i32) + (local $$z$1 i32) + (local $$z$7$add$ptr742$i i32) (set_local $sp (i32.load (i32.const 8) @@ -10337,38 +10337,38 @@ ) (func $_pop_arg_336 (param $$arg i32) (param $$type i32) (param $$ap i32) (local $$13 i32) - (local $$93 i32) - (local $$92 i32) - (local $$91 i32) - (local $$82 i32) - (local $$81 i32) - (local $$79 i32) - (local $$78 i32) - (local $$77 i32) - (local $$68 i32) - (local $$67 i32) - (local $$66 i32) - (local $$6 i32) - (local $$57 i32) - (local $$56 i32) - (local $$54 i32) - (local $$53 i32) - (local $$52 i32) - (local $$5 i32) - (local $$43 i32) - (local $$42 i32) - (local $$39 i32) - (local $$37 i32) - (local $$36 i32) - (local $$27 i32) - (local $$26 i32) - (local $$25 i32) - (local $$16 i32) - (local $$12 i32) - (local $$110 f64) - (local $$109 i32) - (local $$103 f64) (local $$102 i32) + (local $$103 f64) + (local $$109 i32) + (local $$110 f64) + (local $$12 i32) + (local $$16 i32) + (local $$25 i32) + (local $$26 i32) + (local $$27 i32) + (local $$36 i32) + (local $$37 i32) + (local $$39 i32) + (local $$42 i32) + (local $$43 i32) + (local $$5 i32) + (local $$52 i32) + (local $$53 i32) + (local $$54 i32) + (local $$56 i32) + (local $$57 i32) + (local $$6 i32) + (local $$66 i32) + (local $$67 i32) + (local $$68 i32) + (local $$77 i32) + (local $$78 i32) + (local $$79 i32) + (local $$81 i32) + (local $$82 i32) + (local $$91 i32) + (local $$92 i32) + (local $$93 i32) (i32.load (i32.const 8) ) @@ -10959,21 +10959,21 @@ ) (func $_fmt_u (param $$0 i32) (param $$1 i32) (param $$s i32) (result i32) (local $$8 i32) - (local $$y$010 i32) (local $$7 i32) - (local $$x$addr$0$lcssa$off0 i32) + (local $$y$010 i32) (local $$s$addr$0$lcssa i32) - (local $$s$addr$19 i32) - (local $$s$addr$1$lcssa i32) - (local $$s$addr$013 i32) - (local $$incdec$ptr7 i32) - (local $$incdec$ptr i32) - (local $$14 i32) + (local $$x$addr$0$lcssa$off0 i32) (local $$13 i32) - (local $$incdec$ptr$lcssa i32) - (local $$div9 i32) - (local $$9 i32) + (local $$14 i32) + (local $$incdec$ptr i32) + (local $$incdec$ptr7 i32) + (local $$s$addr$013 i32) + (local $$s$addr$1$lcssa i32) + (local $$s$addr$19 i32) (local $$21 i32) + (local $$9 i32) + (local $$div9 i32) + (local $$incdec$ptr$lcssa i32) (i32.load (i32.const 8) ) @@ -11177,20 +11177,20 @@ ) (func $_pad (param $$f i32) (param $$c i32) (param $$w i32) (param $$l i32) (param $$fl i32) (local $$sub i32) - (local $$pad i32) (local $$2 i32) - (local $sp i32) - (local $$tobool$i18 i32) - (local $$tobool$i$16 i32) - (local $$tobool$i i32) - (local $$l$addr$017 i32) - (local $$l$addr$0$lcssa21 i32) + (local $$pad i32) (local $$4 i32) - (local $$sub5 i32) - (local $$cond i32) - (local $$3 i32) - (local $$1 i32) + (local $$l$addr$0$lcssa21 i32) + (local $$l$addr$017 i32) + (local $$tobool$i i32) + (local $$tobool$i$16 i32) + (local $$tobool$i18 i32) + (local $sp i32) (local $$0 i32) + (local $$1 i32) + (local $$3 i32) + (local $$cond i32) + (local $$sub5 i32) (set_local $sp (i32.load (i32.const 8) @@ -11385,473 +11385,473 @@ (local $$nb$0 i32) (local $$add$ptr$i$161 i32) (local $$v$4$lcssa$i i32) - (local $$v$0$i$lcssa i32) - (local $$tbase$796$i i32) (local $$add$ptr16$i$i i32) + (local $$tbase$796$i i32) + (local $$v$0$i$lcssa i32) (local $$and145 i32) (local $$rsize$4$lcssa$i i32) - (local $$R$3$i$i i32) - (local $$R$3$i$171 i32) (local $$R$3$i i32) + (local $$R$3$i$171 i32) + (local $$R$3$i$i i32) (local $$tsize$795$i i32) - (local $$qsize$0$i$i i32) (local $$cond i32) - (local $$sub$ptr$sub$i$i i32) + (local $$qsize$0$i$i i32) (local $$ssize$2$ph$i i32) - (local $$t$48$i i32) - (local $$t$0$i$151 i32) - (local $$ssize$0$i i32) - (local $$I57$0$i$i i32) - (local $$I316$0$i i32) + (local $$sub$ptr$sub$i$i i32) (local $$I252$0$i$i i32) - (local $$rsize$0$i$lcssa i32) - (local $$idx$0$i i32) - (local $$R$1$i$i i32) - (local $$R$1$i$168 i32) - (local $$R$1$i i32) + (local $$I316$0$i i32) + (local $$I57$0$i$i i32) + (local $$ssize$0$i i32) + (local $$t$0$i$151 i32) + (local $$t$48$i i32) (local $$149 i32) - (local $$sp$1107$i i32) - (local $$sp$0108$i i32) - (local $$sp$0$i$i$i i32) - (local $$sp$0$i$i i32) - (local $$rsize$49$i i32) - (local $$cond13$i$i i32) - (local $$and11$i i32) - (local $$add$ptr14$i$i i32) - (local $$T$0$i$i i32) - (local $$T$0$i$58$i i32) - (local $$T$0$i i32) - (local $$95 i32) - (local $$63 i32) - (local $$26 i32) - (local $$154 i32) - (local $$150 i32) + (local $$R$1$i i32) + (local $$R$1$i$168 i32) + (local $$R$1$i$i i32) + (local $$idx$0$i i32) + (local $$rsize$0$i$lcssa i32) (local $$148 i32) - (local $$v$410$i i32) - (local $$v$3$i i32) - (local $$sub18$i$i i32) - (local $$sub160 i32) - (local $$shr i32) - (local $$rsize$0$i i32) - (local $$cond4$i i32) - (local $$br$2$ph$i i32) - (local $$arrayidx289$i i32) - (local $$arrayidx223$i$i i32) - (local $$arrayidx196$i i32) - (local $$arrayidx103 i32) - (local $$arrayidx$i$20$i i32) - (local $$add$ptr4$i$37$i i32) - (local $$RP$1$i$i i32) - (local $$RP$1$i$167 i32) - (local $$RP$1$i i32) - (local $$46 i32) - (local $$3 i32) - (local $$14 i32) + (local $$150 i32) + (local $$154 i32) + (local $$26 i32) + (local $$63 i32) + (local $$95 i32) + (local $$T$0$i i32) + (local $$T$0$i$58$i i32) + (local $$T$0$i$i i32) + (local $$add$ptr14$i$i i32) + (local $$and11$i i32) + (local $$cond13$i$i i32) + (local $$rsize$49$i i32) + (local $$sp$0$i$i i32) + (local $$sp$0$i$i$i i32) + (local $$sp$0108$i i32) + (local $$sp$1107$i i32) (local $$10 i32) - (local $$v$1$i i32) - (local $$v$0$i i32) - (local $$t$4$v$4$i i32) - (local $$t$4$ph$i i32) - (local $$t$2$i i32) - (local $$t$0$i i32) - (local $$sub91 i32) - (local $$sub101$rsize$4$i i32) - (local $$ssize$5$i i32) - (local $$sizebits$0$i i32) - (local $$shr3 i32) - (local $$rsize$3$i i32) - (local $$rsize$1$i i32) - (local $$rsize$0$i$152 i32) - (local $$i$01$i$i i32) - (local $$call83$i i32) - (local $$call37$i i32) - (local $$call131$i i32) - (local $$call$i$i i32) - (local $$arrayidx91$i$i i32) - (local $$arrayidx355$i i32) - (local $$arrayidx287$i$i i32) - (local $$arrayidx$i$i i32) - (local $$and80$i i32) - (local $$add26$i$i i32) - (local $$add$ptr227$i i32) - (local $$add$ptr$i i32) - (local $$T$0$i$lcssa i32) - (local $$T$0$i$i$lcssa i32) - (local $$T$0$i$58$i$lcssa i32) - (local $$K373$0$i i32) - (local $$K305$0$i$i i32) - (local $$K105$0$i$i i32) - (local $$F290$0$i i32) - (local $$F224$0$i$i i32) - (local $$F197$0$i i32) - (local $$F104$0 i32) - (local $$F$0$i$i i32) - (local $$94 i32) - (local $$9 i32) - (local $$79 i32) - (local $$78 i32) - (local $$64 i32) - (local $$42 i32) - (local $$41 i32) - (local $$27 i32) - (local $$2 i32) - (local $$170 i32) - (local $$169 i32) - (local $$155 i32) - (local $$147 i32) + (local $$14 i32) + (local $$3 i32) + (local $$46 i32) + (local $$RP$1$i i32) + (local $$RP$1$i$167 i32) + (local $$RP$1$i$i i32) + (local $$add$ptr4$i$37$i i32) + (local $$arrayidx$i$20$i i32) + (local $$arrayidx103 i32) + (local $$arrayidx196$i i32) + (local $$arrayidx223$i$i i32) + (local $$arrayidx289$i i32) + (local $$br$2$ph$i i32) + (local $$cond4$i i32) + (local $$rsize$0$i i32) + (local $$shr i32) + (local $$sub160 i32) + (local $$sub18$i$i i32) + (local $$v$3$i i32) + (local $$v$410$i i32) (local $$13 i32) - (local $$v$0$i$153 i32) - (local $$sub5$i$i$i i32) - (local $$sub5$i$i i32) - (local $$sub5$i$27$i i32) - (local $$sub33$i i32) - (local $$sub$i$138 i32) - (local $$sp$1107$i$lcssa i32) - (local $$shr58$i$i i32) - (local $$shr318$i i32) - (local $$shr283$i i32) - (local $$shr253$i$i i32) - (local $$shr214$i$i i32) - (local $$shr$i$i i32) - (local $$shr$i$45$i i32) - (local $$shr$i$139 i32) - (local $$rst$1$i i32) - (local $$rst$0$i i32) - (local $$p$0$i$i i32) - (local $$oldfirst$0$i$i i32) - (local $$head$i$17$i i32) - (local $$fd68$pre$phi$i$iZ2D i32) - (local $$cond$i$i$i i32) - (local $$cond$i$i i32) - (local $$cond$i$25$i i32) - (local $$child$i$i i32) - (local $$call132$i i32) - (local $$arrayidx66 i32) - (local $$arrayidx394$i$lcssa i32) - (local $$arrayidx325$i$i$lcssa i32) - (local $$arrayidx126$i$i$lcssa i32) - (local $$arrayidx i32) - (local $$and73$i i32) - (local $$and64$i i32) - (local $$and46 i32) - (local $$and37$i$i i32) - (local $$and3$i i32) - (local $$and104$i i32) - (local $$add8 i32) - (local $$add64 i32) - (local $$add54$i i32) - (local $$add150$i i32) - (local $$add$ptr95 i32) - (local $$add$ptr4$i$i$i i32) - (local $$add$ptr4$i$i i32) - (local $$add$ptr4$i$26$i i32) - (local $$add$ptr24$i$i i32) - (local $$add$ptr166 i32) - (local $$add$ptr$i$i$i$lcssa i32) - (local $$RP$1$i$lcssa i32) - (local $$RP$1$i$i$lcssa i32) - (local $$RP$1$i$167$lcssa i32) - (local $$98 i32) - (local $$91 i32) - (local $$65 i32) - (local $$62 i32) - (local $$55 i32) - (local $$54 i32) - (local $$28 i32) - (local $$25 i32) - (local $$208 i32) - (local $$204 i32) - (local $$20 i32) - (local $$19 i32) - (local $$182 i32) - (local $$156 i32) - (local $$108 i32) - (local $$104 i32) - (local $$0 i32) - (local $$$pre$phiZ2D i32) - (local $$$pre$phi$iZ2D i32) - (local $$$pre$phi$i$iZ2D i32) - (local $$$pre$phi$i$57$iZ2D i32) + (local $$147 i32) + (local $$155 i32) + (local $$169 i32) + (local $$170 i32) + (local $$2 i32) + (local $$27 i32) + (local $$41 i32) + (local $$42 i32) + (local $$64 i32) + (local $$78 i32) + (local $$79 i32) + (local $$9 i32) + (local $$94 i32) + (local $$F$0$i$i i32) + (local $$F104$0 i32) + (local $$F197$0$i i32) + (local $$F224$0$i$i i32) + (local $$F290$0$i i32) + (local $$K105$0$i$i i32) + (local $$K305$0$i$i i32) + (local $$K373$0$i i32) + (local $$T$0$i$58$i$lcssa i32) + (local $$T$0$i$i$lcssa i32) + (local $$T$0$i$lcssa i32) + (local $$add$ptr$i i32) + (local $$add$ptr227$i i32) + (local $$add26$i$i i32) + (local $$and80$i i32) + (local $$arrayidx$i$i i32) + (local $$arrayidx287$i$i i32) + (local $$arrayidx355$i i32) + (local $$arrayidx91$i$i i32) + (local $$call$i$i i32) + (local $$call131$i i32) + (local $$call37$i i32) + (local $$call83$i i32) + (local $$i$01$i$i i32) + (local $$rsize$0$i$152 i32) + (local $$rsize$1$i i32) + (local $$rsize$3$i i32) + (local $$shr3 i32) + (local $$sizebits$0$i i32) + (local $$ssize$5$i i32) + (local $$sub101$rsize$4$i i32) + (local $$sub91 i32) + (local $$t$0$i i32) + (local $$t$2$i i32) + (local $$t$4$ph$i i32) + (local $$t$4$v$4$i i32) + (local $$v$0$i i32) + (local $$v$1$i i32) (local $$$pre$phi$i$178Z2D i32) - (local $$sub70$i i32) - (local $$sub63$i i32) - (local $$sub44 i32) - (local $$sub42 i32) - (local $$sub41$i i32) - (local $$sub381$i i32) - (local $$sub313$i$i i32) - (local $$sub31$rsize$0$i i32) - (local $$sub31$i i32) - (local $$sub30$i i32) - (local $$sub260$i i32) - (local $$sub2$i i32) - (local $$sub190 i32) - (local $$sub172$i i32) - (local $$sub16$i$i i32) - (local $$sub113$i$i i32) - (local $$sub112$i i32) - (local $$sub101$i i32) - (local $$sub$ptr$sub$i i32) - (local $$sub$i$181 i32) - (local $$sub i32) - (local $$sp$0108$i$lcssa i32) - (local $$sizebits$0$shl52$i i32) - (local $$size245$i i32) - (local $$size188$i$lcssa i32) - (local $$size188$i i32) - (local $$size$i$i$lcssa i32) - (local $$size$i$i i32) - (local $$shr87$i i32) - (local $$shr83$i i32) - (local $$shr79$i i32) - (local $$shr75$i i32) - (local $$shr7$i i32) - (local $$shr59 i32) - (local $$shr55 i32) - (local $$shr51 i32) - (local $$shr47 i32) - (local $$shr4$i i32) - (local $$shr194$i i32) - (local $$shr15$i i32) - (local $$shr11$i i32) - (local $$shr101 i32) - (local $$shl95$i$i i32) - (local $$shl9$i i32) - (local $$shl84$i$i i32) - (local $$shl75$i$i i32) - (local $$shl70$i$i i32) - (local $$shl60$i i32) - (local $$shl395$i i32) - (local $$shl39$i$i i32) - (local $$shl37 i32) - (local $$shl362$i i32) - (local $$shl347$i i32) - (local $$shl338$i i32) - (local $$shl333$i i32) - (local $$shl326$i$i i32) - (local $$shl294$i$i i32) - (local $$shl291$i i32) - (local $$shl279$i$i i32) - (local $$shl270$i$i i32) - (local $$shl265$i$i i32) - (local $$shl226$i$i i32) - (local $$shl22 i32) - (local $$shl198$i i32) - (local $$shl18$i i32) - (local $$shl127$i$i i32) - (local $$shl105 i32) - (local $$shl$i$144 i32) - (local $$or275$i i32) - (local $$or26 i32) - (local $$or183$i i32) - (local $$or180 i32) - (local $$or$cond4$i i32) - (local $$neg$i$182 i32) - (local $$inc$i$i i32) - (local $$head274$i i32) - (local $$head25 i32) - (local $$head208$i$i i32) - (local $$head182$i i32) - (local $$head179 i32) - (local $$fd9 i32) - (local $$fd85$i$i i32) - (local $$fd69 i32) - (local $$fd59$i$i i32) - (local $$fd50$i i32) - (local $$fd416$i i32) - (local $$fd344$i$i i32) - (local $$fd148$i$i i32) - (local $$fd139$i i32) - (local $$cond383$i i32) - (local $$cond315$i$i i32) - (local $$cond15$i$i i32) - (local $$cond115$i$i i32) - (local $$cond$v$0$i i32) - (local $$cond$i$36$i i32) - (local $$cond$i$16$i i32) - (local $$cond$i i32) - (local $$cmp7$i$i i32) - (local $$cmp49$i i32) - (local $$cmp32$i i32) - (local $$cmp102$i i32) - (local $$cmp$i$34$i i32) - (local $$cmp$i$23$i i32) - (local $$cmp$i$2$i$i i32) - (local $$cmp$i$15$i i32) - (local $$cmp$i$13$i i32) - (local $$child357$i i32) - (local $$child289$i$i i32) - (local $$child166$i$i i32) - (local $$call68$i i32) - (local $$bk82$i$i i32) - (local $$bk78 i32) - (local $$bk47$i i32) - (local $$bk136$i i32) - (local $$bk i32) - (local $$base226$i$lcssa i32) - (local $$base$i$i$lcssa i32) - (local $$arrayidx96$i$i i32) - (local $$arrayidx94$i i32) - (local $$arrayidx75$i i32) - (local $$arrayidx71$i i32) - (local $$arrayidx65$i i32) - (local $$arrayidx61$i i32) - (local $$arrayidx394$i i32) - (local $$arrayidx325$i$i i32) - (local $$arrayidx204$i i32) - (local $$arrayidx184$i i32) - (local $$arrayidx165$i$169 i32) - (local $$arrayidx161$i i32) - (local $$arrayidx155$i i32) - (local $$arrayidx151$i i32) - (local $$arrayidx143$i$i i32) - (local $$arrayidx126$i$i i32) - (local $$arrayidx123$i$i i32) - (local $$arrayidx113$i i32) - (local $$arrayidx107$i$i i32) - (local $$arrayidx103$i$i i32) - (local $$arrayidx$i$48$i i32) - (local $$and9$i i32) - (local $$and89$i i32) - (local $$and85$i i32) - (local $$and81$i i32) - (local $$and8$i i32) - (local $$and78$i$i i32) - (local $$and77$i i32) - (local $$and73$i$i i32) - (local $$and69$i$i i32) - (local $$and61 i32) - (local $$and6$i$i i32) - (local $$and6$i i32) - (local $$and57 i32) - (local $$and53 i32) - (local $$and49 i32) - (local $$and41 i32) - (local $$and341$i i32) - (local $$and336$i i32) - (local $$and331$i i32) - (local $$and32$i i32) - (local $$and3$i$i$i i32) - (local $$and3$i$i i32) - (local $$and3$i$35$i i32) - (local $$and3$i$24$i i32) - (local $$and273$i$i i32) - (local $$and268$i$i i32) - (local $$and264$i$i i32) - (local $$and209$i$i i32) - (local $$and17$i i32) - (local $$and13$i$i i32) - (local $$and13$i i32) - (local $$and12$i i32) - (local $$and$i$143 i32) - (local $$and i32) - (local $$add9$i i32) - (local $$add83$i$i i32) - (local $$add346$i i32) - (local $$add278$i$i i32) - (local $$add268$i i32) - (local $$add246$i i32) - (local $$add177$i i32) - (local $$add17$i$183 i32) - (local $$add17$i i32) - (local $$add144 i32) - (local $$add$ptr8$i122$i i32) - (local $$add$ptr7$i$i i32) - (local $$add$ptr262$i i32) - (local $$add$ptr2$i$i i32) - (local $$add$ptr193 i32) - (local $$add$ptr15$i$i i32) - (local $$add$ptr$i$i$i i32) - (local $$add$i$i i32) - (local $$add$i$180 i32) - (local $$T$0$i$lcssa293 i32) - (local $$T$0$i$i$lcssa284 i32) - (local $$T$0$i$58$i$lcssa283 i32) - (local $$R$1$i$lcssa i32) - (local $$R$1$i$i$lcssa i32) - (local $$R$1$i$168$lcssa i32) - (local $$97 i32) - (local $$92 i32) - (local $$89 i32) - (local $$87 i32) - (local $$86 i32) - (local $$84 i32) - (local $$83 i32) - (local $$82 i32) - (local $$8 i32) - (local $$77 i32) - (local $$72 i32) - (local $$71 i32) - (local $$70 i32) - (local $$7 i32) - (local $$69 i32) - (local $$68 i32) - (local $$60 i32) - (local $$59 i32) - (local $$52 i32) - (local $$51 i32) - (local $$49 i32) - (local $$48 i32) - (local $$47 i32) - (local $$45 i32) - (local $$40 i32) - (local $$35 i32) - (local $$34 i32) - (local $$33 i32) - (local $$32 i32) - (local $$31 i32) - (local $$23 i32) - (local $$22 i32) - (local $$207 i32) - (local $$205 i32) - (local $$202 i32) - (local $$200 i32) - (local $$199 i32) - (local $$197 i32) - (local $$196 i32) - (local $$195 i32) - (local $$190 i32) - (local $$188 i32) - (local $$185 i32) - (local $$183 i32) - (local $$180 i32) - (local $$178 i32) - (local $$177 i32) - (local $$175 i32) - (local $$174 i32) - (local $$173 i32) - (local $$17 i32) - (local $$168 i32) - (local $$163 i32) - (local $$162 i32) - (local $$161 i32) - (local $$160 i32) - (local $$16 i32) - (local $$159 i32) - (local $$15 i32) - (local $$142 i32) - (local $$140 i32) - (local $$137 i32) - (local $$135 i32) - (local $$132 i32) - (local $$131 i32) - (local $$129 i32) - (local $$128 i32) - (local $$127 i32) - (local $$124 i32) - (local $$120 i32) - (local $$115 i32) - (local $$111 i32) - (local $$110 i32) - (local $$109 i32) - (local $$107 i32) - (local $$105 i32) - (local $$102 i32) - (local $$101 i32) - (local $$100 i32) - (local $$1 i32) - (local $$$lcssa290 i32) + (local $$$pre$phi$i$57$iZ2D i32) + (local $$$pre$phi$i$iZ2D i32) + (local $$$pre$phi$iZ2D i32) + (local $$$pre$phiZ2D i32) + (local $$0 i32) + (local $$104 i32) + (local $$108 i32) + (local $$156 i32) + (local $$182 i32) + (local $$19 i32) + (local $$20 i32) + (local $$204 i32) + (local $$208 i32) + (local $$25 i32) + (local $$28 i32) + (local $$54 i32) + (local $$55 i32) + (local $$62 i32) + (local $$65 i32) + (local $$91 i32) + (local $$98 i32) + (local $$RP$1$i$167$lcssa i32) + (local $$RP$1$i$i$lcssa i32) + (local $$RP$1$i$lcssa i32) + (local $$add$ptr$i$i$i$lcssa i32) + (local $$add$ptr166 i32) + (local $$add$ptr24$i$i i32) + (local $$add$ptr4$i$26$i i32) + (local $$add$ptr4$i$i i32) + (local $$add$ptr4$i$i$i i32) + (local $$add$ptr95 i32) + (local $$add150$i i32) + (local $$add54$i i32) + (local $$add64 i32) + (local $$add8 i32) + (local $$and104$i i32) + (local $$and3$i i32) + (local $$and37$i$i i32) + (local $$and46 i32) + (local $$and64$i i32) + (local $$and73$i i32) + (local $$arrayidx i32) + (local $$arrayidx126$i$i$lcssa i32) + (local $$arrayidx325$i$i$lcssa i32) + (local $$arrayidx394$i$lcssa i32) + (local $$arrayidx66 i32) + (local $$call132$i i32) + (local $$child$i$i i32) + (local $$cond$i$25$i i32) + (local $$cond$i$i i32) + (local $$cond$i$i$i i32) + (local $$fd68$pre$phi$i$iZ2D i32) + (local $$head$i$17$i i32) + (local $$oldfirst$0$i$i i32) + (local $$p$0$i$i i32) + (local $$rst$0$i i32) + (local $$rst$1$i i32) + (local $$shr$i$139 i32) + (local $$shr$i$45$i i32) + (local $$shr$i$i i32) + (local $$shr214$i$i i32) + (local $$shr253$i$i i32) + (local $$shr283$i i32) + (local $$shr318$i i32) + (local $$shr58$i$i i32) + (local $$sp$1107$i$lcssa i32) + (local $$sub$i$138 i32) + (local $$sub33$i i32) + (local $$sub5$i$27$i i32) + (local $$sub5$i$i i32) + (local $$sub5$i$i$i i32) + (local $$v$0$i$153 i32) (local $$$lcssa i32) + (local $$$lcssa290 i32) + (local $$1 i32) + (local $$100 i32) + (local $$101 i32) + (local $$102 i32) + (local $$105 i32) + (local $$107 i32) + (local $$109 i32) + (local $$110 i32) + (local $$111 i32) + (local $$115 i32) + (local $$120 i32) + (local $$124 i32) + (local $$127 i32) + (local $$128 i32) + (local $$129 i32) + (local $$131 i32) + (local $$132 i32) + (local $$135 i32) + (local $$137 i32) + (local $$140 i32) + (local $$142 i32) + (local $$15 i32) + (local $$159 i32) + (local $$16 i32) + (local $$160 i32) + (local $$161 i32) + (local $$162 i32) + (local $$163 i32) + (local $$168 i32) + (local $$17 i32) + (local $$173 i32) + (local $$174 i32) + (local $$175 i32) + (local $$177 i32) + (local $$178 i32) + (local $$180 i32) + (local $$183 i32) + (local $$185 i32) + (local $$188 i32) + (local $$190 i32) + (local $$195 i32) + (local $$196 i32) + (local $$197 i32) + (local $$199 i32) + (local $$200 i32) + (local $$202 i32) + (local $$205 i32) + (local $$207 i32) + (local $$22 i32) + (local $$23 i32) + (local $$31 i32) + (local $$32 i32) + (local $$33 i32) + (local $$34 i32) + (local $$35 i32) + (local $$40 i32) + (local $$45 i32) + (local $$47 i32) + (local $$48 i32) + (local $$49 i32) + (local $$51 i32) + (local $$52 i32) + (local $$59 i32) + (local $$60 i32) + (local $$68 i32) + (local $$69 i32) + (local $$7 i32) + (local $$70 i32) + (local $$71 i32) + (local $$72 i32) + (local $$77 i32) + (local $$8 i32) + (local $$82 i32) + (local $$83 i32) + (local $$84 i32) + (local $$86 i32) + (local $$87 i32) + (local $$89 i32) + (local $$92 i32) + (local $$97 i32) + (local $$R$1$i$168$lcssa i32) + (local $$R$1$i$i$lcssa i32) + (local $$R$1$i$lcssa i32) + (local $$T$0$i$58$i$lcssa283 i32) + (local $$T$0$i$i$lcssa284 i32) + (local $$T$0$i$lcssa293 i32) + (local $$add$i$180 i32) + (local $$add$i$i i32) + (local $$add$ptr$i$i$i i32) + (local $$add$ptr15$i$i i32) + (local $$add$ptr193 i32) + (local $$add$ptr2$i$i i32) + (local $$add$ptr262$i i32) + (local $$add$ptr7$i$i i32) + (local $$add$ptr8$i122$i i32) + (local $$add144 i32) + (local $$add17$i i32) + (local $$add17$i$183 i32) + (local $$add177$i i32) + (local $$add246$i i32) + (local $$add268$i i32) + (local $$add278$i$i i32) + (local $$add346$i i32) + (local $$add83$i$i i32) + (local $$add9$i i32) + (local $$and i32) + (local $$and$i$143 i32) + (local $$and12$i i32) + (local $$and13$i i32) + (local $$and13$i$i i32) + (local $$and17$i i32) + (local $$and209$i$i i32) + (local $$and264$i$i i32) + (local $$and268$i$i i32) + (local $$and273$i$i i32) + (local $$and3$i$24$i i32) + (local $$and3$i$35$i i32) + (local $$and3$i$i i32) + (local $$and3$i$i$i i32) + (local $$and32$i i32) + (local $$and331$i i32) + (local $$and336$i i32) + (local $$and341$i i32) + (local $$and41 i32) + (local $$and49 i32) + (local $$and53 i32) + (local $$and57 i32) + (local $$and6$i i32) + (local $$and6$i$i i32) + (local $$and61 i32) + (local $$and69$i$i i32) + (local $$and73$i$i i32) + (local $$and77$i i32) + (local $$and78$i$i i32) + (local $$and8$i i32) + (local $$and81$i i32) + (local $$and85$i i32) + (local $$and89$i i32) + (local $$and9$i i32) + (local $$arrayidx$i$48$i i32) + (local $$arrayidx103$i$i i32) + (local $$arrayidx107$i$i i32) + (local $$arrayidx113$i i32) + (local $$arrayidx123$i$i i32) + (local $$arrayidx126$i$i i32) + (local $$arrayidx143$i$i i32) + (local $$arrayidx151$i i32) + (local $$arrayidx155$i i32) + (local $$arrayidx161$i i32) + (local $$arrayidx165$i$169 i32) + (local $$arrayidx184$i i32) + (local $$arrayidx204$i i32) + (local $$arrayidx325$i$i i32) + (local $$arrayidx394$i i32) + (local $$arrayidx61$i i32) + (local $$arrayidx65$i i32) + (local $$arrayidx71$i i32) + (local $$arrayidx75$i i32) + (local $$arrayidx94$i i32) + (local $$arrayidx96$i$i i32) + (local $$base$i$i$lcssa i32) + (local $$base226$i$lcssa i32) + (local $$bk i32) + (local $$bk136$i i32) + (local $$bk47$i i32) + (local $$bk78 i32) + (local $$bk82$i$i i32) + (local $$call68$i i32) + (local $$child166$i$i i32) + (local $$child289$i$i i32) + (local $$child357$i i32) + (local $$cmp$i$13$i i32) + (local $$cmp$i$15$i i32) + (local $$cmp$i$2$i$i i32) + (local $$cmp$i$23$i i32) + (local $$cmp$i$34$i i32) + (local $$cmp102$i i32) + (local $$cmp32$i i32) + (local $$cmp49$i i32) + (local $$cmp7$i$i i32) + (local $$cond$i i32) + (local $$cond$i$16$i i32) + (local $$cond$i$36$i i32) + (local $$cond$v$0$i i32) + (local $$cond115$i$i i32) + (local $$cond15$i$i i32) + (local $$cond315$i$i i32) + (local $$cond383$i i32) + (local $$fd139$i i32) + (local $$fd148$i$i i32) + (local $$fd344$i$i i32) + (local $$fd416$i i32) + (local $$fd50$i i32) + (local $$fd59$i$i i32) + (local $$fd69 i32) + (local $$fd85$i$i i32) + (local $$fd9 i32) + (local $$head179 i32) + (local $$head182$i i32) + (local $$head208$i$i i32) + (local $$head25 i32) + (local $$head274$i i32) + (local $$inc$i$i i32) + (local $$neg$i$182 i32) + (local $$or$cond4$i i32) + (local $$or180 i32) + (local $$or183$i i32) + (local $$or26 i32) + (local $$or275$i i32) + (local $$shl$i$144 i32) + (local $$shl105 i32) + (local $$shl127$i$i i32) + (local $$shl18$i i32) + (local $$shl198$i i32) + (local $$shl22 i32) + (local $$shl226$i$i i32) + (local $$shl265$i$i i32) + (local $$shl270$i$i i32) + (local $$shl279$i$i i32) + (local $$shl291$i i32) + (local $$shl294$i$i i32) + (local $$shl326$i$i i32) + (local $$shl333$i i32) + (local $$shl338$i i32) + (local $$shl347$i i32) + (local $$shl362$i i32) + (local $$shl37 i32) + (local $$shl39$i$i i32) + (local $$shl395$i i32) + (local $$shl60$i i32) + (local $$shl70$i$i i32) + (local $$shl75$i$i i32) + (local $$shl84$i$i i32) + (local $$shl9$i i32) + (local $$shl95$i$i i32) + (local $$shr101 i32) + (local $$shr11$i i32) + (local $$shr15$i i32) + (local $$shr194$i i32) + (local $$shr4$i i32) + (local $$shr47 i32) + (local $$shr51 i32) + (local $$shr55 i32) + (local $$shr59 i32) + (local $$shr7$i i32) + (local $$shr75$i i32) + (local $$shr79$i i32) + (local $$shr83$i i32) + (local $$shr87$i i32) + (local $$size$i$i i32) + (local $$size$i$i$lcssa i32) + (local $$size188$i i32) + (local $$size188$i$lcssa i32) + (local $$size245$i i32) + (local $$sizebits$0$shl52$i i32) + (local $$sp$0108$i$lcssa i32) + (local $$sub i32) + (local $$sub$i$181 i32) + (local $$sub$ptr$sub$i i32) + (local $$sub101$i i32) + (local $$sub112$i i32) + (local $$sub113$i$i i32) + (local $$sub16$i$i i32) + (local $$sub172$i i32) + (local $$sub190 i32) + (local $$sub2$i i32) + (local $$sub260$i i32) + (local $$sub30$i i32) + (local $$sub31$i i32) + (local $$sub31$rsize$0$i i32) + (local $$sub313$i$i i32) + (local $$sub381$i i32) + (local $$sub41$i i32) + (local $$sub42 i32) + (local $$sub44 i32) + (local $$sub63$i i32) + (local $$sub70$i i32) (i32.load (i32.const 8) ) @@ -18265,123 +18265,123 @@ (local $$add$ptr16 i32) (local $$add$ptr6 i32) (local $$psize$1 i32) - (local $$R332$3 i32) (local $$R$3 i32) + (local $$R332$3 i32) (local $$add17 i32) (local $$psize$2 i32) (local $$I534$0 i32) - (local $$R332$1 i32) - (local $$R$1 i32) - (local $$5 i32) (local $$35 i32) - (local $$add267 i32) - (local $$T$0 i32) - (local $$9 i32) - (local $$41 i32) - (local $$4 i32) - (local $$34 i32) - (local $$28 i32) + (local $$5 i32) + (local $$R$1 i32) + (local $$R332$1 i32) (local $$0 i32) - (local $$arrayidx509 i32) - (local $$add$ptr i32) - (local $$RP360$1 i32) - (local $$RP$1 i32) + (local $$28 i32) + (local $$34 i32) + (local $$4 i32) + (local $$41 i32) + (local $$9 i32) + (local $$T$0 i32) + (local $$add267 i32) (local $$2 i32) - (local $label i32) - (local $$arrayidx567 i32) - (local $$add258 i32) - (local $$T$0$lcssa i32) - (local $$K583$0 i32) - (local $$F510$0 i32) - (local $$59 i32) - (local $$58 i32) - (local $$42 i32) - (local $$25 i32) - (local $$24 i32) + (local $$RP$1 i32) + (local $$RP360$1 i32) + (local $$add$ptr i32) + (local $$arrayidx509 i32) (local $$10 i32) - (local $$sp$0$in$i i32) - (local $$shr535 i32) - (local $$shr501 i32) - (local $$shr268 i32) - (local $$shr i32) - (local $$fd67$pre$phiZ2D i32) - (local $$fd322$pre$phiZ2D i32) - (local $$child361 i32) - (local $$child i32) - (local $$arrayidx599$lcssa i32) - (local $$and5 i32) - (local $$RP360$1$lcssa i32) - (local $$RP$1$lcssa i32) - (local $$71 i32) - (local $$43 i32) - (local $$11 i32) - (local $$1 i32) + (local $$24 i32) + (local $$25 i32) + (local $$42 i32) + (local $$58 i32) + (local $$59 i32) + (local $$F510$0 i32) + (local $$K583$0 i32) + (local $$T$0$lcssa i32) + (local $$add258 i32) + (local $$arrayidx567 i32) + (local $label i32) (local $$$pre$phiZ2D i32) - (local $$sub589 i32) - (local $$sp$0$i i32) - (local $$shl600 i32) - (local $$shl573 i32) - (local $$shl560 i32) - (local $$shl551 i32) - (local $$shl546 i32) - (local $$shl511 i32) - (local $$next4$i i32) - (local $$head231 i32) - (local $$head209 i32) - (local $$fd86 i32) - (local $$fd620 i32) - (local $$fd56 i32) - (local $$fd347 i32) - (local $$fd311 i32) - (local $$dec i32) - (local $$cond i32) - (local $$cmp$i i32) - (local $$child443 i32) - (local $$child171 i32) - (local $$bk82 i32) - (local $$bk343 i32) - (local $$arrayidx99 i32) - (local $$arrayidx599 i32) - (local $$arrayidx419 i32) - (local $$arrayidx400 i32) - (local $$arrayidx379 i32) - (local $$arrayidx374 i32) - (local $$arrayidx362 i32) - (local $$arrayidx279 i32) - (local $$arrayidx149 i32) - (local $$arrayidx130 i32) - (local $$arrayidx113 i32) - (local $$arrayidx108 i32) - (local $$arrayidx i32) - (local $$and554 i32) - (local $$and549 i32) - (local $$and545 i32) - (local $$and i32) - (local $$add559 i32) - (local $$add246 i32) - (local $$T$0$lcssa319 i32) - (local $$R332$1$lcssa i32) - (local $$R$1$lcssa i32) - (local $$72 i32) - (local $$69 i32) - (local $$67 i32) - (local $$66 i32) - (local $$64 i32) - (local $$63 i32) - (local $$62 i32) - (local $$57 i32) - (local $$52 i32) - (local $$50 i32) - (local $$49 i32) - (local $$48 i32) - (local $$47 i32) - (local $$27 i32) - (local $$23 i32) - (local $$18 i32) - (local $$17 i32) - (local $$16 i32) - (local $$15 i32) + (local $$1 i32) + (local $$11 i32) + (local $$43 i32) + (local $$71 i32) + (local $$RP$1$lcssa i32) + (local $$RP360$1$lcssa i32) + (local $$and5 i32) + (local $$arrayidx599$lcssa i32) + (local $$child i32) + (local $$child361 i32) + (local $$fd322$pre$phiZ2D i32) + (local $$fd67$pre$phiZ2D i32) + (local $$shr i32) + (local $$shr268 i32) + (local $$shr501 i32) + (local $$shr535 i32) + (local $$sp$0$in$i i32) (local $$14 i32) + (local $$15 i32) + (local $$16 i32) + (local $$17 i32) + (local $$18 i32) + (local $$23 i32) + (local $$27 i32) + (local $$47 i32) + (local $$48 i32) + (local $$49 i32) + (local $$50 i32) + (local $$52 i32) + (local $$57 i32) + (local $$62 i32) + (local $$63 i32) + (local $$64 i32) + (local $$66 i32) + (local $$67 i32) + (local $$69 i32) + (local $$72 i32) + (local $$R$1$lcssa i32) + (local $$R332$1$lcssa i32) + (local $$T$0$lcssa319 i32) + (local $$add246 i32) + (local $$add559 i32) + (local $$and i32) + (local $$and545 i32) + (local $$and549 i32) + (local $$and554 i32) + (local $$arrayidx i32) + (local $$arrayidx108 i32) + (local $$arrayidx113 i32) + (local $$arrayidx130 i32) + (local $$arrayidx149 i32) + (local $$arrayidx279 i32) + (local $$arrayidx362 i32) + (local $$arrayidx374 i32) + (local $$arrayidx379 i32) + (local $$arrayidx400 i32) + (local $$arrayidx419 i32) + (local $$arrayidx599 i32) + (local $$arrayidx99 i32) + (local $$bk343 i32) + (local $$bk82 i32) + (local $$child171 i32) + (local $$child443 i32) + (local $$cmp$i i32) + (local $$cond i32) + (local $$dec i32) + (local $$fd311 i32) + (local $$fd347 i32) + (local $$fd56 i32) + (local $$fd620 i32) + (local $$fd86 i32) + (local $$head209 i32) + (local $$head231 i32) + (local $$next4$i i32) + (local $$shl511 i32) + (local $$shl546 i32) + (local $$shl551 i32) + (local $$shl560 i32) + (local $$shl573 i32) + (local $$shl600 i32) + (local $$sp$0$i i32) + (local $$sub589 i32) (i32.load (i32.const 8) ) @@ -20900,11 +20900,11 @@ (func $___muldsi3 (param $$a i32) (param $$b i32) (result i32) (local $$8 i32) (local $$12 i32) - (local $$6 i32) - (local $$3 i32) + (local $$1 i32) (local $$2 i32) + (local $$3 i32) + (local $$6 i32) (local $$11 i32) - (local $$1 i32) (set_local $$8 (i32.add (i32.shr_u @@ -20995,12 +20995,12 @@ ) ) (func $___divdi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) - (local $$2$1 i32) - (local $$2$0 i32) - (local $$1$1 i32) (local $$1$0 i32) - (local $$7$1 i32) + (local $$1$1 i32) + (local $$2$0 i32) + (local $$2$1 i32) (local $$7$0 i32) + (local $$7$1 i32) (set_local $$1$0 (i32.or (i32.shr_s @@ -21151,14 +21151,14 @@ ) ) (func $___remdi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) - (local $$1$1 i32) (local $$1$0 i32) + (local $$1$1 i32) (local $$rem i32) - (local $__stackBase__ i32) - (local $$2$1 i32) (local $$2$0 i32) - (local $$10$1 i32) + (local $$2$1 i32) + (local $__stackBase__ i32) (local $$10$0 i32) + (local $$10$1 i32) (set_local $__stackBase__ (i32.load (i32.const 8) @@ -21337,10 +21337,10 @@ ) ) (func $___muldi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) - (local $$y_sroa_0_0_extract_trunc i32) (local $$x_sroa_0_0_extract_trunc i32) - (local $$1$1 i32) + (local $$y_sroa_0_0_extract_trunc i32) (local $$1$0 i32) + (local $$1$1 i32) (set_local $$1$0 (call $___muldsi3 (set_local $$x_sroa_0_0_extract_trunc @@ -21401,8 +21401,8 @@ ) ) (func $___uremdi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) - (local $__stackBase__ i32) (local $$rem i32) + (local $__stackBase__ i32) (set_local $__stackBase__ (i32.load (i32.const 8) @@ -21444,17 +21444,17 @@ ) ) ) - (func $___udivmoddi4 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (param $$rem i32) (result i32) + (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32) (local $x64 i64) (local $y64 i64) (set_local $x64 (i64.or (i64.extend_u/i32 - (get_local $$a$0) + (get_local $xl) ) (i64.shl (i64.extend_u/i32 - (get_local $$a$1) + (get_local $xh) ) (i64.const 32) ) @@ -21463,20 +21463,20 @@ (set_local $y64 (i64.or (i64.extend_u/i32 - (get_local $$b$0) + (get_local $yl) ) (i64.shl (i64.extend_u/i32 - (get_local $$b$1) + (get_local $yh) ) (i64.const 32) ) ) ) (if - (get_local $$rem) + (get_local $r) (i64.store - (get_local $$rem) + (get_local $r) (i64.rem_u (get_local $x64) (get_local $y64) diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise index 70fd86b33..231c877ce 100644 --- a/test/emcc_hello_world.fromasm.imprecise +++ b/test/emcc_hello_world.fromasm.imprecise @@ -291,13 +291,13 @@ ) (func $_frexp (param $$x f64) (param $$e i32) (result f64) (local $$retval$0 f64) - (local $$x$addr$0 f64) (local $$storemerge i32) - (local $$conv i32) - (local $$call f64) - (local $$2 i32) - (local $$1 i32) + (local $$x$addr$0 f64) (local $$0 i32) + (local $$1 i32) + (local $$2 i32) + (local $$call f64) + (local $$conv i32) (i32.load (i32.const 8) ) @@ -448,15 +448,15 @@ (func $_strerror (param $$e i32) (result i32) (local $label i32) (local $$i$012 i32) - (local $$s$1 i32) - (local $$s$010 i32) (local $$i$111 i32) - (local $$s$0$lcssa i32) - (local $$incdec$ptr$lcssa i32) - (local $$incdec$ptr i32) + (local $$s$010 i32) + (local $$s$1 i32) (local $$i$012$lcssa i32) - (local $$inc i32) + (local $$incdec$ptr i32) + (local $$incdec$ptr$lcssa i32) + (local $$s$0$lcssa i32) (local $$dec i32) + (local $$inc i32) (i32.load (i32.const 8) ) @@ -644,8 +644,8 @@ ) (func $___stdio_close (param $$f i32) (result i32) (local $sp i32) - (local $$vararg_buffer i32) (local $$call1 i32) + (local $$vararg_buffer i32) (set_local $sp (i32.load (i32.const 8) @@ -698,8 +698,8 @@ (func $___stdout_write (param $$f i32) (param $$buf i32) (param $$len i32) (result i32) (local $$vararg_buffer i32) (local $sp i32) - (local $$tio i32) (local $$call3 i32) + (local $$tio i32) (set_local $sp (i32.load (i32.const 8) @@ -798,8 +798,8 @@ (func $___stdio_seek (param $$f i32) (param $$off i32) (param $$whence i32) (result i32) (local $$vararg_buffer i32) (local $sp i32) - (local $$ret i32) (local $$1 i32) + (local $$ret i32) (set_local $sp (i32.load (i32.const 8) @@ -890,15 +890,15 @@ (func $_fflush (param $$f i32) (result i32) (local $$f$addr$022 i32) (local $$retval$0 i32) - (local $$r$1 i32) - (local $$r$021 i32) (local $$cond10 i32) - (local $$r$0$lcssa i32) - (local $$cond19 i32) + (local $$r$021 i32) + (local $$r$1 i32) (local $$call1 i32) - (local $$phitmp i32) - (local $$f$addr$0$19 i32) + (local $$cond19 i32) + (local $$r$0$lcssa i32) (local $$f$addr$0 i32) + (local $$f$addr$0$19 i32) + (local $$phitmp i32) (i32.load (i32.const 8) ) @@ -1088,8 +1088,8 @@ ) (func $_printf (param $$fmt i32) (param $$varargs i32) (result i32) (local $sp i32) - (local $$call i32) (local $$ap i32) + (local $$call i32) (set_local $sp (i32.load (i32.const 8) @@ -1153,34 +1153,34 @@ (return) ) (func $___stdio_write (param $$f i32) (param $$buf i32) (param $$len i32) (result i32) - (local $$iov$0 i32) (local $$cnt$0 i32) + (local $$iov$0 i32) (local $$iovcnt$0 i32) (local $$iov$1 i32) (local $$wbase i32) - (local $sp i32) - (local $$vararg_buffer3 i32) - (local $$vararg_buffer i32) - (local $$iovs i32) (local $$cnt$1 i32) - (local $label i32) - (local $$wpos i32) - (local $$retval$0 i32) - (local $$rem$0 i32) - (local $$iovcnt$1 i32) - (local $$14 i32) + (local $$iovs i32) + (local $$vararg_buffer i32) + (local $$vararg_buffer3 i32) + (local $sp i32) (local $$10 i32) - (local $$fd8 i32) + (local $$14 i32) + (local $$iovcnt$1 i32) + (local $$rem$0 i32) + (local $$retval$0 i32) + (local $$wpos i32) + (local $label i32) (local $$buf31 i32) - (local $$sub26 i32) - (local $$sub$ptr$sub i32) - (local $$iovcnt$0$lcssa58 i32) - (local $$iov$0$lcssa57 i32) - (local $$call7 i32) - (local $$7 i32) - (local $$5 i32) - (local $$11 i32) + (local $$fd8 i32) (local $$0 i32) + (local $$11 i32) + (local $$5 i32) + (local $$7 i32) + (local $$call7 i32) + (local $$iov$0$lcssa57 i32) + (local $$iovcnt$0$lcssa58 i32) + (local $$sub$ptr$sub i32) + (local $$sub26 i32) (set_local $sp (i32.load (i32.const 8) @@ -1591,27 +1591,27 @@ ) (func $_vfprintf (param $$f i32) (param $$fmt i32) (param $$ap i32) (result i32) (local $sp i32) - (local $$internal_buf i32) (local $$ap2 i32) - (local $dest i32) - (local $$ret$1 i32) - (local $$nl_type i32) + (local $$internal_buf i32) (local $$nl_arg i32) - (local $$wpos i32) - (local $$retval$0 i32) - (local $$cond i32) - (local $$call21 i32) - (local $$buf_size i32) - (local $$buf i32) + (local $$nl_type i32) + (local $$ret$1 i32) + (local $dest i32) (local $$4 i32) - (local $stop i32) - (local $$wend i32) - (local $$wbase i32) - (local $$ret$1$ i32) - (local $$and i32) - (local $$7 i32) - (local $$1 i32) + (local $$buf i32) + (local $$buf_size i32) + (local $$call21 i32) + (local $$cond i32) + (local $$retval$0 i32) + (local $$wpos i32) (local $$$call21 i32) + (local $$1 i32) + (local $$7 i32) + (local $$and i32) + (local $$ret$1$ i32) + (local $$wbase i32) + (local $$wend i32) + (local $stop i32) (set_local $sp (i32.load (i32.const 8) @@ -1942,20 +1942,20 @@ (func $___fwritex (param $$s i32) (param $$l i32) (param $$f i32) (result i32) (local $$i$0$lcssa36 i32) (local $$l$addr$0 i32) - (local $$retval$0 i32) (local $$i$0 i32) - (local $$wpos i32) - (local $$s$addr$0 i32) - (local $$i$1 i32) + (local $$retval$0 i32) (local $$9 i32) - (local $label i32) - (local $$4 i32) + (local $$i$1 i32) + (local $$s$addr$0 i32) + (local $$wpos i32) (local $$3 i32) - (local $$wend i32) - (local $$sub i32) - (local $$cmp i32) - (local $$2 i32) + (local $$4 i32) + (local $label i32) (local $$0 i32) + (local $$2 i32) + (local $$cmp i32) + (local $$sub i32) + (local $$wend i32) (i32.load (i32.const 8) ) @@ -2216,12 +2216,12 @@ ) ) (func $___towrite (param $$f i32) (result i32) - (local $$retval$0 i32) (local $$2 i32) - (local $$mode i32) - (local $$conv3 i32) - (local $$conv i32) + (local $$retval$0 i32) (local $$1 i32) + (local $$conv i32) + (local $$conv3 i32) + (local $$mode i32) (i32.load (i32.const 8) ) @@ -2571,37 +2571,37 @@ ) (func $_memchr (param $$src i32) (param $$c i32) (param $$n i32) (result i32) (local $label i32) - (local $$s$2 i32) - (local $$s$128 i32) - (local $$s$0$lcssa60 i32) - (local $$n$addr$3 i32) (local $$n$addr$0$lcssa61 i32) - (local $$w$034 i32) - (local $$s$044 i32) + (local $$n$addr$3 i32) + (local $$s$0$lcssa60 i32) + (local $$s$128 i32) + (local $$s$2 i32) (local $$n$addr$227 i32) - (local $$w$0$lcssa i32) - (local $$s$0$lcssa i32) - (local $$n$addr$133 i32) - (local $$n$addr$1$lcssa i32) + (local $$s$044 i32) + (local $$w$034 i32) (local $$n$addr$043 i32) - (local $$tobool2$lcssa i32) - (local $$sub22 i32) - (local $$n$addr$0$lcssa i32) - (local $$incdec$ptr33 i32) - (local $$incdec$ptr21 i32) - (local $$incdec$ptr i32) + (local $$n$addr$1$lcssa i32) + (local $$n$addr$133 i32) + (local $$s$0$lcssa i32) + (local $$w$0$lcssa i32) (local $$dec i32) - (local $$xor i32) - (local $$w$034$lcssa i32) - (local $$tobool2$41 i32) - (local $$tobool2 i32) - (local $$sub i32) - (local $$n$addr$133$lcssa i32) - (local $$mul i32) - (local $$dec34 i32) - (local $$conv1 i32) - (local $$5 i32) + (local $$incdec$ptr i32) + (local $$incdec$ptr21 i32) + (local $$incdec$ptr33 i32) + (local $$n$addr$0$lcssa i32) + (local $$sub22 i32) + (local $$tobool2$lcssa i32) (local $$1 i32) + (local $$5 i32) + (local $$conv1 i32) + (local $$dec34 i32) + (local $$mul i32) + (local $$n$addr$133$lcssa i32) + (local $$sub i32) + (local $$tobool2 i32) + (local $$tobool2$41 i32) + (local $$w$034$lcssa i32) + (local $$xor i32) (i32.load (i32.const 8) ) @@ -3069,14 +3069,14 @@ ) ) (func $___fflush_unlocked (param $$f i32) (result i32) - (local $label i32) - (local $$wpos i32) (local $$retval$0 i32) - (local $$wbase i32) - (local $$rpos i32) - (local $$rend i32) - (local $$5 i32) + (local $$wpos i32) + (local $label i32) (local $$4 i32) + (local $$5 i32) + (local $$rend i32) + (local $$rpos i32) + (local $$wbase i32) (i32.load (i32.const 8) ) @@ -3229,476 +3229,476 @@ (func $_printf_core (param $$f i32) (param $$fmt i32) (param $$ap i32) (param $$nl_arg i32) (param $$nl_type i32) (result i32) (local $label i32) (local $$p$0 i32) - (local $$w$1 i32) (local $$cnt$1 i32) + (local $$w$1 i32) (local $$fl$1$and219 i32) (local $$arg i32) (local $$incdec$ptr169275 i32) - (local $$l10n$3 i32) - (local $$l10n$0 i32) (local $$cnt$0 i32) + (local $$l10n$0 i32) + (local $$l10n$3 i32) (local $$l$0 i32) (local $$retval$0 i32) (local $$e2$i i32) (local $$incdec$ptr169$lcssa i32) - (local $$sub$ptr$sub i32) - (local $$p$addr$3$i i32) (local $$e$5$ph$i i32) - (local $$incdec$ptr169269 i32) - (local $$buf$i i32) + (local $$p$addr$3$i i32) + (local $$sub$ptr$sub i32) (local $$add$ptr205 i32) - (local $sp i32) - (local $$t$0 i32) - (local $$p$2 i32) - (local $$i$0$lcssa i32) - (local $$a$3539$i i32) + (local $$buf$i i32) + (local $$incdec$ptr169269 i32) (local $$a$3$lcssa$i i32) - (local $$arraydecay208$add$ptr213$i i32) + (local $$a$3539$i i32) + (local $$i$0$lcssa i32) + (local $$p$2 i32) + (local $$t$0 i32) + (local $sp i32) (local $$add$ptr358$i i32) - (local $$z$3538$i i32) - (local $$z$3$lcssa$i i32) - (local $$storemerge$186282 i32) - (local $$prefix$1 i32) - (local $$prefix$0$i i32) - (local $$pl$1 i32) - (local $$pl$0$i i32) - (local $$i$0$lcssa368 i32) - (local $$fl$6 i32) - (local $$fl$4 i32) - (local $$fl$1 i32) - (local $$fl$0284 i32) - (local $$a$9$ph$i i32) + (local $$arraydecay208$add$ptr213$i i32) (local $$a$0 i32) - (local $$z$7$i$lcssa i32) - (local $$y$addr$0$i f64) - (local $$sub$ptr$lhs$cast160$i i32) - (local $$s753$2$i i32) - (local $$s753$0$i i32) - (local $$pl$2 i32) - (local $$p$addr$2$i i32) - (local $$p$5 i32) - (local $$incdec$ptr169276$lcssa i32) - (local $$incdec$ptr169274 i32) - (local $$incdec$ptr169272 i32) - (local $$e$1$i i32) - (local $$a$2 i32) + (local $$a$9$ph$i i32) + (local $$fl$0284 i32) + (local $$fl$1 i32) + (local $$fl$4 i32) + (local $$fl$6 i32) + (local $$i$0$lcssa368 i32) + (local $$pl$0$i i32) + (local $$pl$1 i32) + (local $$prefix$0$i i32) + (local $$prefix$1 i32) + (local $$storemerge$186282 i32) + (local $$z$3$lcssa$i i32) + (local $$z$3538$i i32) (local $$a$1549$i i32) - (local $$z$7$i i32) - (local $$z$2$i i32) - (local $$z$2 i32) - (local $$tobool25 i32) - (local $$t$addr$1$i i32) - (local $$t$addr$0$i i32) - (local $$s668$1$i i32) - (local $$prefix$2 i32) - (local $$p$addr$5501$i i32) - (local $$p$addr$4489$i i32) - (local $$mul$i$240 f64) - (local $$j$2$i i32) - (local $$incdec$ptr292$a$3573$i i32) - (local $$i$2299 i32) - (local $$i$1$lcssa$i i32) - (local $$i$0316 i32) - (local $$fl$3 i32) - (local $$call384 i32) - (local $$and610$pre$phi$iZ2D i32) - (local $$add165$i i32) - (local $$add$ptr671$i i32) - (local $$a$5$lcssa$i i32) - (local $$a$2$ph$i i32) - (local $$a$1 i32) - (local $$249 i32) + (local $$a$2 i32) + (local $$e$1$i i32) + (local $$incdec$ptr169272 i32) + (local $$incdec$ptr169274 i32) + (local $$incdec$ptr169276$lcssa i32) + (local $$p$5 i32) + (local $$p$addr$2$i i32) + (local $$pl$2 i32) + (local $$s753$0$i i32) + (local $$s753$2$i i32) + (local $$sub$ptr$lhs$cast160$i i32) + (local $$y$addr$0$i f64) + (local $$z$7$i$lcssa i32) (local $$$p$i i32) - (local $$z$4$i i32) - (local $$z$0$lcssa i32) - (local $$w$2 i32) - (local $$w$0 i32) - (local $$sub$ptr$rhs$cast345$i i32) - (local $$small$0$i f64) - (local $$s$addr$0$lcssa$i$229 i32) - (local $$s$1$i i32) - (local $$s$0$i i32) - (local $$round377$1$i f64) - (local $$prefix$0 i32) - (local $$pl$0 i32) - (local $$p$1 i32) - (local $$mul80$i$lcssa f64) - (local $$l10n$1 i32) - (local $$incdec$ptr689$i i32) - (local $$incdec$ptr419$i i32) - (local $$incdec$ptr169276301 i32) - (local $$incdec$ptr169271 i32) - (local $$incdec$ptr115$i i32) - (local $$e$4$i i32) - (local $$d$7500$i i32) - (local $$d$5494$i i32) - (local $$d$4$i i32) - (local $$d$1534$i i32) - (local $$d$0545$i i32) - (local $$cond271$i i32) - (local $$arrayidx$i$236 i32) - (local $$argpos$0 i32) - (local $$and219 i32) - (local $$add653$i i32) - (local $$add441 i32) - (local $$a$8$i i32) - (local $$a$5521$i i32) - (local $$7 i32) - (local $$181 f64) - (local $$149 i32) - (local $$148 i32) + (local $$249 i32) + (local $$a$1 i32) + (local $$a$2$ph$i i32) + (local $$a$5$lcssa$i i32) + (local $$add$ptr671$i i32) + (local $$add165$i i32) + (local $$and610$pre$phi$iZ2D i32) + (local $$call384 i32) + (local $$fl$3 i32) + (local $$i$0316 i32) + (local $$i$1$lcssa$i i32) + (local $$i$2299 i32) + (local $$incdec$ptr292$a$3573$i i32) + (local $$j$2$i i32) + (local $$mul$i$240 f64) + (local $$p$addr$4489$i i32) + (local $$p$addr$5501$i i32) + (local $$prefix$2 i32) + (local $$s668$1$i i32) + (local $$t$addr$0$i i32) + (local $$t$addr$1$i i32) + (local $$tobool25 i32) + (local $$z$2 i32) + (local $$z$2$i i32) + (local $$z$7$i i32) (local $$12 i32) - (local $$z$2$i$lcssa i32) - (local $$z$1548$i i32) - (local $$z$1$lcssa$i i32) - (local $$z$0302 i32) - (local $$z$0$i i32) - (local $$y$addr$4$i f64) - (local $$y$addr$2$i f64) - (local $$y$addr$1$i f64) - (local $$ws$1326 i32) - (local $$ws$0317 i32) - (local $$t$1 i32) - (local $$sub256$i i32) - (local $$sub$ptr$sub789$i i32) - (local $$sub$ptr$sub433 i32) - (local $$sub$ptr$rhs$cast$i i32) - (local $$storemerge$191 i32) - (local $$storemerge$186309 i32) - (local $$storemerge i32) - (local $$st$0 i32) - (local $$small$1$i f64) - (local $$retval$0$i i32) - (local $$rem370$i i32) - (local $$p$4365 i32) - (local $$or$i$241 i32) - (local $$mul125$i f64) - (local $$mb i32) - (local $$l10n$2 i32) - (local $$l$2 i32) - (local $$incdec$ptr776$i i32) - (local $$incdec$ptr773$i i32) - (local $$incdec$ptr725$i i32) - (local $$incdec$ptr681$i i32) - (local $$incdec$ptr639$i i32) - (local $$incdec$ptr122$i i32) - (local $$i$3296 i32) - (local $$fl$0310 i32) - (local $$estr$2$i i32) - (local $$estr$1$lcssa$i i32) - (local $$estr$0$i i32) - (local $$d$6488$i i32) - (local $$d$2520$i i32) - (local $$d$2$lcssa$i i32) - (local $$cmp450$lcssa$i i32) - (local $$arrayidx68 i32) - (local $$arrayidx119 i32) - (local $$add$i$239 i32) - (local $$a$6$i i32) - (local $$a$1$lcssa$i i32) - (local $$99 i32) - (local $$9 i32) - (local $$211 i32) - (local $$198 i32) - (local $$140 i32) - (local $$137 i32) - (local $$126 i32) - (local $$$pr477$i i32) + (local $$148 i32) + (local $$149 i32) + (local $$181 f64) + (local $$7 i32) + (local $$a$5521$i i32) + (local $$a$8$i i32) + (local $$add441 i32) + (local $$add653$i i32) + (local $$and219 i32) + (local $$argpos$0 i32) + (local $$arrayidx$i$236 i32) + (local $$cond271$i i32) + (local $$d$0545$i i32) + (local $$d$1534$i i32) + (local $$d$4$i i32) + (local $$d$5494$i i32) + (local $$d$7500$i i32) + (local $$e$4$i i32) + (local $$incdec$ptr115$i i32) + (local $$incdec$ptr169271 i32) + (local $$incdec$ptr169276301 i32) + (local $$incdec$ptr419$i i32) + (local $$incdec$ptr689$i i32) + (local $$l10n$1 i32) + (local $$mul80$i$lcssa f64) + (local $$p$1 i32) + (local $$pl$0 i32) + (local $$prefix$0 i32) + (local $$round377$1$i f64) + (local $$s$0$i i32) + (local $$s$1$i i32) + (local $$s$addr$0$lcssa$i$229 i32) + (local $$small$0$i f64) + (local $$sub$ptr$rhs$cast345$i i32) + (local $$w$0 i32) + (local $$w$2 i32) + (local $$z$0$lcssa i32) + (local $$z$4$i i32) (local $$$396$i f64) - (local $$z$7$ph$i i32) - (local $$y$addr$3$i f64) - (local $$wc i32) - (local $$tobool357 i32) - (local $$sub806$i i32) - (local $$sub735$i i32) - (local $$sub$ptr$sub650$pn$i i32) - (local $$sub$ptr$sub433$p$5 i32) - (local $$sub$ptr$sub172$i i32) - (local $$sub$ptr$lhs$cast694$i i32) - (local $$sub$ptr$lhs$cast317 i32) - (local $$st$0$lcssa415 i32) - (local $$s753$1496$i i32) - (local $$s715$0484$i i32) - (local $$s715$0$lcssa$i i32) - (local $$s668$0492$i i32) - (local $$s$addr$06$i$221 i32) - (local $$s$addr$06$i i32) - (local $$round$0481$i f64) - (local $$re$1482$i i32) - (local $$prefix$0$add$ptr65$i i32) - (local $$pl$1$i i32) - (local $$p$addr$5$lcssa$i i32) - (local $$p$addr$4$lcssa$i i32) - (local $$or i32) - (local $$mul80$i f64) - (local $$mul513$i i32) - (local $$mul431$i i32) - (local $$mul367$i i32) - (local $$mul322$i i32) - (local $$mul286$i$lcssa i32) - (local $$mul286$i i32) - (local $$l$1315 i32) - (local $$j$1513$i i32) - (local $$j$0527$i i32) - (local $$isdigittmp8$i$200 i32) - (local $$isdigittmp8$i i32) - (local $$incdec$ptr698$i$lcssa i32) - (local $$incdec$ptr698$i i32) - (local $$incdec$ptr647$i i32) - (local $$incdec$ptr62 i32) - (local $$incdec$ptr292$a$3$i i32) - (local $$incdec$ptr23 i32) - (local $$incdec$ptr217$i$lcssa i32) - (local $$incdec$ptr217$i i32) - (local $$incdec$ptr169 i32) - (local $$incdec$ptr106$i i32) - (local $$incdec$ptr$i$225 i32) - (local $$incdec$ptr$i$212$lcssa i32) - (local $$incdec$ptr$i$212 i32) - (local $$incdec$ptr$i$204 i32) - (local $$incdec$ptr$i i32) - (local $$inc500$i i32) - (local $$inc488 i32) - (local $$inc438$i i32) - (local $$inc$i i32) - (local $$i$3512$i i32) - (local $$i$2516$i i32) - (local $$i$2299$lcssa i32) - (local $$i$1526$i i32) - (local $$i$1325 i32) - (local $$i$07$i$201 i32) - (local $$i$07$i i32) - (local $$i$0530$i i32) - (local $$estr$1507$i i32) - (local $$e$2517$i i32) - (local $$e$0531$i i32) - (local $$conv48311 i32) - (local $$conv242$i$lcssa i32) - (local $$conv207 i32) - (local $$conv174$lcssa i32) - (local $$conv174 i32) - (local $$cond233$i i32) - (local $$cmp38$i i32) - (local $$cmp37 i32) - (local $$cmp184 i32) - (local $$carry262$0535$i i32) - (local $$carry$0544$i i32) - (local $$call356 i32) - (local $$arrayidx31 i32) - (local $$arrayidx114 i32) - (local $$and309$fl$4 i32) - (local $$add67$i i32) - (local $$add412 i32) - (local $$add395 i32) - (local $$add313$i i32) - (local $$add275$i i32) - (local $$add$ptr43$arrayidx31 i32) - (local $$add$ptr340 i32) - (local $$add$ptr311$z$4$i i32) - (local $$add$ptr i32) - (local $$add$i$lcssa i32) - (local $$add$i$203 i32) - (local $$add$i i32) - (local $$49 i32) - (local $$29 i32) - (local $$255 i32) - (local $$243 i32) - (local $$237 i32) - (local $$231 i32) - (local $$223 i32) - (local $$219 i32) - (local $$210 i32) - (local $$194 i32) - (local $$143 i32) - (local $$142 i32) - (local $$129 i32) - (local $$101 i32) - (local $$10 i32) - (local $$1 i32) - (local $$$sub562$i i32) - (local $$$sub514$i i32) - (local $$$pre566$i i32) - (local $$$pr$i i32) - (local $$$p$inc468$i i32) + (local $$$pr477$i i32) + (local $$126 i32) + (local $$137 i32) + (local $$140 i32) + (local $$198 i32) + (local $$211 i32) + (local $$9 i32) + (local $$99 i32) + (local $$a$1$lcssa$i i32) + (local $$a$6$i i32) + (local $$add$i$239 i32) + (local $$arrayidx119 i32) + (local $$arrayidx68 i32) + (local $$cmp450$lcssa$i i32) + (local $$d$2$lcssa$i i32) + (local $$d$2520$i i32) + (local $$d$6488$i i32) + (local $$estr$0$i i32) + (local $$estr$1$lcssa$i i32) + (local $$estr$2$i i32) + (local $$fl$0310 i32) + (local $$i$3296 i32) + (local $$incdec$ptr122$i i32) + (local $$incdec$ptr639$i i32) + (local $$incdec$ptr681$i i32) + (local $$incdec$ptr725$i i32) + (local $$incdec$ptr773$i i32) + (local $$incdec$ptr776$i i32) + (local $$l$2 i32) + (local $$l10n$2 i32) + (local $$mb i32) + (local $$mul125$i f64) + (local $$or$i$241 i32) + (local $$p$4365 i32) + (local $$rem370$i i32) + (local $$retval$0$i i32) + (local $$small$1$i f64) + (local $$st$0 i32) + (local $$storemerge i32) + (local $$storemerge$186309 i32) + (local $$storemerge$191 i32) + (local $$sub$ptr$rhs$cast$i i32) + (local $$sub$ptr$sub433 i32) + (local $$sub$ptr$sub789$i i32) + (local $$sub256$i i32) + (local $$t$1 i32) + (local $$ws$0317 i32) + (local $$ws$1326 i32) + (local $$y$addr$1$i f64) + (local $$y$addr$2$i f64) + (local $$y$addr$4$i f64) + (local $$z$0$i i32) + (local $$z$0302 i32) + (local $$z$1$lcssa$i i32) + (local $$z$1548$i i32) + (local $$z$2$i$lcssa i32) (local $$$lcssa i32) - (local $$z$7$add$ptr742$i i32) - (local $$z$1 i32) - (local $$tobool781$i i32) - (local $$tobool56$i i32) - (local $$tobool37$i i32) - (local $$tobool341$i i32) - (local $$tobool135$i i32) - (local $$sub97$i i32) - (local $$sub74$i i32) - (local $$sub626$le$i i32) - (local $$sub562$i i32) - (local $$sub514$i i32) - (local $$sub409$i i32) - (local $$sub343$i i32) - (local $$sub281$i i32) - (local $$sub264$i i32) - (local $$sub203$i i32) - (local $$sub164 i32) - (local $$sub$ptr$sub363 i32) - (local $$sub$ptr$sub175$i i32) - (local $$sub$ptr$sub159$i i32) - (local $$sub$ptr$sub153$i i32) - (local $$sub$ptr$sub145$i i32) - (local $$shr285$i i32) - (local $$s35$0$i i32) - (local $$s$1$i$lcssa i32) - (local $$r$0$a$9$i i32) - (local $$p$addr$2$$sub562399$i i32) - (local $$p$addr$2$$sub514398$i i32) - (local $$p$3 i32) - (local $$p$2$add322 i32) - (local $$or$cond384 i32) - (local $$or$cond192 i32) - (local $$notrhs$i i32) - (local $$mul499$i i32) - (local $$mul437$i i32) - (local $$mul335$i i32) - (local $$mul328$i i32) - (local $$mul220$i f64) - (local $$lor$ext$i i32) - (local $$l10n$0$lcssa i32) - (local $$l$0$i i32) - (local $$j$0$i i32) - (local $$j$0$524$i i32) - (local $$isdigittmp189 i32) - (local $$isdigittmp187 i32) - (local $$isdigittmp$i$206 i32) - (local $$isdigittmp$i i32) - (local $$isdigittmp$5$i$198 i32) - (local $$isdigittmp$5$i i32) - (local $$isdigittmp$ i32) - (local $$isdigittmp i32) - (local $$incdec$ptr808$i i32) - (local $$incdec$ptr734$i i32) - (local $$incdec$ptr423$i i32) - (local $$incdec$ptr410 i32) - (local $$incdec$ptr383 i32) - (local $$incdec$ptr292$i i32) - (local $$incdec$ptr292$570$i i32) - (local $$incdec$ptr288$i i32) - (local $$incdec$ptr246$i i32) - (local $$incdec$ptr169271$lcssa414 i32) - (local $$incdec$ptr$i$lcssa i32) - (local $$incdec$ptr i32) - (local $$inc425$i i32) - (local $$inc i32) - (local $$ebuf0$i i32) - (local $$div384$i i32) - (local $$dec78$i i32) - (local $$d$0$i i32) - (local $$d$0$542$i i32) - (local $$conv48$307 i32) - (local $$conv48 i32) - (local $$conv216$i i32) - (local $$conv116$i i32) - (local $$cond800$i i32) - (local $$cond732$i i32) - (local $$cond629$i i32) - (local $$cond43$i i32) - (local $$cond426 i32) - (local $$cond304$i i32) - (local $$cond245 i32) - (local $$cond100$i i32) - (local $$cond$i i32) - (local $$cnt$1$lcssa i32) - (local $$cmp94$i i32) - (local $$cmp614$i i32) - (local $$cmp374$i i32) - (local $$cmp338$i i32) - (local $$cmp299$i i32) - (local $$call411 i32) - (local $$buf i32) - (local $$big$i i32) - (local $$arrayidx453$i i32) - (local $$arrayidx370 i32) - (local $$arrayidx251$i i32) - (local $$and62$i i32) - (local $$and483$i i32) - (local $$and309 i32) - (local $$and294 i32) - (local $$and282$i i32) - (local $$and249 i32) - (local $$and214 i32) - (local $$and12$i i32) - (local $$add620$i i32) - (local $$add414$i i32) - (local $$add355$i i32) - (local $$add322 i32) - (local $$add269$p$0 i32) - (local $$add269 i32) - (local $$add163$i i32) - (local $$add154$i i32) - (local $$add$ptr742$i i32) - (local $$add$ptr65$i i32) - (local $$add$ptr442$z$3$i i32) - (local $$add$ptr442$i i32) - (local $$add$ptr43 i32) - (local $$add$ptr359 i32) - (local $$add$ptr311$i i32) - (local $$add$ptr213$i i32) - (local $$95 i32) - (local $$92 i32) - (local $$90 i32) - (local $$86 i32) - (local $$76 i32) - (local $$65 i32) - (local $$60 i32) - (local $$59 i32) - (local $$56 i32) - (local $$54 i32) - (local $$52 i32) - (local $$5 i32) - (local $$48 i32) - (local $$47 i32) - (local $$38 i32) - (local $$36 i32) - (local $$32 i32) - (local $$28 i32) - (local $$27 i32) - (local $$267 i32) - (local $$259 i32) - (local $$242 i32) - (local $$239 i32) - (local $$234 i32) - (local $$228 i32) - (local $$225 i32) - (local $$217 i32) - (local $$216 i32) - (local $$215 i32) - (local $$201 i32) - (local $$200 i32) - (local $$193 i32) - (local $$187 i32) - (local $$18 i32) - (local $$179 i32) - (local $$177 i32) - (local $$172 i32) - (local $$170 i32) - (local $$169 i32) - (local $$163 i32) - (local $$161 i32) - (local $$16 i32) - (local $$159 i32) - (local $$151 i32) - (local $$144 i32) - (local $$135 i32) - (local $$131 i32) - (local $$130 i32) - (local $$121 i32) - (local $$118 i32) - (local $$116 i32) - (local $$107 i32) - (local $$103 i32) - (local $$102 i32) - (local $$0 i32) - (local $$$l10n$0 i32) - (local $$$$i i32) + (local $$$p$inc468$i i32) + (local $$$pr$i i32) + (local $$$pre566$i i32) + (local $$$sub514$i i32) + (local $$$sub562$i i32) + (local $$1 i32) + (local $$10 i32) + (local $$101 i32) + (local $$129 i32) + (local $$142 i32) + (local $$143 i32) + (local $$194 i32) + (local $$210 i32) + (local $$219 i32) + (local $$223 i32) + (local $$231 i32) + (local $$237 i32) + (local $$243 i32) + (local $$255 i32) + (local $$29 i32) + (local $$49 i32) + (local $$add$i i32) + (local $$add$i$203 i32) + (local $$add$i$lcssa i32) + (local $$add$ptr i32) + (local $$add$ptr311$z$4$i i32) + (local $$add$ptr340 i32) + (local $$add$ptr43$arrayidx31 i32) + (local $$add275$i i32) + (local $$add313$i i32) + (local $$add395 i32) + (local $$add412 i32) + (local $$add67$i i32) + (local $$and309$fl$4 i32) + (local $$arrayidx114 i32) + (local $$arrayidx31 i32) + (local $$call356 i32) + (local $$carry$0544$i i32) + (local $$carry262$0535$i i32) + (local $$cmp184 i32) + (local $$cmp37 i32) + (local $$cmp38$i i32) + (local $$cond233$i i32) + (local $$conv174 i32) + (local $$conv174$lcssa i32) + (local $$conv207 i32) + (local $$conv242$i$lcssa i32) + (local $$conv48311 i32) + (local $$e$0531$i i32) + (local $$e$2517$i i32) + (local $$estr$1507$i i32) + (local $$i$0530$i i32) + (local $$i$07$i i32) + (local $$i$07$i$201 i32) + (local $$i$1325 i32) + (local $$i$1526$i i32) + (local $$i$2299$lcssa i32) + (local $$i$2516$i i32) + (local $$i$3512$i i32) + (local $$inc$i i32) + (local $$inc438$i i32) + (local $$inc488 i32) + (local $$inc500$i i32) + (local $$incdec$ptr$i i32) + (local $$incdec$ptr$i$204 i32) + (local $$incdec$ptr$i$212 i32) + (local $$incdec$ptr$i$212$lcssa i32) + (local $$incdec$ptr$i$225 i32) + (local $$incdec$ptr106$i i32) + (local $$incdec$ptr169 i32) + (local $$incdec$ptr217$i i32) + (local $$incdec$ptr217$i$lcssa i32) + (local $$incdec$ptr23 i32) + (local $$incdec$ptr292$a$3$i i32) + (local $$incdec$ptr62 i32) + (local $$incdec$ptr647$i i32) + (local $$incdec$ptr698$i i32) + (local $$incdec$ptr698$i$lcssa i32) + (local $$isdigittmp8$i i32) + (local $$isdigittmp8$i$200 i32) + (local $$j$0527$i i32) + (local $$j$1513$i i32) + (local $$l$1315 i32) + (local $$mul286$i i32) + (local $$mul286$i$lcssa i32) + (local $$mul322$i i32) + (local $$mul367$i i32) + (local $$mul431$i i32) + (local $$mul513$i i32) + (local $$mul80$i f64) + (local $$or i32) + (local $$p$addr$4$lcssa$i i32) + (local $$p$addr$5$lcssa$i i32) + (local $$pl$1$i i32) + (local $$prefix$0$add$ptr65$i i32) + (local $$re$1482$i i32) + (local $$round$0481$i f64) + (local $$s$addr$06$i i32) + (local $$s$addr$06$i$221 i32) + (local $$s668$0492$i i32) + (local $$s715$0$lcssa$i i32) + (local $$s715$0484$i i32) + (local $$s753$1496$i i32) + (local $$st$0$lcssa415 i32) + (local $$sub$ptr$lhs$cast317 i32) + (local $$sub$ptr$lhs$cast694$i i32) + (local $$sub$ptr$sub172$i i32) + (local $$sub$ptr$sub433$p$5 i32) + (local $$sub$ptr$sub650$pn$i i32) + (local $$sub735$i i32) + (local $$sub806$i i32) + (local $$tobool357 i32) + (local $$wc i32) + (local $$y$addr$3$i f64) + (local $$z$7$ph$i i32) (local $$$ i32) + (local $$$$i i32) + (local $$$l10n$0 i32) + (local $$0 i32) + (local $$102 i32) + (local $$103 i32) + (local $$107 i32) + (local $$116 i32) + (local $$118 i32) + (local $$121 i32) + (local $$130 i32) + (local $$131 i32) + (local $$135 i32) + (local $$144 i32) + (local $$151 i32) + (local $$159 i32) + (local $$16 i32) + (local $$161 i32) + (local $$163 i32) + (local $$169 i32) + (local $$170 i32) + (local $$172 i32) + (local $$177 i32) + (local $$179 i32) + (local $$18 i32) + (local $$187 i32) + (local $$193 i32) + (local $$200 i32) + (local $$201 i32) + (local $$215 i32) + (local $$216 i32) + (local $$217 i32) + (local $$225 i32) + (local $$228 i32) + (local $$234 i32) + (local $$239 i32) + (local $$242 i32) + (local $$259 i32) + (local $$267 i32) + (local $$27 i32) + (local $$28 i32) + (local $$32 i32) + (local $$36 i32) + (local $$38 i32) + (local $$47 i32) + (local $$48 i32) + (local $$5 i32) + (local $$52 i32) + (local $$54 i32) + (local $$56 i32) + (local $$59 i32) + (local $$60 i32) + (local $$65 i32) + (local $$76 i32) + (local $$86 i32) + (local $$90 i32) + (local $$92 i32) + (local $$95 i32) + (local $$add$ptr213$i i32) + (local $$add$ptr311$i i32) + (local $$add$ptr359 i32) + (local $$add$ptr43 i32) + (local $$add$ptr442$i i32) + (local $$add$ptr442$z$3$i i32) + (local $$add$ptr65$i i32) + (local $$add$ptr742$i i32) + (local $$add154$i i32) + (local $$add163$i i32) + (local $$add269 i32) + (local $$add269$p$0 i32) + (local $$add322 i32) + (local $$add355$i i32) + (local $$add414$i i32) + (local $$add620$i i32) + (local $$and12$i i32) + (local $$and214 i32) + (local $$and249 i32) + (local $$and282$i i32) + (local $$and294 i32) + (local $$and309 i32) + (local $$and483$i i32) + (local $$and62$i i32) + (local $$arrayidx251$i i32) + (local $$arrayidx370 i32) + (local $$arrayidx453$i i32) + (local $$big$i i32) + (local $$buf i32) + (local $$call411 i32) + (local $$cmp299$i i32) + (local $$cmp338$i i32) + (local $$cmp374$i i32) + (local $$cmp614$i i32) + (local $$cmp94$i i32) + (local $$cnt$1$lcssa i32) + (local $$cond$i i32) + (local $$cond100$i i32) + (local $$cond245 i32) + (local $$cond304$i i32) + (local $$cond426 i32) + (local $$cond43$i i32) + (local $$cond629$i i32) + (local $$cond732$i i32) + (local $$cond800$i i32) + (local $$conv116$i i32) + (local $$conv216$i i32) + (local $$conv48 i32) + (local $$conv48$307 i32) + (local $$d$0$542$i i32) + (local $$d$0$i i32) + (local $$dec78$i i32) + (local $$div384$i i32) + (local $$ebuf0$i i32) + (local $$inc i32) + (local $$inc425$i i32) + (local $$incdec$ptr i32) + (local $$incdec$ptr$i$lcssa i32) + (local $$incdec$ptr169271$lcssa414 i32) + (local $$incdec$ptr246$i i32) + (local $$incdec$ptr288$i i32) + (local $$incdec$ptr292$570$i i32) + (local $$incdec$ptr292$i i32) + (local $$incdec$ptr383 i32) + (local $$incdec$ptr410 i32) + (local $$incdec$ptr423$i i32) + (local $$incdec$ptr734$i i32) + (local $$incdec$ptr808$i i32) + (local $$isdigittmp i32) + (local $$isdigittmp$ i32) + (local $$isdigittmp$5$i i32) + (local $$isdigittmp$5$i$198 i32) + (local $$isdigittmp$i i32) + (local $$isdigittmp$i$206 i32) + (local $$isdigittmp187 i32) + (local $$isdigittmp189 i32) + (local $$j$0$524$i i32) + (local $$j$0$i i32) + (local $$l$0$i i32) + (local $$l10n$0$lcssa i32) + (local $$lor$ext$i i32) + (local $$mul220$i f64) + (local $$mul328$i i32) + (local $$mul335$i i32) + (local $$mul437$i i32) + (local $$mul499$i i32) + (local $$notrhs$i i32) + (local $$or$cond192 i32) + (local $$or$cond384 i32) + (local $$p$2$add322 i32) + (local $$p$3 i32) + (local $$p$addr$2$$sub514398$i i32) + (local $$p$addr$2$$sub562399$i i32) + (local $$r$0$a$9$i i32) + (local $$s$1$i$lcssa i32) + (local $$s35$0$i i32) + (local $$shr285$i i32) + (local $$sub$ptr$sub145$i i32) + (local $$sub$ptr$sub153$i i32) + (local $$sub$ptr$sub159$i i32) + (local $$sub$ptr$sub175$i i32) + (local $$sub$ptr$sub363 i32) + (local $$sub164 i32) + (local $$sub203$i i32) + (local $$sub264$i i32) + (local $$sub281$i i32) + (local $$sub343$i i32) + (local $$sub409$i i32) + (local $$sub514$i i32) + (local $$sub562$i i32) + (local $$sub626$le$i i32) + (local $$sub74$i i32) + (local $$sub97$i i32) + (local $$tobool135$i i32) + (local $$tobool341$i i32) + (local $$tobool37$i i32) + (local $$tobool56$i i32) + (local $$tobool781$i i32) + (local $$z$1 i32) + (local $$z$7$add$ptr742$i i32) (set_local $sp (i32.load (i32.const 8) @@ -10335,38 +10335,38 @@ ) (func $_pop_arg_336 (param $$arg i32) (param $$type i32) (param $$ap i32) (local $$13 i32) - (local $$93 i32) - (local $$92 i32) - (local $$91 i32) - (local $$82 i32) - (local $$81 i32) - (local $$79 i32) - (local $$78 i32) - (local $$77 i32) - (local $$68 i32) - (local $$67 i32) - (local $$66 i32) - (local $$6 i32) - (local $$57 i32) - (local $$56 i32) - (local $$54 i32) - (local $$53 i32) - (local $$52 i32) - (local $$5 i32) - (local $$43 i32) - (local $$42 i32) - (local $$39 i32) - (local $$37 i32) - (local $$36 i32) - (local $$27 i32) - (local $$26 i32) - (local $$25 i32) - (local $$16 i32) - (local $$12 i32) - (local $$110 f64) - (local $$109 i32) - (local $$103 f64) (local $$102 i32) + (local $$103 f64) + (local $$109 i32) + (local $$110 f64) + (local $$12 i32) + (local $$16 i32) + (local $$25 i32) + (local $$26 i32) + (local $$27 i32) + (local $$36 i32) + (local $$37 i32) + (local $$39 i32) + (local $$42 i32) + (local $$43 i32) + (local $$5 i32) + (local $$52 i32) + (local $$53 i32) + (local $$54 i32) + (local $$56 i32) + (local $$57 i32) + (local $$6 i32) + (local $$66 i32) + (local $$67 i32) + (local $$68 i32) + (local $$77 i32) + (local $$78 i32) + (local $$79 i32) + (local $$81 i32) + (local $$82 i32) + (local $$91 i32) + (local $$92 i32) + (local $$93 i32) (i32.load (i32.const 8) ) @@ -10957,21 +10957,21 @@ ) (func $_fmt_u (param $$0 i32) (param $$1 i32) (param $$s i32) (result i32) (local $$8 i32) - (local $$y$010 i32) (local $$7 i32) - (local $$x$addr$0$lcssa$off0 i32) + (local $$y$010 i32) (local $$s$addr$0$lcssa i32) - (local $$s$addr$19 i32) - (local $$s$addr$1$lcssa i32) - (local $$s$addr$013 i32) - (local $$incdec$ptr7 i32) - (local $$incdec$ptr i32) - (local $$14 i32) + (local $$x$addr$0$lcssa$off0 i32) (local $$13 i32) - (local $$incdec$ptr$lcssa i32) - (local $$div9 i32) - (local $$9 i32) + (local $$14 i32) + (local $$incdec$ptr i32) + (local $$incdec$ptr7 i32) + (local $$s$addr$013 i32) + (local $$s$addr$1$lcssa i32) + (local $$s$addr$19 i32) (local $$21 i32) + (local $$9 i32) + (local $$div9 i32) + (local $$incdec$ptr$lcssa i32) (i32.load (i32.const 8) ) @@ -11175,20 +11175,20 @@ ) (func $_pad (param $$f i32) (param $$c i32) (param $$w i32) (param $$l i32) (param $$fl i32) (local $$sub i32) - (local $$pad i32) (local $$2 i32) - (local $sp i32) - (local $$tobool$i18 i32) - (local $$tobool$i$16 i32) - (local $$tobool$i i32) - (local $$l$addr$017 i32) - (local $$l$addr$0$lcssa21 i32) + (local $$pad i32) (local $$4 i32) - (local $$sub5 i32) - (local $$cond i32) - (local $$3 i32) - (local $$1 i32) + (local $$l$addr$0$lcssa21 i32) + (local $$l$addr$017 i32) + (local $$tobool$i i32) + (local $$tobool$i$16 i32) + (local $$tobool$i18 i32) + (local $sp i32) (local $$0 i32) + (local $$1 i32) + (local $$3 i32) + (local $$cond i32) + (local $$sub5 i32) (set_local $sp (i32.load (i32.const 8) @@ -11383,473 +11383,473 @@ (local $$nb$0 i32) (local $$add$ptr$i$161 i32) (local $$v$4$lcssa$i i32) - (local $$v$0$i$lcssa i32) - (local $$tbase$796$i i32) (local $$add$ptr16$i$i i32) + (local $$tbase$796$i i32) + (local $$v$0$i$lcssa i32) (local $$and145 i32) (local $$rsize$4$lcssa$i i32) - (local $$R$3$i$i i32) - (local $$R$3$i$171 i32) (local $$R$3$i i32) + (local $$R$3$i$171 i32) + (local $$R$3$i$i i32) (local $$tsize$795$i i32) - (local $$qsize$0$i$i i32) (local $$cond i32) - (local $$sub$ptr$sub$i$i i32) + (local $$qsize$0$i$i i32) (local $$ssize$2$ph$i i32) - (local $$t$48$i i32) - (local $$t$0$i$151 i32) - (local $$ssize$0$i i32) - (local $$I57$0$i$i i32) - (local $$I316$0$i i32) + (local $$sub$ptr$sub$i$i i32) (local $$I252$0$i$i i32) - (local $$rsize$0$i$lcssa i32) - (local $$idx$0$i i32) - (local $$R$1$i$i i32) - (local $$R$1$i$168 i32) - (local $$R$1$i i32) + (local $$I316$0$i i32) + (local $$I57$0$i$i i32) + (local $$ssize$0$i i32) + (local $$t$0$i$151 i32) + (local $$t$48$i i32) (local $$149 i32) - (local $$sp$1107$i i32) - (local $$sp$0108$i i32) - (local $$sp$0$i$i$i i32) - (local $$sp$0$i$i i32) - (local $$rsize$49$i i32) - (local $$cond13$i$i i32) - (local $$and11$i i32) - (local $$add$ptr14$i$i i32) - (local $$T$0$i$i i32) - (local $$T$0$i$58$i i32) - (local $$T$0$i i32) - (local $$95 i32) - (local $$63 i32) - (local $$26 i32) - (local $$154 i32) - (local $$150 i32) + (local $$R$1$i i32) + (local $$R$1$i$168 i32) + (local $$R$1$i$i i32) + (local $$idx$0$i i32) + (local $$rsize$0$i$lcssa i32) (local $$148 i32) - (local $$v$410$i i32) - (local $$v$3$i i32) - (local $$sub18$i$i i32) - (local $$sub160 i32) - (local $$shr i32) - (local $$rsize$0$i i32) - (local $$cond4$i i32) - (local $$br$2$ph$i i32) - (local $$arrayidx289$i i32) - (local $$arrayidx223$i$i i32) - (local $$arrayidx196$i i32) - (local $$arrayidx103 i32) - (local $$arrayidx$i$20$i i32) - (local $$add$ptr4$i$37$i i32) - (local $$RP$1$i$i i32) - (local $$RP$1$i$167 i32) - (local $$RP$1$i i32) - (local $$46 i32) - (local $$3 i32) - (local $$14 i32) + (local $$150 i32) + (local $$154 i32) + (local $$26 i32) + (local $$63 i32) + (local $$95 i32) + (local $$T$0$i i32) + (local $$T$0$i$58$i i32) + (local $$T$0$i$i i32) + (local $$add$ptr14$i$i i32) + (local $$and11$i i32) + (local $$cond13$i$i i32) + (local $$rsize$49$i i32) + (local $$sp$0$i$i i32) + (local $$sp$0$i$i$i i32) + (local $$sp$0108$i i32) + (local $$sp$1107$i i32) (local $$10 i32) - (local $$v$1$i i32) - (local $$v$0$i i32) - (local $$t$4$v$4$i i32) - (local $$t$4$ph$i i32) - (local $$t$2$i i32) - (local $$t$0$i i32) - (local $$sub91 i32) - (local $$sub101$rsize$4$i i32) - (local $$ssize$5$i i32) - (local $$sizebits$0$i i32) - (local $$shr3 i32) - (local $$rsize$3$i i32) - (local $$rsize$1$i i32) - (local $$rsize$0$i$152 i32) - (local $$i$01$i$i i32) - (local $$call83$i i32) - (local $$call37$i i32) - (local $$call131$i i32) - (local $$call$i$i i32) - (local $$arrayidx91$i$i i32) - (local $$arrayidx355$i i32) - (local $$arrayidx287$i$i i32) - (local $$arrayidx$i$i i32) - (local $$and80$i i32) - (local $$add26$i$i i32) - (local $$add$ptr227$i i32) - (local $$add$ptr$i i32) - (local $$T$0$i$lcssa i32) - (local $$T$0$i$i$lcssa i32) - (local $$T$0$i$58$i$lcssa i32) - (local $$K373$0$i i32) - (local $$K305$0$i$i i32) - (local $$K105$0$i$i i32) - (local $$F290$0$i i32) - (local $$F224$0$i$i i32) - (local $$F197$0$i i32) - (local $$F104$0 i32) - (local $$F$0$i$i i32) - (local $$94 i32) - (local $$9 i32) - (local $$79 i32) - (local $$78 i32) - (local $$64 i32) - (local $$42 i32) - (local $$41 i32) - (local $$27 i32) - (local $$2 i32) - (local $$170 i32) - (local $$169 i32) - (local $$155 i32) - (local $$147 i32) + (local $$14 i32) + (local $$3 i32) + (local $$46 i32) + (local $$RP$1$i i32) + (local $$RP$1$i$167 i32) + (local $$RP$1$i$i i32) + (local $$add$ptr4$i$37$i i32) + (local $$arrayidx$i$20$i i32) + (local $$arrayidx103 i32) + (local $$arrayidx196$i i32) + (local $$arrayidx223$i$i i32) + (local $$arrayidx289$i i32) + (local $$br$2$ph$i i32) + (local $$cond4$i i32) + (local $$rsize$0$i i32) + (local $$shr i32) + (local $$sub160 i32) + (local $$sub18$i$i i32) + (local $$v$3$i i32) + (local $$v$410$i i32) (local $$13 i32) - (local $$v$0$i$153 i32) - (local $$sub5$i$i$i i32) - (local $$sub5$i$i i32) - (local $$sub5$i$27$i i32) - (local $$sub33$i i32) - (local $$sub$i$138 i32) - (local $$sp$1107$i$lcssa i32) - (local $$shr58$i$i i32) - (local $$shr318$i i32) - (local $$shr283$i i32) - (local $$shr253$i$i i32) - (local $$shr214$i$i i32) - (local $$shr$i$i i32) - (local $$shr$i$45$i i32) - (local $$shr$i$139 i32) - (local $$rst$1$i i32) - (local $$rst$0$i i32) - (local $$p$0$i$i i32) - (local $$oldfirst$0$i$i i32) - (local $$head$i$17$i i32) - (local $$fd68$pre$phi$i$iZ2D i32) - (local $$cond$i$i$i i32) - (local $$cond$i$i i32) - (local $$cond$i$25$i i32) - (local $$child$i$i i32) - (local $$call132$i i32) - (local $$arrayidx66 i32) - (local $$arrayidx394$i$lcssa i32) - (local $$arrayidx325$i$i$lcssa i32) - (local $$arrayidx126$i$i$lcssa i32) - (local $$arrayidx i32) - (local $$and73$i i32) - (local $$and64$i i32) - (local $$and46 i32) - (local $$and37$i$i i32) - (local $$and3$i i32) - (local $$and104$i i32) - (local $$add8 i32) - (local $$add64 i32) - (local $$add54$i i32) - (local $$add150$i i32) - (local $$add$ptr95 i32) - (local $$add$ptr4$i$i$i i32) - (local $$add$ptr4$i$i i32) - (local $$add$ptr4$i$26$i i32) - (local $$add$ptr24$i$i i32) - (local $$add$ptr166 i32) - (local $$add$ptr$i$i$i$lcssa i32) - (local $$RP$1$i$lcssa i32) - (local $$RP$1$i$i$lcssa i32) - (local $$RP$1$i$167$lcssa i32) - (local $$98 i32) - (local $$91 i32) - (local $$65 i32) - (local $$62 i32) - (local $$55 i32) - (local $$54 i32) - (local $$28 i32) - (local $$25 i32) - (local $$208 i32) - (local $$204 i32) - (local $$20 i32) - (local $$19 i32) - (local $$182 i32) - (local $$156 i32) - (local $$108 i32) - (local $$104 i32) - (local $$0 i32) - (local $$$pre$phiZ2D i32) - (local $$$pre$phi$iZ2D i32) - (local $$$pre$phi$i$iZ2D i32) - (local $$$pre$phi$i$57$iZ2D i32) + (local $$147 i32) + (local $$155 i32) + (local $$169 i32) + (local $$170 i32) + (local $$2 i32) + (local $$27 i32) + (local $$41 i32) + (local $$42 i32) + (local $$64 i32) + (local $$78 i32) + (local $$79 i32) + (local $$9 i32) + (local $$94 i32) + (local $$F$0$i$i i32) + (local $$F104$0 i32) + (local $$F197$0$i i32) + (local $$F224$0$i$i i32) + (local $$F290$0$i i32) + (local $$K105$0$i$i i32) + (local $$K305$0$i$i i32) + (local $$K373$0$i i32) + (local $$T$0$i$58$i$lcssa i32) + (local $$T$0$i$i$lcssa i32) + (local $$T$0$i$lcssa i32) + (local $$add$ptr$i i32) + (local $$add$ptr227$i i32) + (local $$add26$i$i i32) + (local $$and80$i i32) + (local $$arrayidx$i$i i32) + (local $$arrayidx287$i$i i32) + (local $$arrayidx355$i i32) + (local $$arrayidx91$i$i i32) + (local $$call$i$i i32) + (local $$call131$i i32) + (local $$call37$i i32) + (local $$call83$i i32) + (local $$i$01$i$i i32) + (local $$rsize$0$i$152 i32) + (local $$rsize$1$i i32) + (local $$rsize$3$i i32) + (local $$shr3 i32) + (local $$sizebits$0$i i32) + (local $$ssize$5$i i32) + (local $$sub101$rsize$4$i i32) + (local $$sub91 i32) + (local $$t$0$i i32) + (local $$t$2$i i32) + (local $$t$4$ph$i i32) + (local $$t$4$v$4$i i32) + (local $$v$0$i i32) + (local $$v$1$i i32) (local $$$pre$phi$i$178Z2D i32) - (local $$sub70$i i32) - (local $$sub63$i i32) - (local $$sub44 i32) - (local $$sub42 i32) - (local $$sub41$i i32) - (local $$sub381$i i32) - (local $$sub313$i$i i32) - (local $$sub31$rsize$0$i i32) - (local $$sub31$i i32) - (local $$sub30$i i32) - (local $$sub260$i i32) - (local $$sub2$i i32) - (local $$sub190 i32) - (local $$sub172$i i32) - (local $$sub16$i$i i32) - (local $$sub113$i$i i32) - (local $$sub112$i i32) - (local $$sub101$i i32) - (local $$sub$ptr$sub$i i32) - (local $$sub$i$181 i32) - (local $$sub i32) - (local $$sp$0108$i$lcssa i32) - (local $$sizebits$0$shl52$i i32) - (local $$size245$i i32) - (local $$size188$i$lcssa i32) - (local $$size188$i i32) - (local $$size$i$i$lcssa i32) - (local $$size$i$i i32) - (local $$shr87$i i32) - (local $$shr83$i i32) - (local $$shr79$i i32) - (local $$shr75$i i32) - (local $$shr7$i i32) - (local $$shr59 i32) - (local $$shr55 i32) - (local $$shr51 i32) - (local $$shr47 i32) - (local $$shr4$i i32) - (local $$shr194$i i32) - (local $$shr15$i i32) - (local $$shr11$i i32) - (local $$shr101 i32) - (local $$shl95$i$i i32) - (local $$shl9$i i32) - (local $$shl84$i$i i32) - (local $$shl75$i$i i32) - (local $$shl70$i$i i32) - (local $$shl60$i i32) - (local $$shl395$i i32) - (local $$shl39$i$i i32) - (local $$shl37 i32) - (local $$shl362$i i32) - (local $$shl347$i i32) - (local $$shl338$i i32) - (local $$shl333$i i32) - (local $$shl326$i$i i32) - (local $$shl294$i$i i32) - (local $$shl291$i i32) - (local $$shl279$i$i i32) - (local $$shl270$i$i i32) - (local $$shl265$i$i i32) - (local $$shl226$i$i i32) - (local $$shl22 i32) - (local $$shl198$i i32) - (local $$shl18$i i32) - (local $$shl127$i$i i32) - (local $$shl105 i32) - (local $$shl$i$144 i32) - (local $$or275$i i32) - (local $$or26 i32) - (local $$or183$i i32) - (local $$or180 i32) - (local $$or$cond4$i i32) - (local $$neg$i$182 i32) - (local $$inc$i$i i32) - (local $$head274$i i32) - (local $$head25 i32) - (local $$head208$i$i i32) - (local $$head182$i i32) - (local $$head179 i32) - (local $$fd9 i32) - (local $$fd85$i$i i32) - (local $$fd69 i32) - (local $$fd59$i$i i32) - (local $$fd50$i i32) - (local $$fd416$i i32) - (local $$fd344$i$i i32) - (local $$fd148$i$i i32) - (local $$fd139$i i32) - (local $$cond383$i i32) - (local $$cond315$i$i i32) - (local $$cond15$i$i i32) - (local $$cond115$i$i i32) - (local $$cond$v$0$i i32) - (local $$cond$i$36$i i32) - (local $$cond$i$16$i i32) - (local $$cond$i i32) - (local $$cmp7$i$i i32) - (local $$cmp49$i i32) - (local $$cmp32$i i32) - (local $$cmp102$i i32) - (local $$cmp$i$34$i i32) - (local $$cmp$i$23$i i32) - (local $$cmp$i$2$i$i i32) - (local $$cmp$i$15$i i32) - (local $$cmp$i$13$i i32) - (local $$child357$i i32) - (local $$child289$i$i i32) - (local $$child166$i$i i32) - (local $$call68$i i32) - (local $$bk82$i$i i32) - (local $$bk78 i32) - (local $$bk47$i i32) - (local $$bk136$i i32) - (local $$bk i32) - (local $$base226$i$lcssa i32) - (local $$base$i$i$lcssa i32) - (local $$arrayidx96$i$i i32) - (local $$arrayidx94$i i32) - (local $$arrayidx75$i i32) - (local $$arrayidx71$i i32) - (local $$arrayidx65$i i32) - (local $$arrayidx61$i i32) - (local $$arrayidx394$i i32) - (local $$arrayidx325$i$i i32) - (local $$arrayidx204$i i32) - (local $$arrayidx184$i i32) - (local $$arrayidx165$i$169 i32) - (local $$arrayidx161$i i32) - (local $$arrayidx155$i i32) - (local $$arrayidx151$i i32) - (local $$arrayidx143$i$i i32) - (local $$arrayidx126$i$i i32) - (local $$arrayidx123$i$i i32) - (local $$arrayidx113$i i32) - (local $$arrayidx107$i$i i32) - (local $$arrayidx103$i$i i32) - (local $$arrayidx$i$48$i i32) - (local $$and9$i i32) - (local $$and89$i i32) - (local $$and85$i i32) - (local $$and81$i i32) - (local $$and8$i i32) - (local $$and78$i$i i32) - (local $$and77$i i32) - (local $$and73$i$i i32) - (local $$and69$i$i i32) - (local $$and61 i32) - (local $$and6$i$i i32) - (local $$and6$i i32) - (local $$and57 i32) - (local $$and53 i32) - (local $$and49 i32) - (local $$and41 i32) - (local $$and341$i i32) - (local $$and336$i i32) - (local $$and331$i i32) - (local $$and32$i i32) - (local $$and3$i$i$i i32) - (local $$and3$i$i i32) - (local $$and3$i$35$i i32) - (local $$and3$i$24$i i32) - (local $$and273$i$i i32) - (local $$and268$i$i i32) - (local $$and264$i$i i32) - (local $$and209$i$i i32) - (local $$and17$i i32) - (local $$and13$i$i i32) - (local $$and13$i i32) - (local $$and12$i i32) - (local $$and$i$143 i32) - (local $$and i32) - (local $$add9$i i32) - (local $$add83$i$i i32) - (local $$add346$i i32) - (local $$add278$i$i i32) - (local $$add268$i i32) - (local $$add246$i i32) - (local $$add177$i i32) - (local $$add17$i$183 i32) - (local $$add17$i i32) - (local $$add144 i32) - (local $$add$ptr8$i122$i i32) - (local $$add$ptr7$i$i i32) - (local $$add$ptr262$i i32) - (local $$add$ptr2$i$i i32) - (local $$add$ptr193 i32) - (local $$add$ptr15$i$i i32) - (local $$add$ptr$i$i$i i32) - (local $$add$i$i i32) - (local $$add$i$180 i32) - (local $$T$0$i$lcssa293 i32) - (local $$T$0$i$i$lcssa284 i32) - (local $$T$0$i$58$i$lcssa283 i32) - (local $$R$1$i$lcssa i32) - (local $$R$1$i$i$lcssa i32) - (local $$R$1$i$168$lcssa i32) - (local $$97 i32) - (local $$92 i32) - (local $$89 i32) - (local $$87 i32) - (local $$86 i32) - (local $$84 i32) - (local $$83 i32) - (local $$82 i32) - (local $$8 i32) - (local $$77 i32) - (local $$72 i32) - (local $$71 i32) - (local $$70 i32) - (local $$7 i32) - (local $$69 i32) - (local $$68 i32) - (local $$60 i32) - (local $$59 i32) - (local $$52 i32) - (local $$51 i32) - (local $$49 i32) - (local $$48 i32) - (local $$47 i32) - (local $$45 i32) - (local $$40 i32) - (local $$35 i32) - (local $$34 i32) - (local $$33 i32) - (local $$32 i32) - (local $$31 i32) - (local $$23 i32) - (local $$22 i32) - (local $$207 i32) - (local $$205 i32) - (local $$202 i32) - (local $$200 i32) - (local $$199 i32) - (local $$197 i32) - (local $$196 i32) - (local $$195 i32) - (local $$190 i32) - (local $$188 i32) - (local $$185 i32) - (local $$183 i32) - (local $$180 i32) - (local $$178 i32) - (local $$177 i32) - (local $$175 i32) - (local $$174 i32) - (local $$173 i32) - (local $$17 i32) - (local $$168 i32) - (local $$163 i32) - (local $$162 i32) - (local $$161 i32) - (local $$160 i32) - (local $$16 i32) - (local $$159 i32) - (local $$15 i32) - (local $$142 i32) - (local $$140 i32) - (local $$137 i32) - (local $$135 i32) - (local $$132 i32) - (local $$131 i32) - (local $$129 i32) - (local $$128 i32) - (local $$127 i32) - (local $$124 i32) - (local $$120 i32) - (local $$115 i32) - (local $$111 i32) - (local $$110 i32) - (local $$109 i32) - (local $$107 i32) - (local $$105 i32) - (local $$102 i32) - (local $$101 i32) - (local $$100 i32) - (local $$1 i32) - (local $$$lcssa290 i32) + (local $$$pre$phi$i$57$iZ2D i32) + (local $$$pre$phi$i$iZ2D i32) + (local $$$pre$phi$iZ2D i32) + (local $$$pre$phiZ2D i32) + (local $$0 i32) + (local $$104 i32) + (local $$108 i32) + (local $$156 i32) + (local $$182 i32) + (local $$19 i32) + (local $$20 i32) + (local $$204 i32) + (local $$208 i32) + (local $$25 i32) + (local $$28 i32) + (local $$54 i32) + (local $$55 i32) + (local $$62 i32) + (local $$65 i32) + (local $$91 i32) + (local $$98 i32) + (local $$RP$1$i$167$lcssa i32) + (local $$RP$1$i$i$lcssa i32) + (local $$RP$1$i$lcssa i32) + (local $$add$ptr$i$i$i$lcssa i32) + (local $$add$ptr166 i32) + (local $$add$ptr24$i$i i32) + (local $$add$ptr4$i$26$i i32) + (local $$add$ptr4$i$i i32) + (local $$add$ptr4$i$i$i i32) + (local $$add$ptr95 i32) + (local $$add150$i i32) + (local $$add54$i i32) + (local $$add64 i32) + (local $$add8 i32) + (local $$and104$i i32) + (local $$and3$i i32) + (local $$and37$i$i i32) + (local $$and46 i32) + (local $$and64$i i32) + (local $$and73$i i32) + (local $$arrayidx i32) + (local $$arrayidx126$i$i$lcssa i32) + (local $$arrayidx325$i$i$lcssa i32) + (local $$arrayidx394$i$lcssa i32) + (local $$arrayidx66 i32) + (local $$call132$i i32) + (local $$child$i$i i32) + (local $$cond$i$25$i i32) + (local $$cond$i$i i32) + (local $$cond$i$i$i i32) + (local $$fd68$pre$phi$i$iZ2D i32) + (local $$head$i$17$i i32) + (local $$oldfirst$0$i$i i32) + (local $$p$0$i$i i32) + (local $$rst$0$i i32) + (local $$rst$1$i i32) + (local $$shr$i$139 i32) + (local $$shr$i$45$i i32) + (local $$shr$i$i i32) + (local $$shr214$i$i i32) + (local $$shr253$i$i i32) + (local $$shr283$i i32) + (local $$shr318$i i32) + (local $$shr58$i$i i32) + (local $$sp$1107$i$lcssa i32) + (local $$sub$i$138 i32) + (local $$sub33$i i32) + (local $$sub5$i$27$i i32) + (local $$sub5$i$i i32) + (local $$sub5$i$i$i i32) + (local $$v$0$i$153 i32) (local $$$lcssa i32) + (local $$$lcssa290 i32) + (local $$1 i32) + (local $$100 i32) + (local $$101 i32) + (local $$102 i32) + (local $$105 i32) + (local $$107 i32) + (local $$109 i32) + (local $$110 i32) + (local $$111 i32) + (local $$115 i32) + (local $$120 i32) + (local $$124 i32) + (local $$127 i32) + (local $$128 i32) + (local $$129 i32) + (local $$131 i32) + (local $$132 i32) + (local $$135 i32) + (local $$137 i32) + (local $$140 i32) + (local $$142 i32) + (local $$15 i32) + (local $$159 i32) + (local $$16 i32) + (local $$160 i32) + (local $$161 i32) + (local $$162 i32) + (local $$163 i32) + (local $$168 i32) + (local $$17 i32) + (local $$173 i32) + (local $$174 i32) + (local $$175 i32) + (local $$177 i32) + (local $$178 i32) + (local $$180 i32) + (local $$183 i32) + (local $$185 i32) + (local $$188 i32) + (local $$190 i32) + (local $$195 i32) + (local $$196 i32) + (local $$197 i32) + (local $$199 i32) + (local $$200 i32) + (local $$202 i32) + (local $$205 i32) + (local $$207 i32) + (local $$22 i32) + (local $$23 i32) + (local $$31 i32) + (local $$32 i32) + (local $$33 i32) + (local $$34 i32) + (local $$35 i32) + (local $$40 i32) + (local $$45 i32) + (local $$47 i32) + (local $$48 i32) + (local $$49 i32) + (local $$51 i32) + (local $$52 i32) + (local $$59 i32) + (local $$60 i32) + (local $$68 i32) + (local $$69 i32) + (local $$7 i32) + (local $$70 i32) + (local $$71 i32) + (local $$72 i32) + (local $$77 i32) + (local $$8 i32) + (local $$82 i32) + (local $$83 i32) + (local $$84 i32) + (local $$86 i32) + (local $$87 i32) + (local $$89 i32) + (local $$92 i32) + (local $$97 i32) + (local $$R$1$i$168$lcssa i32) + (local $$R$1$i$i$lcssa i32) + (local $$R$1$i$lcssa i32) + (local $$T$0$i$58$i$lcssa283 i32) + (local $$T$0$i$i$lcssa284 i32) + (local $$T$0$i$lcssa293 i32) + (local $$add$i$180 i32) + (local $$add$i$i i32) + (local $$add$ptr$i$i$i i32) + (local $$add$ptr15$i$i i32) + (local $$add$ptr193 i32) + (local $$add$ptr2$i$i i32) + (local $$add$ptr262$i i32) + (local $$add$ptr7$i$i i32) + (local $$add$ptr8$i122$i i32) + (local $$add144 i32) + (local $$add17$i i32) + (local $$add17$i$183 i32) + (local $$add177$i i32) + (local $$add246$i i32) + (local $$add268$i i32) + (local $$add278$i$i i32) + (local $$add346$i i32) + (local $$add83$i$i i32) + (local $$add9$i i32) + (local $$and i32) + (local $$and$i$143 i32) + (local $$and12$i i32) + (local $$and13$i i32) + (local $$and13$i$i i32) + (local $$and17$i i32) + (local $$and209$i$i i32) + (local $$and264$i$i i32) + (local $$and268$i$i i32) + (local $$and273$i$i i32) + (local $$and3$i$24$i i32) + (local $$and3$i$35$i i32) + (local $$and3$i$i i32) + (local $$and3$i$i$i i32) + (local $$and32$i i32) + (local $$and331$i i32) + (local $$and336$i i32) + (local $$and341$i i32) + (local $$and41 i32) + (local $$and49 i32) + (local $$and53 i32) + (local $$and57 i32) + (local $$and6$i i32) + (local $$and6$i$i i32) + (local $$and61 i32) + (local $$and69$i$i i32) + (local $$and73$i$i i32) + (local $$and77$i i32) + (local $$and78$i$i i32) + (local $$and8$i i32) + (local $$and81$i i32) + (local $$and85$i i32) + (local $$and89$i i32) + (local $$and9$i i32) + (local $$arrayidx$i$48$i i32) + (local $$arrayidx103$i$i i32) + (local $$arrayidx107$i$i i32) + (local $$arrayidx113$i i32) + (local $$arrayidx123$i$i i32) + (local $$arrayidx126$i$i i32) + (local $$arrayidx143$i$i i32) + (local $$arrayidx151$i i32) + (local $$arrayidx155$i i32) + (local $$arrayidx161$i i32) + (local $$arrayidx165$i$169 i32) + (local $$arrayidx184$i i32) + (local $$arrayidx204$i i32) + (local $$arrayidx325$i$i i32) + (local $$arrayidx394$i i32) + (local $$arrayidx61$i i32) + (local $$arrayidx65$i i32) + (local $$arrayidx71$i i32) + (local $$arrayidx75$i i32) + (local $$arrayidx94$i i32) + (local $$arrayidx96$i$i i32) + (local $$base$i$i$lcssa i32) + (local $$base226$i$lcssa i32) + (local $$bk i32) + (local $$bk136$i i32) + (local $$bk47$i i32) + (local $$bk78 i32) + (local $$bk82$i$i i32) + (local $$call68$i i32) + (local $$child166$i$i i32) + (local $$child289$i$i i32) + (local $$child357$i i32) + (local $$cmp$i$13$i i32) + (local $$cmp$i$15$i i32) + (local $$cmp$i$2$i$i i32) + (local $$cmp$i$23$i i32) + (local $$cmp$i$34$i i32) + (local $$cmp102$i i32) + (local $$cmp32$i i32) + (local $$cmp49$i i32) + (local $$cmp7$i$i i32) + (local $$cond$i i32) + (local $$cond$i$16$i i32) + (local $$cond$i$36$i i32) + (local $$cond$v$0$i i32) + (local $$cond115$i$i i32) + (local $$cond15$i$i i32) + (local $$cond315$i$i i32) + (local $$cond383$i i32) + (local $$fd139$i i32) + (local $$fd148$i$i i32) + (local $$fd344$i$i i32) + (local $$fd416$i i32) + (local $$fd50$i i32) + (local $$fd59$i$i i32) + (local $$fd69 i32) + (local $$fd85$i$i i32) + (local $$fd9 i32) + (local $$head179 i32) + (local $$head182$i i32) + (local $$head208$i$i i32) + (local $$head25 i32) + (local $$head274$i i32) + (local $$inc$i$i i32) + (local $$neg$i$182 i32) + (local $$or$cond4$i i32) + (local $$or180 i32) + (local $$or183$i i32) + (local $$or26 i32) + (local $$or275$i i32) + (local $$shl$i$144 i32) + (local $$shl105 i32) + (local $$shl127$i$i i32) + (local $$shl18$i i32) + (local $$shl198$i i32) + (local $$shl22 i32) + (local $$shl226$i$i i32) + (local $$shl265$i$i i32) + (local $$shl270$i$i i32) + (local $$shl279$i$i i32) + (local $$shl291$i i32) + (local $$shl294$i$i i32) + (local $$shl326$i$i i32) + (local $$shl333$i i32) + (local $$shl338$i i32) + (local $$shl347$i i32) + (local $$shl362$i i32) + (local $$shl37 i32) + (local $$shl39$i$i i32) + (local $$shl395$i i32) + (local $$shl60$i i32) + (local $$shl70$i$i i32) + (local $$shl75$i$i i32) + (local $$shl84$i$i i32) + (local $$shl9$i i32) + (local $$shl95$i$i i32) + (local $$shr101 i32) + (local $$shr11$i i32) + (local $$shr15$i i32) + (local $$shr194$i i32) + (local $$shr4$i i32) + (local $$shr47 i32) + (local $$shr51 i32) + (local $$shr55 i32) + (local $$shr59 i32) + (local $$shr7$i i32) + (local $$shr75$i i32) + (local $$shr79$i i32) + (local $$shr83$i i32) + (local $$shr87$i i32) + (local $$size$i$i i32) + (local $$size$i$i$lcssa i32) + (local $$size188$i i32) + (local $$size188$i$lcssa i32) + (local $$size245$i i32) + (local $$sizebits$0$shl52$i i32) + (local $$sp$0108$i$lcssa i32) + (local $$sub i32) + (local $$sub$i$181 i32) + (local $$sub$ptr$sub$i i32) + (local $$sub101$i i32) + (local $$sub112$i i32) + (local $$sub113$i$i i32) + (local $$sub16$i$i i32) + (local $$sub172$i i32) + (local $$sub190 i32) + (local $$sub2$i i32) + (local $$sub260$i i32) + (local $$sub30$i i32) + (local $$sub31$i i32) + (local $$sub31$rsize$0$i i32) + (local $$sub313$i$i i32) + (local $$sub381$i i32) + (local $$sub41$i i32) + (local $$sub42 i32) + (local $$sub44 i32) + (local $$sub63$i i32) + (local $$sub70$i i32) (i32.load (i32.const 8) ) @@ -18263,123 +18263,123 @@ (local $$add$ptr16 i32) (local $$add$ptr6 i32) (local $$psize$1 i32) - (local $$R332$3 i32) (local $$R$3 i32) + (local $$R332$3 i32) (local $$add17 i32) (local $$psize$2 i32) (local $$I534$0 i32) - (local $$R332$1 i32) - (local $$R$1 i32) - (local $$5 i32) (local $$35 i32) - (local $$add267 i32) - (local $$T$0 i32) - (local $$9 i32) - (local $$41 i32) - (local $$4 i32) - (local $$34 i32) - (local $$28 i32) + (local $$5 i32) + (local $$R$1 i32) + (local $$R332$1 i32) (local $$0 i32) - (local $$arrayidx509 i32) - (local $$add$ptr i32) - (local $$RP360$1 i32) - (local $$RP$1 i32) + (local $$28 i32) + (local $$34 i32) + (local $$4 i32) + (local $$41 i32) + (local $$9 i32) + (local $$T$0 i32) + (local $$add267 i32) (local $$2 i32) - (local $label i32) - (local $$arrayidx567 i32) - (local $$add258 i32) - (local $$T$0$lcssa i32) - (local $$K583$0 i32) - (local $$F510$0 i32) - (local $$59 i32) - (local $$58 i32) - (local $$42 i32) - (local $$25 i32) - (local $$24 i32) + (local $$RP$1 i32) + (local $$RP360$1 i32) + (local $$add$ptr i32) + (local $$arrayidx509 i32) (local $$10 i32) - (local $$sp$0$in$i i32) - (local $$shr535 i32) - (local $$shr501 i32) - (local $$shr268 i32) - (local $$shr i32) - (local $$fd67$pre$phiZ2D i32) - (local $$fd322$pre$phiZ2D i32) - (local $$child361 i32) - (local $$child i32) - (local $$arrayidx599$lcssa i32) - (local $$and5 i32) - (local $$RP360$1$lcssa i32) - (local $$RP$1$lcssa i32) - (local $$71 i32) - (local $$43 i32) - (local $$11 i32) - (local $$1 i32) + (local $$24 i32) + (local $$25 i32) + (local $$42 i32) + (local $$58 i32) + (local $$59 i32) + (local $$F510$0 i32) + (local $$K583$0 i32) + (local $$T$0$lcssa i32) + (local $$add258 i32) + (local $$arrayidx567 i32) + (local $label i32) (local $$$pre$phiZ2D i32) - (local $$sub589 i32) - (local $$sp$0$i i32) - (local $$shl600 i32) - (local $$shl573 i32) - (local $$shl560 i32) - (local $$shl551 i32) - (local $$shl546 i32) - (local $$shl511 i32) - (local $$next4$i i32) - (local $$head231 i32) - (local $$head209 i32) - (local $$fd86 i32) - (local $$fd620 i32) - (local $$fd56 i32) - (local $$fd347 i32) - (local $$fd311 i32) - (local $$dec i32) - (local $$cond i32) - (local $$cmp$i i32) - (local $$child443 i32) - (local $$child171 i32) - (local $$bk82 i32) - (local $$bk343 i32) - (local $$arrayidx99 i32) - (local $$arrayidx599 i32) - (local $$arrayidx419 i32) - (local $$arrayidx400 i32) - (local $$arrayidx379 i32) - (local $$arrayidx374 i32) - (local $$arrayidx362 i32) - (local $$arrayidx279 i32) - (local $$arrayidx149 i32) - (local $$arrayidx130 i32) - (local $$arrayidx113 i32) - (local $$arrayidx108 i32) - (local $$arrayidx i32) - (local $$and554 i32) - (local $$and549 i32) - (local $$and545 i32) - (local $$and i32) - (local $$add559 i32) - (local $$add246 i32) - (local $$T$0$lcssa319 i32) - (local $$R332$1$lcssa i32) - (local $$R$1$lcssa i32) - (local $$72 i32) - (local $$69 i32) - (local $$67 i32) - (local $$66 i32) - (local $$64 i32) - (local $$63 i32) - (local $$62 i32) - (local $$57 i32) - (local $$52 i32) - (local $$50 i32) - (local $$49 i32) - (local $$48 i32) - (local $$47 i32) - (local $$27 i32) - (local $$23 i32) - (local $$18 i32) - (local $$17 i32) - (local $$16 i32) - (local $$15 i32) + (local $$1 i32) + (local $$11 i32) + (local $$43 i32) + (local $$71 i32) + (local $$RP$1$lcssa i32) + (local $$RP360$1$lcssa i32) + (local $$and5 i32) + (local $$arrayidx599$lcssa i32) + (local $$child i32) + (local $$child361 i32) + (local $$fd322$pre$phiZ2D i32) + (local $$fd67$pre$phiZ2D i32) + (local $$shr i32) + (local $$shr268 i32) + (local $$shr501 i32) + (local $$shr535 i32) + (local $$sp$0$in$i i32) (local $$14 i32) + (local $$15 i32) + (local $$16 i32) + (local $$17 i32) + (local $$18 i32) + (local $$23 i32) + (local $$27 i32) + (local $$47 i32) + (local $$48 i32) + (local $$49 i32) + (local $$50 i32) + (local $$52 i32) + (local $$57 i32) + (local $$62 i32) + (local $$63 i32) + (local $$64 i32) + (local $$66 i32) + (local $$67 i32) + (local $$69 i32) + (local $$72 i32) + (local $$R$1$lcssa i32) + (local $$R332$1$lcssa i32) + (local $$T$0$lcssa319 i32) + (local $$add246 i32) + (local $$add559 i32) + (local $$and i32) + (local $$and545 i32) + (local $$and549 i32) + (local $$and554 i32) + (local $$arrayidx i32) + (local $$arrayidx108 i32) + (local $$arrayidx113 i32) + (local $$arrayidx130 i32) + (local $$arrayidx149 i32) + (local $$arrayidx279 i32) + (local $$arrayidx362 i32) + (local $$arrayidx374 i32) + (local $$arrayidx379 i32) + (local $$arrayidx400 i32) + (local $$arrayidx419 i32) + (local $$arrayidx599 i32) + (local $$arrayidx99 i32) + (local $$bk343 i32) + (local $$bk82 i32) + (local $$child171 i32) + (local $$child443 i32) + (local $$cmp$i i32) + (local $$cond i32) + (local $$dec i32) + (local $$fd311 i32) + (local $$fd347 i32) + (local $$fd56 i32) + (local $$fd620 i32) + (local $$fd86 i32) + (local $$head209 i32) + (local $$head231 i32) + (local $$next4$i i32) + (local $$shl511 i32) + (local $$shl546 i32) + (local $$shl551 i32) + (local $$shl560 i32) + (local $$shl573 i32) + (local $$shl600 i32) + (local $$sp$0$i i32) + (local $$sub589 i32) (i32.load (i32.const 8) ) @@ -20898,11 +20898,11 @@ (func $___muldsi3 (param $$a i32) (param $$b i32) (result i32) (local $$8 i32) (local $$12 i32) - (local $$6 i32) - (local $$3 i32) + (local $$1 i32) (local $$2 i32) + (local $$3 i32) + (local $$6 i32) (local $$11 i32) - (local $$1 i32) (set_local $$8 (i32.add (i32.shr_u @@ -20993,12 +20993,12 @@ ) ) (func $___divdi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) - (local $$2$1 i32) - (local $$2$0 i32) - (local $$1$1 i32) (local $$1$0 i32) - (local $$7$1 i32) + (local $$1$1 i32) + (local $$2$0 i32) + (local $$2$1 i32) (local $$7$0 i32) + (local $$7$1 i32) (set_local $$1$0 (i32.or (i32.shr_s @@ -21149,14 +21149,14 @@ ) ) (func $___remdi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) - (local $$1$1 i32) (local $$1$0 i32) + (local $$1$1 i32) (local $$rem i32) - (local $__stackBase__ i32) - (local $$2$1 i32) (local $$2$0 i32) - (local $$10$1 i32) + (local $$2$1 i32) + (local $__stackBase__ i32) (local $$10$0 i32) + (local $$10$1 i32) (set_local $__stackBase__ (i32.load (i32.const 8) @@ -21335,10 +21335,10 @@ ) ) (func $___muldi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) - (local $$y_sroa_0_0_extract_trunc i32) (local $$x_sroa_0_0_extract_trunc i32) - (local $$1$1 i32) + (local $$y_sroa_0_0_extract_trunc i32) (local $$1$0 i32) + (local $$1$1 i32) (set_local $$1$0 (call $___muldsi3 (set_local $$x_sroa_0_0_extract_trunc @@ -21399,8 +21399,8 @@ ) ) (func $___uremdi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32) - (local $__stackBase__ i32) (local $$rem i32) + (local $__stackBase__ i32) (set_local $__stackBase__ (i32.load (i32.const 8) @@ -21442,17 +21442,17 @@ ) ) ) - (func $___udivmoddi4 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (param $$rem i32) (result i32) + (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32) (local $x64 i64) (local $y64 i64) (set_local $x64 (i64.or (i64.extend_u/i32 - (get_local $$a$0) + (get_local $xl) ) (i64.shl (i64.extend_u/i32 - (get_local $$a$1) + (get_local $xh) ) (i64.const 32) ) @@ -21461,20 +21461,20 @@ (set_local $y64 (i64.or (i64.extend_u/i32 - (get_local $$b$0) + (get_local $yl) ) (i64.shl (i64.extend_u/i32 - (get_local $$b$1) + (get_local $yh) ) (i64.const 32) ) ) ) (if - (get_local $$rem) + (get_local $r) (i64.store - (get_local $$rem) + (get_local $r) (i64.rem_u (get_local $x64) (get_local $y64) diff --git a/test/memorygrowth.fromasm b/test/memorygrowth.fromasm index d81ecaa81..dac188a60 100644 --- a/test/memorygrowth.fromasm +++ b/test/memorygrowth.fromasm @@ -47,8 +47,8 @@ (local $ma i32) (local $i i32) (local $q i32) - (local $ja i32) (local $V i32) + (local $ja i32) (local $c i32) (local $aa i32) (local $d i32) @@ -59,80 +59,80 @@ (local $t i32) (local $o i32) (local $ca i32) - (local $ga i32) (local $U i32) - (local $ea i32) + (local $ga i32) (local $$ i32) + (local $ea i32) (local $y i32) (local $j i32) - (local $ha i32) (local $A i32) + (local $ha i32) (local $ba i32) (local $u i32) (local $da i32) (local $W i32) (local $n i32) - (local $ya i32) - (local $fa i32) (local $C i32) - (local $ia i32) + (local $fa i32) + (local $ya i32) (local $b i32) + (local $ia i32) (local $l i32) (local $Ea i32) (local $P i32) - (local $Oa i32) (local $Ha i32) - (local $za i32) - (local $z i32) + (local $Oa i32) (local $m i32) - (local $X i32) - (local $J i32) + (local $z i32) (local $D i32) - (local $wa i32) + (local $J i32) + (local $X i32) + (local $za i32) + (local $O i32) (local $sa i32) + (local $wa i32) (local $Pa i32) - (local $O i32) - (local $Y i32) - (local $Q i32) - (local $M i32) - (local $E i32) (local $B i32) + (local $E i32) + (local $M i32) + (local $Q i32) + (local $Y i32) (local $Aa i32) - (local $x i32) (local $v i32) - (local $T i32) - (local $S i32) - (local $R i32) - (local $Na i32) - (local $L i32) - (local $K i32) - (local $Ia i32) + (local $x i32) (local $I i32) + (local $K i32) + (local $L i32) + (local $R i32) + (local $S i32) + (local $T i32) (local $Ga i32) - (local $xa i32) - (local $w i32) - (local $va i32) + (local $Ia i32) + (local $Na i32) (local $h i32) - (local $_ i32) - (local $Ra i32) - (local $Ma i32) - (local $La i32) - (local $Ja i32) - (local $H i32) + (local $w i32) (local $G i32) - (local $Fa i32) - (local $Da i32) + (local $H i32) + (local $_ i32) + (local $va i32) + (local $xa i32) (local $Ca i32) - (local $ua i32) - (local $ra i32) - (local $pa i32) - (local $oa i32) - (local $na i32) - (local $Z i32) - (local $Sa i32) - (local $Ka i32) + (local $Da i32) + (local $Fa i32) + (local $Ja i32) + (local $La i32) + (local $Ma i32) + (local $Ra i32) (local $F i32) + (local $Z i32) + (local $na i32) + (local $oa i32) + (local $pa i32) + (local $ra i32) + (local $ua i32) (local $Ba i32) + (local $Ka i32) + (local $Sa i32) (set_local $b (i32.load (i32.const 8) @@ -6181,38 +6181,38 @@ (local $s i32) (local $h i32) (local $b i32) - (local $n i32) (local $f i32) + (local $n i32) (local $w i32) - (local $j i32) (local $i i32) + (local $j i32) (local $l i32) - (local $o i32) (local $g i32) - (local $y i32) + (local $o i32) (local $t i32) - (local $v i32) + (local $y i32) (local $u i32) + (local $v i32) (local $e i32) (local $F i32) (local $p i32) (local $c i32) - (local $E i32) (local $D i32) + (local $E i32) (local $q i32) (local $G i32) (local $z i32) (local $A i32) - (local $I i32) (local $H i32) - (local $x i32) + (local $I i32) (local $d i32) - (local $L i32) - (local $J i32) + (local $x i32) (local $C i32) + (local $J i32) + (local $L i32) (local $r i32) - (local $K i32) (local $B i32) + (local $K i32) (if (i32.eqz (get_local $a) @@ -8087,26 +8087,26 @@ ) (func $Ra (param $a i32) (param $b i32) (param $c i32) (result i32) (local $g i32) - (local $o i32) (local $m i32) - (local $x i32) + (local $o i32) (local $i i32) - (local $n i32) - (local $l i32) + (local $x i32) (local $h i32) - (local $w i32) - (local $f i32) - (local $e i32) + (local $l i32) + (local $n i32) (local $d i32) - (local $z i32) - (local $y i32) - (local $v i32) - (local $t i32) - (local $p i32) + (local $e i32) + (local $f i32) + (local $w i32) (local $j i32) - (local $u i32) - (local $s i32) + (local $p i32) + (local $t i32) + (local $v i32) + (local $y i32) + (local $z i32) (local $q i32) + (local $s i32) + (local $u i32) (set_local $d (i32.load (i32.const 8) @@ -8504,15 +8504,15 @@ (func $Wa (param $a i32) (param $b i32) (param $c i32) (result i32) (local $d i32) (local $q i32) - (local $l i32) (local $e i32) + (local $l i32) (local $h i32) - (local $o i32) - (local $n i32) (local $m i32) - (local $j i32) - (local $g i32) + (local $n i32) + (local $o i32) (local $f i32) + (local $g i32) + (local $j i32) (local $p i32) (if (set_local $e @@ -8750,15 +8750,15 @@ ) (func $Za (param $a i32) (result i32) (local $d i32) - (local $l i32) (local $c i32) + (local $l i32) (local $j i32) (local $e i32) - (local $m i32) - (local $h i32) - (local $g i32) - (local $f i32) (local $b i32) + (local $f i32) + (local $g i32) + (local $h i32) + (local $m i32) (block $label$break$a (if (i32.and @@ -8930,10 +8930,10 @@ (local $e i32) (local $c i32) (local $h i32) - (local $g i32) (local $b i32) - (local $f i32) + (local $g i32) (local $d i32) + (local $f i32) (block $do-once$0 (if (get_local $a) @@ -9095,15 +9095,15 @@ ) ) (func $ab (param $a i32) (param $b i32) (result i32) - (local $m i32) (local $f i32) + (local $m i32) (local $g i32) - (local $j i32) - (local $h i32) - (local $d i32) (local $c i32) - (local $n i32) + (local $d i32) + (local $h i32) + (local $j i32) (local $e i32) + (local $n i32) (set_local $c (i32.load (i32.const 8) @@ -9259,12 +9259,12 @@ ) (func $$a (param $a i32) (result i32) (local $e i32) - (local $d i32) (local $b i32) - (local $h i32) - (local $g i32) - (local $f i32) + (local $d i32) (local $c i32) + (local $f i32) + (local $g i32) + (local $h i32) (if (i32.gt_u (i32.load @@ -9542,8 +9542,8 @@ (func $hb (param $a i32) (param $b i32) (param $c i32) (result i32) (local $e i32) (local $d i32) - (local $g i32) (local $f i32) + (local $g i32) (set_local $d (i32.add (get_local $a) @@ -9679,8 +9679,8 @@ (func $db (param $a i32) (result i32) (local $b i32) (local $d i32) - (local $f i32) (local $c i32) + (local $f i32) (local $e i32) (if (i32.gt_s @@ -9786,8 +9786,8 @@ ) ) (func $Xa (param $a i32) (result i32) - (local $c i32) (local $b i32) + (local $c i32) (local $d i32) (set_local $c (i32.load8_s @@ -9872,8 +9872,8 @@ (func $bb (param $a i32) (param $b i32) (param $c i32) (param $d i32) (result i32) (local $h i32) (local $e i32) - (local $i i32) (local $g i32) + (local $i i32) (local $f i32) (set_local $e (i32.mul @@ -9949,8 +9949,8 @@ (func $Ua (param $a i32) (param $b i32) (param $c i32) (result i32) (local $e i32) (local $d i32) - (local $g i32) (local $f i32) + (local $g i32) (set_local $d (i32.load (i32.const 8) diff --git a/test/memorygrowth.fromasm.imprecise b/test/memorygrowth.fromasm.imprecise index d81ecaa81..dac188a60 100644 --- a/test/memorygrowth.fromasm.imprecise +++ b/test/memorygrowth.fromasm.imprecise @@ -47,8 +47,8 @@ (local $ma i32) (local $i i32) (local $q i32) - (local $ja i32) (local $V i32) + (local $ja i32) (local $c i32) (local $aa i32) (local $d i32) @@ -59,80 +59,80 @@ (local $t i32) (local $o i32) (local $ca i32) - (local $ga i32) (local $U i32) - (local $ea i32) + (local $ga i32) (local $$ i32) + (local $ea i32) (local $y i32) (local $j i32) - (local $ha i32) (local $A i32) + (local $ha i32) (local $ba i32) (local $u i32) (local $da i32) (local $W i32) (local $n i32) - (local $ya i32) - (local $fa i32) (local $C i32) - (local $ia i32) + (local $fa i32) + (local $ya i32) (local $b i32) + (local $ia i32) (local $l i32) (local $Ea i32) (local $P i32) - (local $Oa i32) (local $Ha i32) - (local $za i32) - (local $z i32) + (local $Oa i32) (local $m i32) - (local $X i32) - (local $J i32) + (local $z i32) (local $D i32) - (local $wa i32) + (local $J i32) + (local $X i32) + (local $za i32) + (local $O i32) (local $sa i32) + (local $wa i32) (local $Pa i32) - (local $O i32) - (local $Y i32) - (local $Q i32) - (local $M i32) - (local $E i32) (local $B i32) + (local $E i32) + (local $M i32) + (local $Q i32) + (local $Y i32) (local $Aa i32) - (local $x i32) (local $v i32) - (local $T i32) - (local $S i32) - (local $R i32) - (local $Na i32) - (local $L i32) - (local $K i32) - (local $Ia i32) + (local $x i32) (local $I i32) + (local $K i32) + (local $L i32) + (local $R i32) + (local $S i32) + (local $T i32) (local $Ga i32) - (local $xa i32) - (local $w i32) - (local $va i32) + (local $Ia i32) + (local $Na i32) (local $h i32) - (local $_ i32) - (local $Ra i32) - (local $Ma i32) - (local $La i32) - (local $Ja i32) - (local $H i32) + (local $w i32) (local $G i32) - (local $Fa i32) - (local $Da i32) + (local $H i32) + (local $_ i32) + (local $va i32) + (local $xa i32) (local $Ca i32) - (local $ua i32) - (local $ra i32) - (local $pa i32) - (local $oa i32) - (local $na i32) - (local $Z i32) - (local $Sa i32) - (local $Ka i32) + (local $Da i32) + (local $Fa i32) + (local $Ja i32) + (local $La i32) + (local $Ma i32) + (local $Ra i32) (local $F i32) + (local $Z i32) + (local $na i32) + (local $oa i32) + (local $pa i32) + (local $ra i32) + (local $ua i32) (local $Ba i32) + (local $Ka i32) + (local $Sa i32) (set_local $b (i32.load (i32.const 8) @@ -6181,38 +6181,38 @@ (local $s i32) (local $h i32) (local $b i32) - (local $n i32) (local $f i32) + (local $n i32) (local $w i32) - (local $j i32) (local $i i32) + (local $j i32) (local $l i32) - (local $o i32) (local $g i32) - (local $y i32) + (local $o i32) (local $t i32) - (local $v i32) + (local $y i32) (local $u i32) + (local $v i32) (local $e i32) (local $F i32) (local $p i32) (local $c i32) - (local $E i32) (local $D i32) + (local $E i32) (local $q i32) (local $G i32) (local $z i32) (local $A i32) - (local $I i32) (local $H i32) - (local $x i32) + (local $I i32) (local $d i32) - (local $L i32) - (local $J i32) + (local $x i32) (local $C i32) + (local $J i32) + (local $L i32) (local $r i32) - (local $K i32) (local $B i32) + (local $K i32) (if (i32.eqz (get_local $a) @@ -8087,26 +8087,26 @@ ) (func $Ra (param $a i32) (param $b i32) (param $c i32) (result i32) (local $g i32) - (local $o i32) (local $m i32) - (local $x i32) + (local $o i32) (local $i i32) - (local $n i32) - (local $l i32) + (local $x i32) (local $h i32) - (local $w i32) - (local $f i32) - (local $e i32) + (local $l i32) + (local $n i32) (local $d i32) - (local $z i32) - (local $y i32) - (local $v i32) - (local $t i32) - (local $p i32) + (local $e i32) + (local $f i32) + (local $w i32) (local $j i32) - (local $u i32) - (local $s i32) + (local $p i32) + (local $t i32) + (local $v i32) + (local $y i32) + (local $z i32) (local $q i32) + (local $s i32) + (local $u i32) (set_local $d (i32.load (i32.const 8) @@ -8504,15 +8504,15 @@ (func $Wa (param $a i32) (param $b i32) (param $c i32) (result i32) (local $d i32) (local $q i32) - (local $l i32) (local $e i32) + (local $l i32) (local $h i32) - (local $o i32) - (local $n i32) (local $m i32) - (local $j i32) - (local $g i32) + (local $n i32) + (local $o i32) (local $f i32) + (local $g i32) + (local $j i32) (local $p i32) (if (set_local $e @@ -8750,15 +8750,15 @@ ) (func $Za (param $a i32) (result i32) (local $d i32) - (local $l i32) (local $c i32) + (local $l i32) (local $j i32) (local $e i32) - (local $m i32) - (local $h i32) - (local $g i32) - (local $f i32) (local $b i32) + (local $f i32) + (local $g i32) + (local $h i32) + (local $m i32) (block $label$break$a (if (i32.and @@ -8930,10 +8930,10 @@ (local $e i32) (local $c i32) (local $h i32) - (local $g i32) (local $b i32) - (local $f i32) + (local $g i32) (local $d i32) + (local $f i32) (block $do-once$0 (if (get_local $a) @@ -9095,15 +9095,15 @@ ) ) (func $ab (param $a i32) (param $b i32) (result i32) - (local $m i32) (local $f i32) + (local $m i32) (local $g i32) - (local $j i32) - (local $h i32) - (local $d i32) (local $c i32) - (local $n i32) + (local $d i32) + (local $h i32) + (local $j i32) (local $e i32) + (local $n i32) (set_local $c (i32.load (i32.const 8) @@ -9259,12 +9259,12 @@ ) (func $$a (param $a i32) (result i32) (local $e i32) - (local $d i32) (local $b i32) - (local $h i32) - (local $g i32) - (local $f i32) + (local $d i32) (local $c i32) + (local $f i32) + (local $g i32) + (local $h i32) (if (i32.gt_u (i32.load @@ -9542,8 +9542,8 @@ (func $hb (param $a i32) (param $b i32) (param $c i32) (result i32) (local $e i32) (local $d i32) - (local $g i32) (local $f i32) + (local $g i32) (set_local $d (i32.add (get_local $a) @@ -9679,8 +9679,8 @@ (func $db (param $a i32) (result i32) (local $b i32) (local $d i32) - (local $f i32) (local $c i32) + (local $f i32) (local $e i32) (if (i32.gt_s @@ -9786,8 +9786,8 @@ ) ) (func $Xa (param $a i32) (result i32) - (local $c i32) (local $b i32) + (local $c i32) (local $d i32) (set_local $c (i32.load8_s @@ -9872,8 +9872,8 @@ (func $bb (param $a i32) (param $b i32) (param $c i32) (param $d i32) (result i32) (local $h i32) (local $e i32) - (local $i i32) (local $g i32) + (local $i i32) (local $f i32) (set_local $e (i32.mul @@ -9949,8 +9949,8 @@ (func $Ua (param $a i32) (param $b i32) (param $c i32) (result i32) (local $e i32) (local $d i32) - (local $g i32) (local $f i32) + (local $g i32) (set_local $d (i32.load (i32.const 8) diff --git a/test/unit.fromasm b/test/unit.fromasm index b54b4564c..9a142a142 100644 --- a/test/unit.fromasm +++ b/test/unit.fromasm @@ -293,8 +293,8 @@ ) ) (func $fr (param $x f32) - (local $z f64) (local $y f32) + (local $z f64) (f32.demote/f64 (get_local $z) ) diff --git a/test/unit.fromasm.imprecise b/test/unit.fromasm.imprecise index ae9b4d70c..1ccbda8a1 100644 --- a/test/unit.fromasm.imprecise +++ b/test/unit.fromasm.imprecise @@ -289,8 +289,8 @@ ) ) (func $fr (param $x f32) - (local $z f64) (local $y f32) + (local $z f64) (f32.demote/f64 (get_local $z) ) |