diff --git a/src/compiler.ts b/src/compiler.ts index d8a26606..1708f74b 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -84,7 +84,8 @@ import { import { FlowFlags, Flow, - LocalFlags + LocalFlags, + findUsedLocals } from "./flow"; import { @@ -2523,7 +2524,16 @@ export class Compiler extends DiagnosticEmitter { declaration.isAny(CommonFlags.LET | CommonFlags.CONST) || flow.is(FlowFlags.INLINE_CONTEXT) ) { // here: not top-level - local = flow.addScopedLocal(name, type, declaration.name); // reports if duplicate + let existingLocal = flow.getScopedLocal(name); + if (existingLocal) { + this.error( + DiagnosticCode.Duplicate_identifier_0, + declaration.name.range, declaration.name.text + ); + local = existingLocal; + } else { + local = flow.addScopedLocal(name, type); + } if (isConst) flow.setLocalFlag(local.index, LocalFlags.CONSTANT); } else { if (flow.lookupLocal(name)) { @@ -5888,7 +5898,6 @@ export class Compiler extends DiagnosticEmitter { expression.arguments, expression, thisExpr, - false, contextualFlags ); } @@ -6114,7 +6123,6 @@ export class Compiler extends DiagnosticEmitter { argumentExpressions: Expression[], reportNode: Node, thisArg: ExpressionRef = 0, - inlineCanAlias: bool = false, contextualFlags: ContextualFlags = ContextualFlags.NONE ): ExpressionRef { var numArguments = argumentExpressions.length; @@ -6139,7 +6147,7 @@ export class Compiler extends DiagnosticEmitter { ); } else { this.currentInlineFunctions.push(instance); - let expr = this.compileCallInlinePrechecked(instance, argumentExpressions, thisArg, inlineCanAlias, (contextualFlags & ContextualFlags.WILL_DROP) != 0); + let expr = this.compileCallInlinePrechecked(instance, argumentExpressions, thisArg, (contextualFlags & ContextualFlags.WILL_DROP) != 0); this.currentInlineFunctions.pop(); return expr; } @@ -6203,7 +6211,6 @@ export class Compiler extends DiagnosticEmitter { instance: Function, argumentExpressions: Expression[], thisArg: ExpressionRef = 0, - canAlias: bool = false, immediatelyDropped: bool = false ): ExpressionRef { var numArguments = argumentExpressions.length; @@ -6211,93 +6218,76 @@ export class Compiler extends DiagnosticEmitter { var parameterTypes = signature.parameterTypes; assert(numArguments <= parameterTypes.length); var args = new Array(numArguments); - var flow = this.currentFlow; - - // compile arguments possibly using their own temp locals - var temps = flow.blockLocalsBeforeInlining(instance); for (let i = 0; i < numArguments; ++i) { args[i] = this.compileExpression(argumentExpressions[i], parameterTypes[i], ContextualFlags.IMPLICIT ); } - flow.unblockLocals(temps); - - return this.makeCallInlinePrechecked(instance, args, thisArg, canAlias, immediatelyDropped); + return this.makeCallInlinePrechecked(instance, args, thisArg, immediatelyDropped); } makeCallInlinePrechecked( instance: Function, - args: ExpressionRef[], + operands: ExpressionRef[] | null, thisArg: ExpressionRef = 0, - canAlias: bool = false, immediatelyDropped: bool = false ): ExpressionRef { - - // CAUTION: Imagine a call like `theCall(a, b)`. Unless canAlias, inlining needs a temporary local for - // each argument, looking something like `BLOCK { t1 = a, t2 = b, inlinedTheCall }`. Now, if argument b, - // which is compiled beforehand, itself required a temporary local, it is likely that it did pick `t1` - // for this, making it something like `BLOCK { t1 = a, t2 = (t1 = c, t1), inlinedTheCall }`, which is - // overwriting t1. Hence, whenever makeCallInline is used, this condition must be taken into account. - // Flows provide the helpers Flow#blockLocalsBeforeInlining and Flow#unblockLocals for this. - var module = this.module; + var numArguments = operands ? operands.length : 0; + var signature = instance.signature; + var parameterTypes = signature.parameterTypes; + var numParameters = parameterTypes.length; // Create a new inline flow and use it to compile the function as a block var previousFlow = this.currentFlow; var flow = Flow.createInline(previousFlow.parentFunction, instance); var body = []; + var usedLocals = new Set(); - // Convert provided call arguments to temporary locals + // Prepare compiled arguments right to left, keeping track of used locals. + for (let i = numArguments - 1; i >= 0; --i) { + // This is necessary because a later expression must not set an earlier argument local, which + // is also just a temporary, when being executed. Take for example `t1=1, t2=(t1 = 2)`, where + // the right expression would reassign the foregoing argument local. So, we iterate from right + // to left, remembering what's used later, and don't use these for earlier arguments, making + // the example above essentially `t2=1, t1=(t1 = 2)`. + let paramExpr = operands![i]; + let paramType = parameterTypes[i]; + let argumentLocal = flow.addScopedLocal(signature.getParameterName(i), paramType, usedLocals); + findUsedLocals(paramExpr, usedLocals); + // Normal function wouldn't know about wrap/nonnull states, but inlining does: + if (!previousFlow.canOverflow(paramExpr, paramType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.WRAPPED); + if (flow.isNonnull(paramExpr, paramType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.NONNULL); + if (paramType.isManaged) { + flow.setLocalFlag(argumentLocal.index, LocalFlags.RETAINED); + body.unshift( + module.local_set(argumentLocal.index, + this.makeRetain(paramExpr) + ) + ); + } else { + body.unshift( + module.local_set(argumentLocal.index, paramExpr) + ); + } + } if (thisArg) { let classInstance = assert(instance.parent); assert(classInstance.kind == ElementKind.CLASS); let thisType = assert(instance.signature.thisType); - if (canAlias && getExpressionId(thisArg) == ExpressionId.LocalGet) { - flow.addScopedAlias(CommonSymbols.this_, thisType, getLocalGetIndex(thisArg)); - let baseInstance = (classInstance).base; - if (baseInstance) flow.addScopedAlias(CommonSymbols.super_, baseInstance.type, getLocalGetIndex(thisArg)); - } else { - let thisLocal = flow.addScopedLocal(CommonSymbols.this_, thisType); - // No need to retain `this` as it can't be reassigned and thus can't become prematurely released - body.push( - module.local_set(thisLocal.index, thisArg) - ); - let baseInstance = (classInstance).base; - if (baseInstance) flow.addScopedAlias(CommonSymbols.super_, baseInstance.type, thisLocal.index); - } + let thisLocal = flow.addScopedLocal(CommonSymbols.this_, thisType, usedLocals); + // No need to retain `this` as it can't be reassigned and thus can't become prematurely released + body.unshift( + module.local_set(thisLocal.index, thisArg) + ); + let baseInstance = (classInstance).base; + if (baseInstance) flow.addScopedAlias(CommonSymbols.super_, baseInstance.type, thisLocal.index); } else { assert(!instance.signature.thisType); } - var numArguments = args.length; - var signature = instance.signature; - var parameterTypes = signature.parameterTypes; - for (let i = 0; i < numArguments; ++i) { - let paramExpr = args[i]; - let paramType = parameterTypes[i]; - if (canAlias && getExpressionId(paramExpr) == ExpressionId.LocalGet) { - flow.addScopedAlias(signature.getParameterName(i), paramType, getLocalGetIndex(paramExpr)); - } else { - let argumentLocal = flow.addScopedLocal(signature.getParameterName(i), paramType); - // Normal function wouldn't know about wrap/nonnull states, but inlining does: - if (!previousFlow.canOverflow(paramExpr, paramType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.WRAPPED); - if (flow.isNonnull(paramExpr, paramType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.NONNULL); - if (paramType.isManaged) { - flow.setLocalFlag(argumentLocal.index, LocalFlags.RETAINED); - body.push( - module.local_set(argumentLocal.index, - this.makeRetain(paramExpr) - ) - ); - } else { - body.push( - module.local_set(argumentLocal.index, paramExpr) - ); - } - } - } - // Compile optional parameter initializers in the scope of the inlined flow + // Compile omitted arguments with final argument locals blocked. Doesn't need to take care of + // side-effects within earlier expressions because these already happened on set. this.currentFlow = flow; - var numParameters = signature.parameterTypes.length; for (let i = numArguments; i < numParameters; ++i) { let initType = parameterTypes[i]; let initExpr = this.compileExpression( @@ -6305,24 +6295,20 @@ export class Compiler extends DiagnosticEmitter { initType, ContextualFlags.IMPLICIT ); - if (canAlias && getExpressionId(initExpr) == ExpressionId.LocalGet) { - flow.addScopedAlias(signature.getParameterName(i), initType, getLocalGetIndex(initExpr)); + let argumentLocal = flow.addScopedLocal(signature.getParameterName(i), initType); + if (!flow.canOverflow(initExpr, initType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.WRAPPED); + if (flow.isNonnull(initExpr, initType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.NONNULL); + if (initType.isManaged) { + flow.setLocalFlag(argumentLocal.index, LocalFlags.RETAINED); + body.push( + module.local_set(argumentLocal.index, + this.makeRetain(initExpr) + ) + ); } else { - let argumentLocal = flow.addScopedLocal(signature.getParameterName(i), initType); - if (!flow.canOverflow(initExpr, initType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.WRAPPED); - if (flow.isNonnull(initExpr, initType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.NONNULL); - if (initType.isManaged) { - flow.setLocalFlag(argumentLocal.index, LocalFlags.RETAINED); - body.push( - module.local_set(argumentLocal.index, - this.makeRetain(initExpr) - ) - ); - } else { - body.push( - module.local_set(argumentLocal.index, initExpr) - ); - } + body.push( + module.local_set(argumentLocal.index, initExpr) + ); } } @@ -6539,7 +6525,7 @@ export class Compiler extends DiagnosticEmitter { var flow = this.currentFlow; var usizeType = this.options.usizeType; var nativeSizeType = this.options.nativeSizeType; - var temp1 = flow.getTempLocal(usizeType, oldExpr); + var temp1 = flow.getTempLocal(usizeType, findUsedLocals(oldExpr)); var temp2 = flow.getAndFreeTempLocal(usizeType); flow.freeTempLocal(temp1); return module.block(null, [ @@ -6567,7 +6553,7 @@ export class Compiler extends DiagnosticEmitter { var flow = this.currentFlow; var usizeType = this.options.usizeType; var nativeSizeType = this.options.nativeSizeType; - var temp = flow.getAndFreeTempLocal(usizeType, oldExpr); + var temp = flow.getAndFreeTempLocal(usizeType, findUsedLocals(oldExpr)); return module.block(null, [ module.local_set(temp.index, newExpr), this.makeRelease(oldExpr), @@ -6961,7 +6947,7 @@ export class Compiler extends DiagnosticEmitter { ); return this.compileCallDirect(indexedGet, [ expression.elementExpression - ], expression, thisArg, false, contextualFlags & (ContextualFlags.WILL_DROP | ContextualFlags.SKIP_AUTORELEASE)); + ], expression, thisArg, contextualFlags & (ContextualFlags.WILL_DROP | ContextualFlags.SKIP_AUTORELEASE)); } } this.error( @@ -7931,7 +7917,6 @@ export class Compiler extends DiagnosticEmitter { argumentExpressions, reportNode, this.options.usizeType.toNativeZero(this.module), - false, contextualFlags ); if (getExpressionType(expr) != NativeType.None) { // possibly IMM_DROPPED diff --git a/src/flow.ts b/src/flow.ts index 63d00208..f8822def 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -299,7 +299,7 @@ export class Flow { } /** Gets a free temporary local of the specified type. */ - getTempLocal(type: Type, except: ExpressionRef = 0): Local { + getTempLocal(type: Type, except: Set | null = null): Local { var parentFunction = this.parentFunction; var temps: Local[] | null; switch (type.toNativeType()) { @@ -313,14 +313,14 @@ export class Flow { var local: Local; if (except) { if (temps && temps.length) { - let usedLocals = new Set(); - traverse(except, usedLocals, findUsedLocals); for (let i = 0, k = temps.length; i < k; ++i) { - if (!usedLocals.has(temps[i].index)) { + if (!except.has(temps[i].index)) { local = temps[i]; let k = temps.length - 1; while (i < k) unchecked(temps[i] = temps[i++ + 1]); temps.length = k; + local.type = type; + local.flags = CommonFlags.NONE; this.unsetLocalFlag(local.index, ~0); return local; } @@ -341,7 +341,7 @@ export class Flow { } /** Gets a local that sticks around until this flow is exited, and then released. */ - getAutoreleaseLocal(type: Type, except: ExpressionRef = 0): Local { + getAutoreleaseLocal(type: Type, except: Set | null = null): Local { var local = this.getTempLocal(type, except); local.set(CommonFlags.SCOPED); var scopedLocals = this.scopedLocals; @@ -386,30 +386,27 @@ export class Flow { } /** Gets and immediately frees a temporary local of the specified type. */ - getAndFreeTempLocal(type: Type, except: ExpressionRef = 0): Local { + getAndFreeTempLocal(type: Type, except: Set | null = null): Local { var local = this.getTempLocal(type, except); this.freeTempLocal(local); return local; } + /** Gets the scoped local of the specified name. */ + getScopedLocal(name: string): Local | null { + var scopedLocals = this.scopedLocals; + if (scopedLocals && scopedLocals.has(name)) return scopedLocals.get(name); + return null; + } + /** Adds a new scoped local of the specified name. */ - addScopedLocal(name: string, type: Type, reportNode: Node | null = null): Local { - var scopedLocal = this.getTempLocal(type); - if (!this.scopedLocals) this.scopedLocals = new Map(); - else { - let existingLocal = this.scopedLocals.get(name); - if (existingLocal) { - if (reportNode) { - this.parentFunction.program.error( - DiagnosticCode.Duplicate_identifier_0, - reportNode.range - ); - } - return existingLocal; - } - } + addScopedLocal(name: string, type: Type, except: Set | null = null): Local { + var scopedLocal = this.getTempLocal(type, except); + var scopedLocals = this.scopedLocals; + if (!scopedLocals) this.scopedLocals = scopedLocals = new Map(); + else assert(!scopedLocals.has(name)); scopedLocal.set(CommonFlags.SCOPED); - this.scopedLocals.set(name, scopedLocal); + scopedLocals.set(name, scopedLocal); return scopedLocal; } @@ -429,38 +426,12 @@ export class Flow { } } assert(index < this.parentFunction.localsByIndex.length); - var scopedAlias = new Local( - name, - index, - type, - this.parentFunction - ); + var scopedAlias = new Local(name, index, type, this.parentFunction); // not flagged as SCOPED as it must not be free'd when the flow is finalized this.scopedLocals.set(name, scopedAlias); return scopedAlias; } - /** Blocks any locals that might be used in an inlining operation. */ - blockLocalsBeforeInlining(instance: Function): Local[] { - var signature = instance.signature; - var parameterTypes = signature.parameterTypes; - var numParameters = parameterTypes.length; - var temps = new Array(numParameters); - for (let i = 0; i < numParameters; ++i) { - temps[i] = this.getTempLocal(parameterTypes[i]); - } - var thisType = signature.thisType; - if (thisType) temps.push(this.getTempLocal(thisType)); - return temps; - } - - /** Unblocks the specified locals. */ - unblockLocals(temps: Local[]): void { - for (let i = 0, k = temps.length; i < k; ++i) { - this.freeTempLocal(temps[i]); - } - } - /** Frees this flow's scoped variables and returns its parent flow. */ freeScopedLocals(): void { if (this.scopedLocals) { @@ -1080,8 +1051,14 @@ function canConversionOverflow(fromType: Type, toType: Type): bool { || fromType.is(TypeFlags.SIGNED) != toType.is(TypeFlags.SIGNED); } +/** Finds all indexes of locals used in the specified expression. */ +export function findUsedLocals(expr: ExpressionRef, used: Set = new Set()): Set { + traverse(expr, used, findUsedLocalsVisit); + return used; +} + /** A visitor function for use with `traverse` that finds all indexes of used locals. */ -function findUsedLocals(expr: ExpressionRef, used: Set): void { +function findUsedLocalsVisit(expr: ExpressionRef, used: Set): void { switch (getExpressionId(expr)) { case ExpressionId.LocalGet: { used.add(getLocalGetIndex(expr)); @@ -1091,6 +1068,6 @@ function findUsedLocals(expr: ExpressionRef, used: Set): void { used.add(getLocalSetIndex(expr)); // fall-through for value } - default: traverse(expr, used, findUsedLocals); + default: traverse(expr, used, findUsedLocalsVisit); } } diff --git a/tests/compiler/inlining-blocklocals.optimized.wat b/tests/compiler/inlining-blocklocals.optimized.wat index 3f0d0872..5fee10c6 100644 --- a/tests/compiler/inlining-blocklocals.optimized.wat +++ b/tests/compiler/inlining-blocklocals.optimized.wat @@ -7,6 +7,7 @@ (global $inlining-blocklocals/b (mut i32) (i32.const 2)) (global $inlining-blocklocals/theCall_a (mut i32) (i32.const 0)) (global $inlining-blocklocals/theCall_b (mut i32) (i32.const 0)) + (global $inlining-blocklocals/theCall_c (mut i32) (i32.const 0)) (export "memory" (memory $0)) (start $start) (func $inlining-blocklocals/test (; 1 ;) (type $FUNCSIG$v) @@ -20,13 +21,15 @@ global.set $inlining-blocklocals/theCall_a local.get $0 global.set $inlining-blocklocals/theCall_b + i32.const 3 + global.set $inlining-blocklocals/theCall_c global.get $inlining-blocklocals/theCall_a i32.const 1 i32.ne if i32.const 0 i32.const 24 - i32.const 16 + i32.const 18 i32.const 2 call $~lib/builtins/abort unreachable @@ -37,7 +40,18 @@ if i32.const 0 i32.const 24 - i32.const 17 + i32.const 19 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $inlining-blocklocals/theCall_c + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 20 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/inlining-blocklocals.ts b/tests/compiler/inlining-blocklocals.ts index b03de78e..b11815ad 100644 --- a/tests/compiler/inlining-blocklocals.ts +++ b/tests/compiler/inlining-blocklocals.ts @@ -2,18 +2,22 @@ var b: i32 = 2; var theCall_a: i32; var theCall_b: i32; +var theCall_c: i32; -@inline function theCall(a: i32, b: i32): void { +@inline function theCall(a: i32, b: i32, c: i32): void { theCall_a = a; theCall_b = b; + theCall_c = c; } function test(): void { var a = 1; - // no blocking: t1 = a; t2 = (t1 = b) + 1, t1; theCall ✖ - // blocking: t1 = a; t2 = (t3 = b) + 1, t3; theCall ✔ - theCall(a, b++); + // see comment in Compiler#makeCallInlinePrechecked + // theCall($3, $2=[except $3], $1=[except $3,$2]) + theCall(a++, b++, ++a); assert(theCall_a == 1); assert(theCall_b == 2); + assert(theCall_c == 3); + assert(a == 3); } test(); diff --git a/tests/compiler/inlining-blocklocals.untouched.wat b/tests/compiler/inlining-blocklocals.untouched.wat index 0f928507..7f265c36 100644 --- a/tests/compiler/inlining-blocklocals.untouched.wat +++ b/tests/compiler/inlining-blocklocals.untouched.wat @@ -9,6 +9,7 @@ (global $inlining-blocklocals/b (mut i32) (i32.const 2)) (global $inlining-blocklocals/theCall_a (mut i32) (i32.const 0)) (global $inlining-blocklocals/theCall_b (mut i32) (i32.const 0)) + (global $inlining-blocklocals/theCall_c (mut i32) (i32.const 0)) (export "memory" (memory $0)) (start $start) (func $inlining-blocklocals/test (; 1 ;) (type $FUNCSIG$v) @@ -19,21 +20,35 @@ i32.const 1 local.set $0 block $inlining-blocklocals/theCall|inlined.0 - local.get $0 - local.set $2 + block (result i32) + local.get $0 + local.tee $1 + i32.const 1 + i32.add + local.set $0 + local.get $1 + end + local.set $3 block (result i32) global.get $inlining-blocklocals/b - local.tee $3 + local.tee $1 i32.const 1 i32.add global.set $inlining-blocklocals/b - local.get $3 + local.get $1 end + local.set $2 + local.get $0 + i32.const 1 + i32.add + local.tee $0 local.set $1 - local.get $2 + local.get $3 global.set $inlining-blocklocals/theCall_a - local.get $1 + local.get $2 global.set $inlining-blocklocals/theCall_b + local.get $1 + global.set $inlining-blocklocals/theCall_c end global.get $inlining-blocklocals/theCall_a i32.const 1 @@ -42,7 +57,7 @@ if i32.const 0 i32.const 24 - i32.const 16 + i32.const 18 i32.const 2 call $~lib/builtins/abort unreachable @@ -54,7 +69,31 @@ if i32.const 0 i32.const 24 - i32.const 17 + i32.const 19 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $inlining-blocklocals/theCall_c + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 20 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 21 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index 71060d88..e30071b5 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -195,18 +195,18 @@ end block $inlining/func_ii_loc|inlined.1 (result i32) i32.const 3 - local.set $4 - local.get $4 - local.set $3 - local.get $3 - local.set $6 - local.get $6 local.set $5 local.get $5 - i32.const 1 - i32.add + local.set $4 + local.get $4 local.set $2 local.get $2 + local.set $6 + local.get $6 + i32.const 1 + i32.add + local.set $3 + local.get $3 end i32.const 4 i32.eq @@ -245,10 +245,10 @@ end block $inlining/Foo.method_static|inlined.0 (result i32) i32.const 42 - local.set $3 + local.set $6 i32.const 2 local.set $2 - local.get $3 + local.get $6 local.get $2 i32.add end @@ -270,7 +270,7 @@ local.get $7 local.set $4 i32.const 43 - local.set $3 + local.set $5 i32.const 3 local.set $2 local.get $4 @@ -431,7 +431,7 @@ i32.store offset=4 local.get $3 end - local.tee $2 + local.tee $3 local.set $1 local.get $1 i32.const 3 @@ -444,7 +444,7 @@ i32.store offset=12 local.get $1 end - local.tee $2 + local.tee $3 call $~lib/rt/stub/__retain local.set $4 local.get $4 @@ -499,7 +499,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 call $~lib/rt/stub/__release local.get $4 call $~lib/rt/stub/__release diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index d56f9943..46c69f14 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -1051,31 +1051,31 @@ local.get $3 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.lt_s - local.tee $2 + local.tee $1 if i32.const 0 - local.get $1 + local.get $2 i32.sub - local.set $1 + local.set $2 end - local.get $1 + local.get $2 end - local.get $1 + local.get $2 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.tee $1 + local.tee $2 call $~lib/util/number/utoa_simple local.get $0 i32.const 45 i32.const 43 - local.get $2 + local.get $1 select i32.store16 - local.get $1 + local.get $2 i32.const 2 i32.add else diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index 5e578f1a..4b8fd96a 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -632,11 +632,11 @@ (local $17 i32) (local $18 i32) (local $19 i64) - (local $20 i32) + (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i64) + (local $24 i32) (local $25 i32) (local $26 i32) i32.const 0 @@ -927,13 +927,13 @@ global.set $~lib/util/number/_K block $~lib/util/number/grisuRound|inlined.0 local.get $0 - local.set $20 + local.set $24 local.get $15 local.set $18 local.get $5 - local.set $24 - local.get $19 local.set $23 + local.get $19 + local.set $22 local.get $16 local.get $14 i32.const 2 @@ -943,10 +943,10 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $22 - local.get $10 local.set $21 - local.get $20 + local.get $10 + local.set $20 + local.get $24 local.get $18 i32.const 1 i32.sub @@ -959,34 +959,34 @@ local.set $26 block $break|2 loop $continue|2 - local.get $23 - local.get $21 + local.get $22 + local.get $20 i64.lt_u if (result i32) - local.get $24 local.get $23 - i64.sub local.get $22 + i64.sub + local.get $21 i64.ge_u else i32.const 0 end if (result i32) - local.get $23 local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.lt_u if (result i32) i32.const 1 else - local.get $21 - local.get $23 - i64.sub - local.get $23 + local.get $20 + local.get $22 + i64.sub local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.sub i64.gt_u end @@ -998,10 +998,10 @@ i32.const 1 i32.sub local.set $26 - local.get $23 local.get $22 + local.get $21 i64.add - local.set $23 + local.set $22 br $continue|2 end end @@ -1090,58 +1090,58 @@ local.set $10 block $~lib/util/number/grisuRound|inlined.1 local.get $0 - local.set $26 - local.get $15 - local.set $17 - local.get $5 local.set $24 - local.get $13 + local.get $15 + local.set $18 + local.get $5 local.set $23 - local.get $8 + local.get $13 local.set $22 - local.get $10 + local.get $8 local.set $21 - local.get $26 - local.get $17 + local.get $10 + local.set $20 + local.get $24 + local.get $18 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $17 + local.get $17 i32.load16_u - local.set $18 + local.set $26 block $break|4 loop $continue|4 - local.get $23 - local.get $21 + local.get $22 + local.get $20 i64.lt_u if (result i32) - local.get $24 local.get $23 - i64.sub local.get $22 + i64.sub + local.get $21 i64.ge_u else i32.const 0 end if (result i32) - local.get $23 local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.lt_u if (result i32) i32.const 1 else - local.get $21 - local.get $23 - i64.sub - local.get $23 + local.get $20 + local.get $22 + i64.sub local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.sub i64.gt_u end @@ -1149,20 +1149,20 @@ i32.const 0 end if - local.get $18 + local.get $26 i32.const 1 i32.sub - local.set $18 - local.get $23 + local.set $26 local.get $22 + local.get $21 i64.add - local.set $23 + local.set $22 br $continue|4 end end end - local.get $25 - local.get $18 + local.get $17 + local.get $26 i32.store16 end local.get $15 @@ -2789,31 +2789,31 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $4 local.get $3 i32.const 1 i32.sub - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.const 0 i32.lt_s local.set $6 local.get $6 if i32.const 0 - local.get $4 + local.get $5 i32.sub - local.set $4 + local.set $5 end - local.get $4 + local.get $5 call $~lib/util/number/decimalCount32 i32.const 1 i32.add local.set $7 block $~lib/util/number/utoa32_core|inlined.1 - local.get $5 - local.set $10 local.get $4 + local.set $10 + local.get $5 local.set $9 local.get $7 local.set $8 @@ -2822,7 +2822,7 @@ local.get $8 call $~lib/util/number/utoa32_lut end - local.get $5 + local.get $4 i32.const 45 i32.const 43 local.get $6 @@ -2865,46 +2865,46 @@ i32.add i32.const 4 i32.add - local.set $4 + local.set $9 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 0 i32.lt_s - local.set $5 - local.get $5 + local.set $6 + local.get $6 if i32.const 0 - local.get $6 + local.get $8 i32.sub - local.set $6 + local.set $8 end - local.get $6 + local.get $8 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $8 + local.set $4 block $~lib/util/number/utoa32_core|inlined.2 - local.get $4 - local.set $11 - local.get $6 - local.set $10 - local.get $8 - local.set $9 - local.get $11 - local.get $10 local.get $9 + local.set $11 + local.get $8 + local.set $5 + local.get $4 + local.set $10 + local.get $11 + local.get $5 + local.get $10 call $~lib/util/number/utoa32_lut end - local.get $4 + local.get $9 i32.const 45 i32.const 43 - local.get $5 + local.get $6 select i32.store16 - local.get $8 + local.get $4 end i32.add local.set $1 @@ -2924,15 +2924,15 @@ ) (func $~lib/util/number/dtoa_core (; 20 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i64) (local $7 i32) (local $8 i64) (local $9 i64) - (local $10 i64) - (local $11 i32) + (local $10 i32) + (local $11 i64) (local $12 i64) (local $13 i32) (local $14 i32) @@ -2965,12 +2965,12 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $0 local.set $5 - local.get $2 + local.get $0 local.set $4 - local.get $3 + local.get $2 + local.set $3 + local.get $5 i64.reinterpret_f64 local.set $6 local.get $6 @@ -3006,16 +3006,16 @@ local.set $7 block $~lib/util/number/normalizedBoundaries|inlined.0 local.get $9 - local.set $10 - local.get $7 local.set $11 - local.get $10 + local.get $7 + local.set $10 + local.get $11 i64.const 1 i64.shl i64.const 1 i64.add local.set $12 - local.get $11 + local.get $10 i32.const 1 i32.sub local.set $13 @@ -3033,20 +3033,20 @@ i32.sub local.set $13 i32.const 1 - local.get $10 + local.get $11 i64.const 4503599627370496 i64.eq i32.add local.set $15 local.get $12 global.set $~lib/util/number/_frc_plus - local.get $10 + local.get $11 local.get $15 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $11 + local.get $10 local.get $15 i32.sub local.get $13 @@ -3059,9 +3059,9 @@ end block $~lib/util/number/getCachedPower|inlined.0 global.get $~lib/util/number/_exp - local.set $15 + local.set $10 i32.const -61 - local.get $15 + local.get $10 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3071,62 +3071,62 @@ local.set $16 local.get $16 i32.trunc_f64_s - local.set $14 - local.get $14 - local.get $14 + local.set $15 + local.get $15 + local.get $15 f64.convert_i32_s local.get $16 f64.ne i32.add - local.set $14 - local.get $14 + local.set $15 + local.get $15 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $13 + local.set $14 i32.const 348 - local.get $13 + local.get $14 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 1392 - local.get $13 + local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_frc_pow i32.const 1616 - local.get $13 + local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_exp_pow end local.get $9 i64.clz i32.wrap_i64 - local.set $13 + local.set $14 local.get $9 - local.get $13 + local.get $14 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $13 + local.get $14 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow local.set $12 global.get $~lib/util/number/_exp_pow - local.set $14 + local.set $15 block $~lib/util/number/umul64f|inlined.0 (result i64) local.get $9 local.set $17 local.get $12 - local.set $10 + local.set $11 local.get $17 i64.const 4294967295 i64.and local.set $18 - local.get $10 + local.get $11 i64.const 4294967295 i64.and local.set $19 @@ -3134,7 +3134,7 @@ i64.const 32 i64.shr_u local.set $20 - local.get $10 + local.get $11 i64.const 32 i64.shr_u local.set $21 @@ -3181,53 +3181,53 @@ local.set $24 block $~lib/util/number/umul64e|inlined.0 (result i32) local.get $7 - local.set $11 - local.get $14 - local.set $15 - local.get $11 + local.set $10 local.get $15 + local.set $13 + local.get $10 + local.get $13 i32.add i32.const 64 i32.add end - local.set $15 + local.set $10 block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $22 + local.set $17 local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and local.set $23 - local.get $22 + local.get $11 i64.const 4294967295 i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u local.set $21 - local.get $23 - i64.const 4294967295 - i64.and + local.get $11 + i64.const 32 + i64.shr_u local.set $20 - local.get $22 - i64.const 32 - i64.shr_u - local.set $19 local.get $23 - i64.const 32 - i64.shr_u - local.set $18 + local.get $22 + i64.mul + local.set $19 local.get $21 - local.get $20 + local.get $22 i64.mul - local.set $10 local.get $19 - local.get $20 - i64.mul - local.get $10 i64.const 32 i64.shr_u i64.add - local.set $17 - local.get $21 - local.get $18 + local.set $18 + local.get $23 + local.get $20 i64.mul - local.get $17 + local.get $18 i64.const 4294967295 i64.and i64.add @@ -3236,18 +3236,18 @@ i64.const 2147483647 i64.add local.set $25 - local.get $17 + local.get $18 i64.const 32 i64.shr_u - local.set $17 + local.set $18 local.get $25 i64.const 32 i64.shr_u local.set $25 - local.get $19 - local.get $18 + local.get $21 + local.get $20 i64.mul - local.get $17 + local.get $18 i64.add local.get $25 i64.add @@ -3258,52 +3258,52 @@ block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp local.set $26 - local.get $14 - local.set $11 + local.get $15 + local.set $13 local.get $26 - local.get $11 + local.get $13 i32.add i32.const 64 i32.add end - local.set $11 + local.set $26 block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $10 - local.get $12 local.set $17 - local.get $10 + local.get $12 + local.set $11 + local.get $17 i64.const 4294967295 i64.and local.set $18 - local.get $17 + local.get $11 i64.const 4294967295 i64.and local.set $19 - local.get $10 + local.get $17 i64.const 32 i64.shr_u local.set $20 - local.get $17 + local.get $11 i64.const 32 i64.shr_u local.set $21 local.get $18 local.get $19 i64.mul - local.set $23 + local.set $22 local.get $20 local.get $19 i64.mul - local.get $23 + local.get $22 i64.const 32 i64.shr_u i64.add - local.set $22 + local.set $23 local.get $18 local.get $21 i64.mul - local.get $22 + local.get $23 i64.const 4294967295 i64.and i64.add @@ -3312,10 +3312,10 @@ i64.const 2147483647 i64.add local.set $27 - local.get $22 + local.get $23 i64.const 32 i64.shr_u - local.set $22 + local.set $23 local.get $27 i64.const 32 i64.shr_u @@ -3323,7 +3323,7 @@ local.get $20 local.get $21 i64.mul - local.get $22 + local.get $23 i64.add local.get $27 i64.add @@ -3334,14 +3334,14 @@ local.get $25 local.get $27 i64.sub - local.set $22 - local.get $5 - local.get $24 - local.get $15 - local.get $25 - local.get $11 - local.get $22 + local.set $23 local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 call $~lib/util/number/genDigits end local.set $28 diff --git a/tests/compiler/rc/global-init.untouched.wat b/tests/compiler/rc/global-init.untouched.wat index b10c2a54..58134718 100644 --- a/tests/compiler/rc/global-init.untouched.wat +++ b/tests/compiler/rc/global-init.untouched.wat @@ -277,30 +277,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.0 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -432,17 +432,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -454,7 +454,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -473,17 +473,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -592,16 +592,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -625,21 +625,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -652,16 +652,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -672,8 +672,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -952,9 +952,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -962,23 +962,23 @@ block $~lib/rt/tlsf/SETSL|inlined.2 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -986,37 +986,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.2 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1182,23 +1182,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1222,12 +1222,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1239,14 +1239,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/rc/local-init.untouched.wat b/tests/compiler/rc/local-init.untouched.wat index 1da7b2f0..0d73932e 100644 --- a/tests/compiler/rc/local-init.untouched.wat +++ b/tests/compiler/rc/local-init.untouched.wat @@ -271,30 +271,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.0 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -426,17 +426,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -448,7 +448,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -467,17 +467,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -586,16 +586,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -619,21 +619,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -646,16 +646,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -666,8 +666,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -946,9 +946,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -956,23 +956,23 @@ block $~lib/rt/tlsf/SETSL|inlined.2 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -980,37 +980,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.2 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1176,23 +1176,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1216,12 +1216,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1233,14 +1233,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/rc/logical-and-mismatch.untouched.wat b/tests/compiler/rc/logical-and-mismatch.untouched.wat index 9033ded7..6fabee37 100644 --- a/tests/compiler/rc/logical-and-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-and-mismatch.untouched.wat @@ -210,30 +210,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -365,17 +365,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -387,7 +387,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -406,17 +406,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -525,16 +525,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -558,21 +558,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -585,16 +585,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -605,8 +605,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -831,9 +831,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -841,23 +841,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -865,37 +865,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1061,23 +1061,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1101,12 +1101,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1118,14 +1118,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/rc/logical-or-mismatch.untouched.wat b/tests/compiler/rc/logical-or-mismatch.untouched.wat index 0b8d94a2..4b43b272 100644 --- a/tests/compiler/rc/logical-or-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-or-mismatch.untouched.wat @@ -210,30 +210,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -365,17 +365,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -387,7 +387,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -406,17 +406,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -525,16 +525,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -558,21 +558,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -585,16 +585,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -605,8 +605,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -831,9 +831,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -841,23 +841,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -865,37 +865,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1061,23 +1061,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1101,12 +1101,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1118,14 +1118,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/rc/rereturn.untouched.wat b/tests/compiler/rc/rereturn.untouched.wat index edbac014..a2e9e495 100644 --- a/tests/compiler/rc/rereturn.untouched.wat +++ b/tests/compiler/rc/rereturn.untouched.wat @@ -210,30 +210,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -365,17 +365,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -387,7 +387,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -406,17 +406,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -525,16 +525,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -558,21 +558,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -585,16 +585,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -605,8 +605,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -831,9 +831,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -841,23 +841,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -865,37 +865,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1061,23 +1061,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1101,12 +1101,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1118,14 +1118,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/rc/ternary-mismatch.untouched.wat b/tests/compiler/rc/ternary-mismatch.untouched.wat index 0c6c9ed8..6d763b4a 100644 --- a/tests/compiler/rc/ternary-mismatch.untouched.wat +++ b/tests/compiler/rc/ternary-mismatch.untouched.wat @@ -212,30 +212,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -367,17 +367,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -389,7 +389,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -408,17 +408,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -527,16 +527,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -560,21 +560,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -587,16 +587,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -607,8 +607,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -833,9 +833,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -843,23 +843,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -867,37 +867,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1063,23 +1063,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1103,12 +1103,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1120,14 +1120,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index ba86ecb6..ec44ee1e 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -219,30 +219,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -374,17 +374,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -396,7 +396,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -415,17 +415,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -534,16 +534,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -567,21 +567,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -594,16 +594,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -614,8 +614,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -840,9 +840,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -850,23 +850,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -874,37 +874,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1070,23 +1070,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1110,12 +1110,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1127,14 +1127,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/runtime-full.untouched.wat b/tests/compiler/runtime-full.untouched.wat index d4c12994..56bf0c71 100644 --- a/tests/compiler/runtime-full.untouched.wat +++ b/tests/compiler/runtime-full.untouched.wat @@ -208,30 +208,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -363,17 +363,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -385,7 +385,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -404,17 +404,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -523,16 +523,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -556,21 +556,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -583,16 +583,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -603,8 +603,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -829,9 +829,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -839,23 +839,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -863,37 +863,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1059,23 +1059,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1099,12 +1099,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1116,14 +1116,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index 24ed71a0..bef62e90 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -289,30 +289,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -444,17 +444,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -466,7 +466,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -485,17 +485,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -604,16 +604,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -637,21 +637,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -664,16 +664,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -684,8 +684,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -910,9 +910,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -920,23 +920,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -944,37 +944,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1140,23 +1140,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1180,12 +1180,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1197,14 +1197,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 9735bdc7..a9e75a11 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -8553,31 +8553,31 @@ local.get $3 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.lt_s - local.tee $2 + local.tee $1 if i32.const 0 - local.get $1 + local.get $2 i32.sub - local.set $1 + local.set $2 end - local.get $1 + local.get $2 end - local.get $1 + local.get $2 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.tee $1 + local.tee $2 call $~lib/util/number/utoa_simple local.get $0 i32.const 45 i32.const 43 - local.get $2 + local.get $1 select i32.store16 - local.get $1 + local.get $2 i32.const 2 i32.add else diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index fb353bc1..b63e92e6 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -422,30 +422,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -577,17 +577,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -599,7 +599,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -618,17 +618,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -737,16 +737,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -770,21 +770,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -797,16 +797,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -817,8 +817,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -1043,9 +1043,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -1053,23 +1053,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -1077,37 +1077,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1273,23 +1273,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1313,12 +1313,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1330,14 +1330,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 @@ -8849,21 +8849,21 @@ local.get $3 local.set $6 local.get $2 - local.set $4 - local.get $1 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $5 i32.const 256 i32.lt_s if local.get $6 - local.get $4 local.get $5 + local.get $4 call $~lib/util/sort/insertionSort else local.get $6 - local.get $4 local.get $5 + local.get $4 call $~lib/util/sort/weakHeapSort end end @@ -9337,21 +9337,21 @@ local.get $3 local.set $6 local.get $2 - local.set $4 - local.get $1 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $5 i32.const 256 i32.lt_s if local.get $6 - local.get $4 local.get $5 + local.get $4 call $~lib/util/sort/insertionSort else local.get $6 - local.get $4 local.get $5 + local.get $4 call $~lib/util/sort/weakHeapSort end end @@ -10002,14 +10002,14 @@ end block $~lib/util/sort/SORT<~lib/array/Array>|inlined.0 local.get $3 - local.set $6 + local.set $5 local.get $2 local.set $4 local.get $1 - local.set $5 - local.get $6 - local.get $4 + local.set $6 local.get $5 + local.get $4 + local.get $6 call $~lib/util/sort/insertionSort<~lib/array/Array> end local.get $0 @@ -10503,14 +10503,14 @@ end block $~lib/util/sort/SORT>|inlined.0 local.get $3 - local.set $6 + local.set $5 local.get $2 local.set $4 local.get $1 - local.set $5 - local.get $6 - local.get $4 + local.set $6 local.get $5 + local.get $4 + local.get $6 call $~lib/util/sort/insertionSort> end local.get $0 @@ -10820,14 +10820,14 @@ end block $~lib/util/sort/SORT<~lib/string/String | null>|inlined.0 local.get $3 - local.set $6 + local.set $5 local.get $2 local.set $4 local.get $1 - local.set $5 - local.get $6 - local.get $4 + local.set $6 local.get $5 + local.get $4 + local.get $6 call $~lib/util/sort/insertionSort<~lib/string/String | null> end local.get $0 @@ -11867,14 +11867,14 @@ end block $~lib/util/sort/SORT<~lib/string/String>|inlined.0 local.get $3 - local.set $6 + local.set $5 local.get $2 local.set $4 local.get $1 - local.set $5 - local.get $6 - local.get $4 + local.set $6 local.get $5 + local.get $4 + local.get $6 call $~lib/util/sort/insertionSort<~lib/string/String> end local.get $0 @@ -13254,11 +13254,11 @@ (local $17 i32) (local $18 i32) (local $19 i64) - (local $20 i32) + (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i64) + (local $24 i32) (local $25 i32) (local $26 i32) i32.const 0 @@ -13549,13 +13549,13 @@ global.set $~lib/util/number/_K block $~lib/util/number/grisuRound|inlined.0 local.get $0 - local.set $20 + local.set $24 local.get $15 local.set $18 local.get $5 - local.set $24 - local.get $19 local.set $23 + local.get $19 + local.set $22 local.get $16 local.get $14 i32.const 2 @@ -13565,10 +13565,10 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $22 - local.get $10 local.set $21 - local.get $20 + local.get $10 + local.set $20 + local.get $24 local.get $18 i32.const 1 i32.sub @@ -13581,34 +13581,34 @@ local.set $26 block $break|2 loop $continue|2 - local.get $23 - local.get $21 + local.get $22 + local.get $20 i64.lt_u if (result i32) - local.get $24 local.get $23 - i64.sub local.get $22 + i64.sub + local.get $21 i64.ge_u else i32.const 0 end if (result i32) - local.get $23 local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.lt_u if (result i32) i32.const 1 else - local.get $21 - local.get $23 - i64.sub - local.get $23 + local.get $20 + local.get $22 + i64.sub local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.sub i64.gt_u end @@ -13620,10 +13620,10 @@ i32.const 1 i32.sub local.set $26 - local.get $23 local.get $22 + local.get $21 i64.add - local.set $23 + local.set $22 br $continue|2 end end @@ -13712,58 +13712,58 @@ local.set $10 block $~lib/util/number/grisuRound|inlined.1 local.get $0 - local.set $26 - local.get $15 - local.set $17 - local.get $5 local.set $24 - local.get $13 + local.get $15 + local.set $18 + local.get $5 local.set $23 - local.get $8 + local.get $13 local.set $22 - local.get $10 + local.get $8 local.set $21 - local.get $26 - local.get $17 + local.get $10 + local.set $20 + local.get $24 + local.get $18 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $17 + local.get $17 i32.load16_u - local.set $18 + local.set $26 block $break|4 loop $continue|4 - local.get $23 - local.get $21 + local.get $22 + local.get $20 i64.lt_u if (result i32) - local.get $24 local.get $23 - i64.sub local.get $22 + i64.sub + local.get $21 i64.ge_u else i32.const 0 end if (result i32) - local.get $23 local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.lt_u if (result i32) i32.const 1 else - local.get $21 - local.get $23 - i64.sub - local.get $23 + local.get $20 + local.get $22 + i64.sub local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.sub i64.gt_u end @@ -13771,20 +13771,20 @@ i32.const 0 end if - local.get $18 + local.get $26 i32.const 1 i32.sub - local.set $18 - local.get $23 + local.set $26 local.get $22 + local.get $21 i64.add - local.set $23 + local.set $22 br $continue|4 end end end - local.get $25 - local.get $18 + local.get $17 + local.get $26 i32.store16 end local.get $15 @@ -13993,31 +13993,31 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $4 local.get $3 i32.const 1 i32.sub - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.const 0 i32.lt_s local.set $6 local.get $6 if i32.const 0 - local.get $4 + local.get $5 i32.sub - local.set $4 + local.set $5 end - local.get $4 + local.get $5 call $~lib/util/number/decimalCount32 i32.const 1 i32.add local.set $7 block $~lib/util/number/utoa32_core|inlined.4 - local.get $5 - local.set $10 local.get $4 + local.set $10 + local.get $5 local.set $9 local.get $7 local.set $8 @@ -14026,7 +14026,7 @@ local.get $8 call $~lib/util/number/utoa32_lut end - local.get $5 + local.get $4 i32.const 45 i32.const 43 local.get $6 @@ -14069,46 +14069,46 @@ i32.add i32.const 4 i32.add - local.set $4 + local.set $9 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 0 i32.lt_s - local.set $5 - local.get $5 + local.set $6 + local.get $6 if i32.const 0 - local.get $6 + local.get $8 i32.sub - local.set $6 + local.set $8 end - local.get $6 + local.get $8 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $8 + local.set $4 block $~lib/util/number/utoa32_core|inlined.5 - local.get $4 - local.set $11 - local.get $6 - local.set $10 - local.get $8 - local.set $9 - local.get $11 - local.get $10 local.get $9 + local.set $11 + local.get $8 + local.set $5 + local.get $4 + local.set $10 + local.get $11 + local.get $5 + local.get $10 call $~lib/util/number/utoa32_lut end - local.get $4 + local.get $9 i32.const 45 i32.const 43 - local.get $5 + local.get $6 select i32.store16 - local.get $8 + local.get $4 end i32.add local.set $1 @@ -14128,15 +14128,15 @@ ) (func $~lib/util/number/dtoa_core (; 250 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i64) (local $7 i32) (local $8 i64) (local $9 i64) - (local $10 i64) - (local $11 i32) + (local $10 i32) + (local $11 i64) (local $12 i64) (local $13 i32) (local $14 i32) @@ -14169,12 +14169,12 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $0 local.set $5 - local.get $2 + local.get $0 local.set $4 - local.get $3 + local.get $2 + local.set $3 + local.get $5 i64.reinterpret_f64 local.set $6 local.get $6 @@ -14210,16 +14210,16 @@ local.set $7 block $~lib/util/number/normalizedBoundaries|inlined.0 local.get $9 - local.set $10 - local.get $7 local.set $11 - local.get $10 + local.get $7 + local.set $10 + local.get $11 i64.const 1 i64.shl i64.const 1 i64.add local.set $12 - local.get $11 + local.get $10 i32.const 1 i32.sub local.set $13 @@ -14237,20 +14237,20 @@ i32.sub local.set $13 i32.const 1 - local.get $10 + local.get $11 i64.const 4503599627370496 i64.eq i32.add local.set $15 local.get $12 global.set $~lib/util/number/_frc_plus - local.get $10 + local.get $11 local.get $15 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $11 + local.get $10 local.get $15 i32.sub local.get $13 @@ -14263,9 +14263,9 @@ end block $~lib/util/number/getCachedPower|inlined.0 global.get $~lib/util/number/_exp - local.set $15 + local.set $10 i32.const -61 - local.get $15 + local.get $10 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -14275,62 +14275,62 @@ local.set $16 local.get $16 i32.trunc_f64_s - local.set $14 - local.get $14 - local.get $14 + local.set $15 + local.get $15 + local.get $15 f64.convert_i32_s local.get $16 f64.ne i32.add - local.set $14 - local.get $14 + local.set $15 + local.get $15 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $13 + local.set $14 i32.const 348 - local.get $13 + local.get $14 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 6200 - local.get $13 + local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_frc_pow i32.const 6424 - local.get $13 + local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_exp_pow end local.get $9 i64.clz i32.wrap_i64 - local.set $13 + local.set $14 local.get $9 - local.get $13 + local.get $14 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $13 + local.get $14 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow local.set $12 global.get $~lib/util/number/_exp_pow - local.set $14 + local.set $15 block $~lib/util/number/umul64f|inlined.0 (result i64) local.get $9 local.set $17 local.get $12 - local.set $10 + local.set $11 local.get $17 i64.const 4294967295 i64.and local.set $18 - local.get $10 + local.get $11 i64.const 4294967295 i64.and local.set $19 @@ -14338,7 +14338,7 @@ i64.const 32 i64.shr_u local.set $20 - local.get $10 + local.get $11 i64.const 32 i64.shr_u local.set $21 @@ -14385,53 +14385,53 @@ local.set $24 block $~lib/util/number/umul64e|inlined.0 (result i32) local.get $7 - local.set $11 - local.get $14 - local.set $15 - local.get $11 + local.set $10 local.get $15 + local.set $13 + local.get $10 + local.get $13 i32.add i32.const 64 i32.add end - local.set $15 + local.set $10 block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $22 + local.set $17 local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and local.set $23 - local.get $22 + local.get $11 i64.const 4294967295 i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u local.set $21 - local.get $23 - i64.const 4294967295 - i64.and + local.get $11 + i64.const 32 + i64.shr_u local.set $20 - local.get $22 - i64.const 32 - i64.shr_u - local.set $19 local.get $23 - i64.const 32 - i64.shr_u - local.set $18 + local.get $22 + i64.mul + local.set $19 local.get $21 - local.get $20 + local.get $22 i64.mul - local.set $10 local.get $19 - local.get $20 - i64.mul - local.get $10 i64.const 32 i64.shr_u i64.add - local.set $17 - local.get $21 - local.get $18 + local.set $18 + local.get $23 + local.get $20 i64.mul - local.get $17 + local.get $18 i64.const 4294967295 i64.and i64.add @@ -14440,18 +14440,18 @@ i64.const 2147483647 i64.add local.set $25 - local.get $17 + local.get $18 i64.const 32 i64.shr_u - local.set $17 + local.set $18 local.get $25 i64.const 32 i64.shr_u local.set $25 - local.get $19 - local.get $18 + local.get $21 + local.get $20 i64.mul - local.get $17 + local.get $18 i64.add local.get $25 i64.add @@ -14462,52 +14462,52 @@ block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp local.set $26 - local.get $14 - local.set $11 + local.get $15 + local.set $13 local.get $26 - local.get $11 + local.get $13 i32.add i32.const 64 i32.add end - local.set $11 + local.set $26 block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $10 - local.get $12 local.set $17 - local.get $10 + local.get $12 + local.set $11 + local.get $17 i64.const 4294967295 i64.and local.set $18 - local.get $17 + local.get $11 i64.const 4294967295 i64.and local.set $19 - local.get $10 + local.get $17 i64.const 32 i64.shr_u local.set $20 - local.get $17 + local.get $11 i64.const 32 i64.shr_u local.set $21 local.get $18 local.get $19 i64.mul - local.set $23 + local.set $22 local.get $20 local.get $19 i64.mul - local.get $23 + local.get $22 i64.const 32 i64.shr_u i64.add - local.set $22 + local.set $23 local.get $18 local.get $21 i64.mul - local.get $22 + local.get $23 i64.const 4294967295 i64.and i64.add @@ -14516,10 +14516,10 @@ i64.const 2147483647 i64.add local.set $27 - local.get $22 + local.get $23 i64.const 32 i64.shr_u - local.set $22 + local.set $23 local.get $27 i64.const 32 i64.shr_u @@ -14527,7 +14527,7 @@ local.get $20 local.get $21 i64.mul - local.get $22 + local.get $23 i64.add local.get $27 i64.add @@ -14538,14 +14538,14 @@ local.get $25 local.get $27 i64.sub - local.set $22 - local.get $5 - local.get $24 - local.get $15 - local.get $25 - local.get $11 - local.get $22 + local.set $23 local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 call $~lib/util/number/genDigits end local.set $28 @@ -16072,14 +16072,14 @@ local.set $1 block $~lib/util/number/utoa64_core|inlined.0 local.get $1 - local.set $4 + local.set $5 local.get $0 local.set $7 local.get $3 - local.set $2 - local.get $4 + local.set $4 + local.get $5 local.get $7 - local.get $2 + local.get $4 call $~lib/util/number/utoa64_lut end end @@ -16143,14 +16143,14 @@ local.set $3 block $~lib/util/number/utoa64_core|inlined.1 local.get $0 - local.set $5 + local.set $6 local.get $2 local.set $8 local.get $3 - local.set $4 - local.get $5 + local.set $5 + local.get $6 local.get $8 - local.get $4 + local.get $5 call $~lib/util/number/utoa64_lut end end @@ -16400,14 +16400,14 @@ local.set $2 block $~lib/util/number/utoa64_core|inlined.2 local.get $2 - local.set $5 + local.set $6 local.get $0 local.set $8 local.get $4 - local.set $3 - local.get $5 + local.set $5 + local.get $6 local.get $8 - local.get $3 + local.get $5 call $~lib/util/number/utoa64_lut end end @@ -16493,14 +16493,14 @@ local.set $3 block $~lib/util/number/utoa64_core|inlined.3 local.get $0 - local.set $6 + local.set $7 local.get $2 local.set $9 local.get $3 - local.set $5 - local.get $6 + local.set $6 + local.get $7 local.get $9 - local.get $5 + local.get $6 call $~lib/util/number/utoa64_lut end end diff --git a/tests/compiler/std/date.untouched.wat b/tests/compiler/std/date.untouched.wat index 42faa8a3..a6a76476 100644 --- a/tests/compiler/std/date.untouched.wat +++ b/tests/compiler/std/date.untouched.wat @@ -157,25 +157,25 @@ (local $6 i64) block $~lib/date/Date.UTC|inlined.0 (result i64) i32.const 1970 - local.set $5 - i32.const 0 - local.set $4 - i32.const 1 - local.set $3 - i32.const 0 local.set $2 i32.const 0 local.set $1 - i32.const 0 + i32.const 1 local.set $0 + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 i64.const 0 local.set $6 - local.get $5 - local.get $4 - local.get $3 local.get $2 local.get $1 local.get $0 + local.get $3 + local.get $4 + local.get $5 local.get $6 f64.convert_i64_s call $~lib/bindings/Date/UTC diff --git a/tests/compiler/std/hash.untouched.wat b/tests/compiler/std/hash.untouched.wat index 232c43b6..19f8e807 100644 --- a/tests/compiler/std/hash.untouched.wat +++ b/tests/compiler/std/hash.untouched.wat @@ -235,13 +235,13 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) i32.const 24 call $~lib/rt/stub/__retain - local.set $0 - local.get $0 - call $~lib/util/hash/hashStr local.set $1 - local.get $0 - call $~lib/rt/stub/__release local.get $1 + call $~lib/util/hash/hashStr + local.set $0 + local.get $1 + call $~lib/rt/stub/__release + local.get $0 br $~lib/util/hash/HASH<~lib/string/String>|inlined.1 end call $std/hash/check @@ -263,13 +263,13 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.3 (result i32) i32.const 64 call $~lib/rt/stub/__retain - local.set $0 - local.get $0 - call $~lib/util/hash/hashStr local.set $1 - local.get $0 - call $~lib/rt/stub/__release local.get $1 + call $~lib/util/hash/hashStr + local.set $0 + local.get $1 + call $~lib/rt/stub/__release + local.get $0 br $~lib/util/hash/HASH<~lib/string/String>|inlined.3 end call $std/hash/check diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index d53c4ee4..6d96cc23 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -221,30 +221,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -376,17 +376,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -398,7 +398,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -417,17 +417,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -536,16 +536,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -569,21 +569,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -596,16 +596,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -616,8 +616,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -842,9 +842,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -852,23 +852,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -876,37 +876,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1072,23 +1072,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1112,12 +1112,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1129,14 +1129,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 877cd7e2..3e60efd3 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -4221,11 +4221,11 @@ (local $5 f64) (local $6 f64) (local $7 f64) - (local $8 f32) + (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 f32) - (local $12 i32) + (local $10 f32) + (local $11 i32) + (local $12 f32) (local $13 i32) (local $14 i32) (local $15 i32) @@ -4321,35 +4321,35 @@ f64.const 3.141592653589793 f64.sub end + local.set $3 + local.get $3 + local.get $3 + f64.mul local.set $6 local.get $6 local.get $6 f64.mul local.set $5 - local.get $5 - local.get $5 - f64.mul - local.set $4 f64.const -0.001388676377460993 - local.get $5 + local.get $6 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $3 + local.set $4 f32.const 1 f64.promote_f32 - local.get $5 + local.get $6 f64.const -0.499999997251031 f64.mul f64.add - local.get $4 + local.get $5 f64.const 0.04166662332373906 f64.mul f64.add - local.get $4 local.get $5 + local.get $6 f64.mul - local.get $3 + local.get $4 f64.mul f64.add f32.demote_f64 @@ -4403,38 +4403,38 @@ local.get $0 f64.promote_f32 f64.sub + local.set $3 + local.get $3 + local.get $3 + f64.mul local.set $7 local.get $7 local.get $7 f64.mul local.set $6 - local.get $6 - local.get $6 - f64.mul - local.set $5 f64.const -1.9839334836096632e-04 - local.get $6 + local.get $7 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $4 - local.get $6 - local.get $7 - f64.mul - local.set $3 + local.set $5 local.get $7 local.get $3 + f64.mul + local.set $4 + local.get $3 + local.get $4 f64.const -0.16666666641626524 - local.get $6 + local.get $7 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $3 - local.get $5 - f64.mul local.get $4 + local.get $6 + f64.mul + local.get $5 f64.mul f64.add f32.demote_f64 @@ -4507,38 +4507,38 @@ f64.promote_f32 f64.const 4.71238898038469 f64.sub + local.set $7 + local.get $7 + local.get $7 + f64.mul local.set $6 local.get $6 local.get $6 f64.mul local.set $5 - local.get $5 - local.get $5 - f64.mul - local.set $4 f64.const -1.9839334836096632e-04 - local.get $5 + local.get $6 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $3 - local.get $5 - local.get $6 - f64.mul - local.set $7 + local.set $4 local.get $6 local.get $7 + f64.mul + local.set $3 + local.get $7 + local.get $3 f64.const -0.16666666641626524 - local.get $5 + local.get $6 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $7 - local.get $4 - f64.mul local.get $3 + local.get $5 + f64.mul + local.get $4 f64.mul f64.add f32.demote_f64 @@ -4599,22 +4599,22 @@ end block $~lib/math/rempio2f|inlined.0 (result i32) local.get $0 - local.set $8 - local.get $1 local.set $10 - local.get $2 + local.get $1 local.set $9 - local.get $10 + local.get $2 + local.set $8 + local.get $9 i32.const 1305022427 i32.lt_u if - local.get $8 + local.get $10 f64.promote_f32 f64.const 0.6366197723675814 f64.mul f64.nearest local.set $6 - local.get $8 + local.get $10 f64.promote_f32 local.get $6 f64.const 1.5707963109016418 @@ -4630,11 +4630,11 @@ br $~lib/math/rempio2f|inlined.0 end block $~lib/math/pio2_large_quot|inlined.0 (result i32) - local.get $8 - local.set $11 local.get $10 local.set $12 - local.get $12 + local.get $9 + local.set $11 + local.get $11 i32.const 23 i32.shr_s i32.const 152 @@ -4707,7 +4707,7 @@ i64.shl i64.or local.set $19 - local.get $12 + local.get $11 i32.const 8388607 i32.and i32.const 8388608 @@ -4738,7 +4738,7 @@ i32.wrap_i64 local.set $23 f64.const 8.515303950216386e-20 - local.get $11 + local.get $12 f64.promote_f32 f64.copysign local.get $22 @@ -4752,7 +4752,7 @@ local.get $23 i32.sub local.get $23 - local.get $9 + local.get $8 select end local.set $24 @@ -4763,38 +4763,38 @@ i32.and if (result f32) local.get $25 + local.set $7 + local.get $7 + local.get $7 + f64.mul local.set $6 local.get $6 local.get $6 f64.mul local.set $5 - local.get $5 - local.get $5 - f64.mul - local.set $4 f64.const -1.9839334836096632e-04 - local.get $5 + local.get $6 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $3 - local.get $5 - local.get $6 - f64.mul - local.set $7 + local.set $4 local.get $6 local.get $7 + f64.mul + local.set $3 + local.get $7 + local.get $3 f64.const -0.16666666641626524 - local.get $5 + local.get $6 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $7 - local.get $4 - f64.mul local.get $3 + local.get $5 + f64.mul + local.get $4 f64.mul f64.add f32.demote_f64 @@ -11102,11 +11102,11 @@ (local $5 f64) (local $6 f64) (local $7 f64) - (local $8 f32) + (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 f32) - (local $12 i32) + (local $10 f32) + (local $11 i32) + (local $12 f32) (local $13 i32) (local $14 i32) (local $15 i32) @@ -11199,35 +11199,35 @@ f64.promote_f32 f64.const 1.5707963267948966 f64.add + local.set $3 + local.get $3 + local.get $3 + f64.mul local.set $7 local.get $7 local.get $7 f64.mul local.set $6 - local.get $6 - local.get $6 - f64.mul - local.set $5 f64.const -0.001388676377460993 - local.get $6 + local.get $7 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $4 + local.set $5 f32.const 1 f64.promote_f32 - local.get $6 + local.get $7 f64.const -0.499999997251031 f64.mul f64.add - local.get $5 + local.get $6 f64.const 0.04166662332373906 f64.mul f64.add - local.get $5 local.get $6 + local.get $7 f64.mul - local.get $4 + local.get $5 f64.mul f64.add f32.demote_f64 @@ -11287,38 +11287,38 @@ f64.sub end f64.neg + local.set $3 + local.get $3 + local.get $3 + f64.mul local.set $7 local.get $7 local.get $7 f64.mul local.set $6 - local.get $6 - local.get $6 - f64.mul - local.set $5 f64.const -1.9839334836096632e-04 - local.get $6 + local.get $7 f64.const 2.718311493989822e-06 f64.mul f64.add - local.set $4 - local.get $6 - local.get $7 - f64.mul - local.set $3 + local.set $5 local.get $7 local.get $3 + f64.mul + local.set $4 + local.get $3 + local.get $4 f64.const -0.16666666641626524 - local.get $6 + local.get $7 f64.const 0.008333329385889463 f64.mul f64.add f64.mul f64.add - local.get $3 - local.get $5 - f64.mul local.get $4 + local.get $6 + f64.mul + local.get $5 f64.mul f64.add f32.demote_f64 @@ -11377,35 +11377,35 @@ f64.promote_f32 f64.const 4.71238898038469 f64.sub + local.set $7 + local.get $7 + local.get $7 + f64.mul local.set $6 local.get $6 local.get $6 f64.mul local.set $5 - local.get $5 - local.get $5 - f64.mul - local.set $4 f64.const -0.001388676377460993 - local.get $5 + local.get $6 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $3 + local.set $4 f32.const 1 f64.promote_f32 - local.get $5 + local.get $6 f64.const -0.499999997251031 f64.mul f64.add - local.get $4 + local.get $5 f64.const 0.04166662332373906 f64.mul f64.add - local.get $4 local.get $5 + local.get $6 f64.mul - local.get $3 + local.get $4 f64.mul f64.add f32.demote_f64 @@ -11476,22 +11476,22 @@ end block $~lib/math/rempio2f|inlined.1 (result i32) local.get $0 - local.set $8 - local.get $1 local.set $10 - local.get $2 + local.get $1 local.set $9 - local.get $10 + local.get $2 + local.set $8 + local.get $9 i32.const 1305022427 i32.lt_u if - local.get $8 + local.get $10 f64.promote_f32 f64.const 0.6366197723675814 f64.mul f64.nearest local.set $7 - local.get $8 + local.get $10 f64.promote_f32 local.get $7 f64.const 1.5707963109016418 @@ -11507,11 +11507,11 @@ br $~lib/math/rempio2f|inlined.1 end block $~lib/math/pio2_large_quot|inlined.1 (result i32) - local.get $8 - local.set $11 local.get $10 local.set $12 - local.get $12 + local.get $9 + local.set $11 + local.get $11 i32.const 23 i32.shr_s i32.const 152 @@ -11584,7 +11584,7 @@ i64.shl i64.or local.set $19 - local.get $12 + local.get $11 i32.const 8388607 i32.and i32.const 8388608 @@ -11615,7 +11615,7 @@ i32.wrap_i64 local.set $23 f64.const 8.515303950216386e-20 - local.get $11 + local.get $12 f64.promote_f32 f64.copysign local.get $22 @@ -11629,7 +11629,7 @@ local.get $23 i32.sub local.get $23 - local.get $9 + local.get $8 select end local.set $24 @@ -11640,35 +11640,35 @@ i32.and if (result f32) local.get $25 + local.set $3 + local.get $3 + local.get $3 + f64.mul local.set $7 local.get $7 local.get $7 f64.mul local.set $6 - local.get $6 - local.get $6 - f64.mul - local.set $5 f64.const -0.001388676377460993 - local.get $6 + local.get $7 f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $4 + local.set $5 f32.const 1 f64.promote_f32 - local.get $6 + local.get $7 f64.const -0.499999997251031 f64.mul f64.add - local.get $5 + local.get $6 f64.const 0.04166662332373906 f64.mul f64.add - local.get $5 local.get $6 + local.get $7 f64.mul - local.get $4 + local.get $5 f64.mul f64.add f32.demote_f64 @@ -11997,18 +11997,18 @@ (func $~lib/math/NativeMathf.tan (; 152 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) - (local $3 f64) - (local $4 i32) + (local $3 i32) + (local $4 f64) (local $5 f64) (local $6 f64) (local $7 f64) (local $8 f64) (local $9 f64) (local $10 f64) - (local $11 f32) - (local $12 i32) - (local $13 f32) - (local $14 i32) + (local $11 i32) + (local $12 f32) + (local $13 i32) + (local $14 f32) (local $15 i32) (local $16 i32) (local $17 i32) @@ -12047,11 +12047,11 @@ block $~lib/math/tan_kernf|inlined.0 (result f32) local.get $0 f64.promote_f32 - local.set $3 - i32.const 0 local.set $4 - local.get $3 - local.get $3 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 f64.mul local.set $5 f64.const 0.002974357433599673 @@ -12071,7 +12071,7 @@ f64.mul local.set $8 local.get $5 - local.get $3 + local.get $4 f64.mul local.set $9 f64.const 0.3333313950307914 @@ -12080,7 +12080,7 @@ f64.mul f64.add local.set $10 - local.get $3 + local.get $4 local.get $9 local.get $10 f64.mul @@ -12096,7 +12096,7 @@ f64.mul f64.add local.set $6 - local.get $4 + local.get $3 if (result f64) f32.const -1 f64.promote_f32 @@ -12130,63 +12130,63 @@ f64.const 1.5707963267948966 f64.sub end - local.set $10 - i32.const 1 local.set $4 - local.get $10 - local.get $10 + i32.const 1 + local.set $3 + local.get $4 + local.get $4 f64.mul - local.set $9 + local.set $10 f64.const 0.002974357433599673 - local.get $9 + local.get $10 f64.const 0.009465647849436732 f64.mul f64.add - local.set $8 + local.set $9 f64.const 0.05338123784456704 - local.get $9 + local.get $10 f64.const 0.024528318116654728 f64.mul f64.add - local.set $7 - local.get $9 - local.get $9 - f64.mul - local.set $6 - local.get $9 + local.set $8 + local.get $10 local.get $10 f64.mul - local.set $5 + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 f64.const 0.3333313950307914 - local.get $9 + local.get $10 f64.const 0.13339200271297674 f64.mul f64.add - local.set $3 - local.get $10 - local.get $5 - local.get $3 - f64.mul - f64.add - local.get $5 - local.get $6 - f64.mul - local.get $7 - local.get $6 - local.get $8 - f64.mul - f64.add - f64.mul - f64.add - local.set $8 + local.set $5 local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $3 if (result f64) f32.const -1 f64.promote_f32 - local.get $8 + local.get $9 f64.div else - local.get $8 + local.get $9 end f32.demote_f64 end @@ -12205,11 +12205,11 @@ f64.const 3.141592653589793 f64.sub end - local.set $3 - i32.const 0 local.set $4 - local.get $3 - local.get $3 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 f64.mul local.set $5 f64.const 0.002974357433599673 @@ -12229,7 +12229,7 @@ f64.mul local.set $8 local.get $5 - local.get $3 + local.get $4 f64.mul local.set $9 f64.const 0.3333313950307914 @@ -12238,7 +12238,7 @@ f64.mul f64.add local.set $10 - local.get $3 + local.get $4 local.get $9 local.get $10 f64.mul @@ -12254,7 +12254,7 @@ f64.mul f64.add local.set $6 - local.get $4 + local.get $3 if (result f64) f32.const -1 f64.promote_f32 @@ -12291,63 +12291,63 @@ f64.const 4.71238898038469 f64.sub end - local.set $10 - i32.const 1 local.set $4 - local.get $10 - local.get $10 + i32.const 1 + local.set $3 + local.get $4 + local.get $4 f64.mul - local.set $9 + local.set $10 f64.const 0.002974357433599673 - local.get $9 + local.get $10 f64.const 0.009465647849436732 f64.mul f64.add - local.set $8 + local.set $9 f64.const 0.05338123784456704 - local.get $9 + local.get $10 f64.const 0.024528318116654728 f64.mul f64.add - local.set $7 - local.get $9 - local.get $9 - f64.mul - local.set $6 - local.get $9 + local.set $8 + local.get $10 local.get $10 f64.mul - local.set $5 + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 f64.const 0.3333313950307914 - local.get $9 + local.get $10 f64.const 0.13339200271297674 f64.mul f64.add - local.set $3 - local.get $10 - local.get $5 - local.get $3 - f64.mul - f64.add - local.get $5 - local.get $6 - f64.mul - local.get $7 - local.get $6 - local.get $8 - f64.mul - f64.add - f64.mul - f64.add - local.set $8 + local.set $5 local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $3 if (result f64) f32.const -1 f64.promote_f32 - local.get $8 + local.get $9 f64.div else - local.get $8 + local.get $9 end f32.demote_f64 end @@ -12366,11 +12366,11 @@ f64.const 6.283185307179586 f64.sub end - local.set $3 - i32.const 0 local.set $4 - local.get $3 - local.get $3 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 f64.mul local.set $5 f64.const 0.002974357433599673 @@ -12390,7 +12390,7 @@ f64.mul local.set $8 local.get $5 - local.get $3 + local.get $4 f64.mul local.set $9 f64.const 0.3333313950307914 @@ -12399,7 +12399,7 @@ f64.mul f64.add local.set $10 - local.get $3 + local.get $4 local.get $9 local.get $10 f64.mul @@ -12415,7 +12415,7 @@ f64.mul f64.add local.set $6 - local.get $4 + local.get $3 if (result f64) f32.const -1 f64.promote_f32 @@ -12442,22 +12442,22 @@ end block $~lib/math/rempio2f|inlined.2 (result i32) local.get $0 - local.set $11 - local.get $1 local.set $12 + local.get $1 + local.set $11 local.get $2 - local.set $4 - local.get $12 + local.set $3 + local.get $11 i32.const 1305022427 i32.lt_u if - local.get $11 + local.get $12 f64.promote_f32 f64.const 0.6366197723675814 f64.mul f64.nearest local.set $10 - local.get $11 + local.get $12 f64.promote_f32 local.get $10 f64.const 1.5707963109016418 @@ -12473,11 +12473,11 @@ br $~lib/math/rempio2f|inlined.2 end block $~lib/math/pio2_large_quot|inlined.2 (result i32) - local.get $11 - local.set $13 local.get $12 local.set $14 - local.get $14 + local.get $11 + local.set $13 + local.get $13 i32.const 23 i32.shr_s i32.const 152 @@ -12550,7 +12550,7 @@ i64.shl i64.or local.set $21 - local.get $14 + local.get $13 i32.const 8388607 i32.and i32.const 8388608 @@ -12581,7 +12581,7 @@ i32.wrap_i64 local.set $25 f64.const 8.515303950216386e-20 - local.get $13 + local.get $14 f64.promote_f32 f64.copysign local.get $24 @@ -12595,7 +12595,7 @@ local.get $25 i32.sub local.get $25 - local.get $4 + local.get $3 select end local.set $26 @@ -12603,65 +12603,65 @@ local.set $27 block $~lib/math/tan_kernf|inlined.5 (result f32) local.get $27 - local.set $10 + local.set $4 local.get $26 i32.const 1 i32.and - local.set $25 - local.get $10 - local.get $10 + local.set $13 + local.get $4 + local.get $4 f64.mul - local.set $9 + local.set $10 f64.const 0.002974357433599673 - local.get $9 + local.get $10 f64.const 0.009465647849436732 f64.mul f64.add - local.set $8 + local.set $9 f64.const 0.05338123784456704 - local.get $9 + local.get $10 f64.const 0.024528318116654728 f64.mul f64.add - local.set $7 - local.get $9 - local.get $9 - f64.mul - local.set $6 - local.get $9 + local.set $8 + local.get $10 local.get $10 f64.mul - local.set $5 + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 f64.const 0.3333313950307914 - local.get $9 + local.get $10 f64.const 0.13339200271297674 f64.mul f64.add - local.set $3 - local.get $10 + local.set $5 + local.get $4 + local.get $6 local.get $5 - local.get $3 f64.mul f64.add - local.get $5 local.get $6 - f64.mul local.get $7 - local.get $6 + f64.mul local.get $8 + local.get $7 + local.get $9 f64.mul f64.add f64.mul f64.add - local.set $8 - local.get $25 + local.set $9 + local.get $13 if (result f64) f32.const -1 f64.promote_f32 - local.get $8 + local.get $9 f64.div else - local.get $8 + local.get $9 end f32.demote_f64 end diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index d48e7ceb..cb1b28ed 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -1799,24 +1799,24 @@ local.get $0 call $~lib/rt/stub/__retain end - local.tee $0 + local.tee $1 call $~lib/rt/stub/__retain global.set $std/pointer/one block $std/pointer/Pointer#constructor|inlined.1 (result i32) i32.const 0 local.set $2 i32.const 24 - local.set $1 - local.get $1 + local.set $0 + local.get $0 call $~lib/rt/stub/__retain end - local.tee $1 + local.tee $2 call $~lib/rt/stub/__retain global.set $std/pointer/two block $std/pointer/Pointer#get:offset|inlined.0 (result i32) global.get $std/pointer/one - local.set $2 - local.get $2 + local.set $0 + local.get $0 end i32.const 8 i32.eq @@ -1831,8 +1831,8 @@ end block $std/pointer/Pointer#get:offset|inlined.1 (result i32) global.get $std/pointer/two - local.set $2 - local.get $2 + local.set $0 + local.get $0 end i32.const 24 i32.eq @@ -1847,24 +1847,24 @@ end block $std/pointer/Pointer#get:value|inlined.0 (result i32) global.get $std/pointer/one - local.set $2 - local.get $2 + local.set $0 + local.get $0 br $std/pointer/Pointer#get:value|inlined.0 end i32.const 1 i32.store block $std/pointer/Pointer#get:value|inlined.1 (result i32) global.get $std/pointer/one - local.set $2 - local.get $2 + local.set $0 + local.get $0 br $std/pointer/Pointer#get:value|inlined.1 end i32.const 2 i32.store offset=4 block $std/pointer/Pointer#get:value|inlined.2 (result i32) global.get $std/pointer/one - local.set $2 - local.get $2 + local.set $0 + local.get $0 br $std/pointer/Pointer#get:value|inlined.2 end i32.load @@ -1881,8 +1881,8 @@ end block $std/pointer/Pointer#get:value|inlined.3 (result i32) global.get $std/pointer/one - local.set $2 - local.get $2 + local.set $0 + local.get $0 br $std/pointer/Pointer#get:value|inlined.3 end i32.load offset=4 @@ -1900,7 +1900,7 @@ global.get $std/pointer/one global.get $std/pointer/two call $std/pointer/Pointer#add - local.tee $2 + local.tee $0 call $~lib/rt/stub/__retain global.set $std/pointer/add block $std/pointer/Pointer#get:offset|inlined.2 (result i32) @@ -1994,8 +1994,8 @@ end block $std/pointer/Pointer#get:offset|inlined.5 (result i32) global.get $std/pointer/one - local.set $5 - local.get $5 + local.set $6 + local.get $6 end i32.const 16 i32.eq @@ -2062,8 +2062,8 @@ global.set $std/pointer/two block $std/pointer/Pointer#get:offset|inlined.7 (result i32) global.get $std/pointer/two - local.set $7 - local.get $7 + local.set $8 + local.get $8 end i32.const 8 i32.eq @@ -2096,8 +2096,8 @@ end block $std/pointer/Pointer#get:value|inlined.5 (result i32) global.get $std/pointer/two - local.set $7 - local.get $7 + local.set $8 + local.get $8 br $std/pointer/Pointer#get:value|inlined.5 end i32.load offset=4 @@ -2122,8 +2122,8 @@ call $std/pointer/Pointer#set:value block $std/pointer/Pointer#get:offset|inlined.8 (result i32) global.get $std/pointer/one - local.set $7 - local.get $7 + local.set $8 + local.get $8 end block $std/pointer/Pointer#get:offset|inlined.9 (result i32) global.get $std/pointer/two @@ -2142,8 +2142,8 @@ end block $std/pointer/Pointer#get:value|inlined.7 (result i32) global.get $std/pointer/one - local.set $7 - local.get $7 + local.set $8 + local.get $8 br $std/pointer/Pointer#get:value|inlined.7 end i32.load @@ -2177,11 +2177,11 @@ unreachable end block $std/pointer/Pointer#constructor|inlined.0 (result i32) - i32.const 0 - local.set $8 i32.const 0 local.set $7 - local.get $7 + i32.const 0 + local.set $8 + local.get $8 call $~lib/rt/stub/__retain end local.tee $7 diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index 308d5469..ba976195 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -221,30 +221,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -376,17 +376,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -398,7 +398,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -417,17 +417,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -536,16 +536,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -569,21 +569,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -596,16 +596,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -616,8 +616,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -842,9 +842,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -852,23 +852,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -876,37 +876,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1072,23 +1072,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1112,12 +1112,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1129,14 +1129,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index db2c7ba0..7377b6e6 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -4954,31 +4954,31 @@ local.get $3 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.lt_s - local.tee $2 + local.tee $1 if i32.const 0 - local.get $1 + local.get $2 i32.sub - local.set $1 + local.set $2 end - local.get $1 + local.get $2 end - local.get $1 + local.get $2 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.tee $1 + local.tee $2 call $~lib/util/number/utoa_simple local.get $0 i32.const 45 i32.const 43 - local.get $2 + local.get $1 select i32.store16 - local.get $1 + local.get $2 i32.const 2 i32.add else @@ -8695,11 +8695,11 @@ call $~lib/rt/pure/__release local.get $10 call $~lib/rt/pure/__release - local.get $11 + local.get $13 call $~lib/rt/pure/__release local.get $12 call $~lib/rt/pure/__release - local.get $13 + local.get $11 call $~lib/rt/pure/__release local.get $14 call $~lib/rt/pure/__release diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index e3178f37..4cfa93ac 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -476,30 +476,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.0 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -631,17 +631,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -653,7 +653,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -672,17 +672,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -791,16 +791,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -824,21 +824,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -851,16 +851,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -871,8 +871,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -1151,9 +1151,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -1161,23 +1161,23 @@ block $~lib/rt/tlsf/SETSL|inlined.2 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -1185,37 +1185,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.2 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1381,23 +1381,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1421,12 +1421,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1438,14 +1438,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 @@ -6932,14 +6932,14 @@ local.set $1 block $~lib/util/number/utoa64_core|inlined.0 local.get $1 - local.set $4 + local.set $5 local.get $0 local.set $7 local.get $3 - local.set $2 - local.get $4 + local.set $4 + local.get $5 local.get $7 - local.get $2 + local.get $4 call $~lib/util/number/utoa64_lut end end @@ -7017,14 +7017,14 @@ local.set $2 block $~lib/util/number/utoa64_core|inlined.1 local.get $2 - local.set $5 + local.set $6 local.get $0 local.set $8 local.get $4 - local.set $3 - local.get $5 + local.set $5 + local.get $6 local.get $8 - local.get $3 + local.get $5 call $~lib/util/number/utoa64_lut end end @@ -7081,11 +7081,11 @@ (local $17 i32) (local $18 i32) (local $19 i64) - (local $20 i32) + (local $20 i64) (local $21 i64) (local $22 i64) (local $23 i64) - (local $24 i64) + (local $24 i32) (local $25 i32) (local $26 i32) i32.const 0 @@ -7376,13 +7376,13 @@ global.set $~lib/util/number/_K block $~lib/util/number/grisuRound|inlined.0 local.get $0 - local.set $20 + local.set $24 local.get $15 local.set $18 local.get $5 - local.set $24 - local.get $19 local.set $23 + local.get $19 + local.set $22 local.get $16 local.get $14 i32.const 2 @@ -7392,10 +7392,10 @@ local.get $7 i64.extend_i32_s i64.shl - local.set $22 - local.get $10 local.set $21 - local.get $20 + local.get $10 + local.set $20 + local.get $24 local.get $18 i32.const 1 i32.sub @@ -7408,34 +7408,34 @@ local.set $26 block $break|2 loop $continue|2 - local.get $23 - local.get $21 + local.get $22 + local.get $20 i64.lt_u if (result i32) - local.get $24 local.get $23 - i64.sub local.get $22 + i64.sub + local.get $21 i64.ge_u else i32.const 0 end if (result i32) - local.get $23 local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.lt_u if (result i32) i32.const 1 else - local.get $21 - local.get $23 - i64.sub - local.get $23 + local.get $20 + local.get $22 + i64.sub local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.sub i64.gt_u end @@ -7447,10 +7447,10 @@ i32.const 1 i32.sub local.set $26 - local.get $23 local.get $22 + local.get $21 i64.add - local.set $23 + local.set $22 br $continue|2 end end @@ -7539,58 +7539,58 @@ local.set $10 block $~lib/util/number/grisuRound|inlined.1 local.get $0 - local.set $26 - local.get $15 - local.set $17 - local.get $5 local.set $24 - local.get $13 + local.get $15 + local.set $18 + local.get $5 local.set $23 - local.get $8 + local.get $13 local.set $22 - local.get $10 + local.get $8 local.set $21 - local.get $26 - local.get $17 + local.get $10 + local.set $20 + local.get $24 + local.get $18 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $25 - local.get $25 + local.set $17 + local.get $17 i32.load16_u - local.set $18 + local.set $26 block $break|4 loop $continue|4 - local.get $23 - local.get $21 + local.get $22 + local.get $20 i64.lt_u if (result i32) - local.get $24 local.get $23 - i64.sub local.get $22 + i64.sub + local.get $21 i64.ge_u else i32.const 0 end if (result i32) - local.get $23 local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.lt_u if (result i32) i32.const 1 else - local.get $21 - local.get $23 - i64.sub - local.get $23 + local.get $20 + local.get $22 + i64.sub local.get $22 - i64.add local.get $21 + i64.add + local.get $20 i64.sub i64.gt_u end @@ -7598,20 +7598,20 @@ i32.const 0 end if - local.get $18 + local.get $26 i32.const 1 i32.sub - local.set $18 - local.get $23 + local.set $26 local.get $22 + local.get $21 i64.add - local.set $23 + local.set $22 br $continue|4 end end end - local.get $25 - local.get $18 + local.get $17 + local.get $26 i32.store16 end local.get $15 @@ -7820,31 +7820,31 @@ local.get $0 i32.const 4 i32.add - local.set $5 + local.set $4 local.get $3 i32.const 1 i32.sub - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.const 0 i32.lt_s local.set $6 local.get $6 if i32.const 0 - local.get $4 + local.get $5 i32.sub - local.set $4 + local.set $5 end - local.get $4 + local.get $5 call $~lib/util/number/decimalCount32 i32.const 1 i32.add local.set $7 block $~lib/util/number/utoa32_core|inlined.4 - local.get $5 - local.set $10 local.get $4 + local.set $10 + local.get $5 local.set $9 local.get $7 local.set $8 @@ -7853,7 +7853,7 @@ local.get $8 call $~lib/util/number/utoa32_lut end - local.get $5 + local.get $4 i32.const 45 i32.const 43 local.get $6 @@ -7896,46 +7896,46 @@ i32.add i32.const 4 i32.add - local.set $4 + local.set $9 local.get $3 i32.const 1 i32.sub - local.set $6 - local.get $6 + local.set $8 + local.get $8 i32.const 0 i32.lt_s - local.set $5 - local.get $5 + local.set $6 + local.get $6 if i32.const 0 - local.get $6 + local.get $8 i32.sub - local.set $6 + local.set $8 end - local.get $6 + local.get $8 call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $8 + local.set $4 block $~lib/util/number/utoa32_core|inlined.5 - local.get $4 - local.set $11 - local.get $6 - local.set $10 - local.get $8 - local.set $9 - local.get $11 - local.get $10 local.get $9 + local.set $11 + local.get $8 + local.set $5 + local.get $4 + local.set $10 + local.get $11 + local.get $5 + local.get $10 call $~lib/util/number/utoa32_lut end - local.get $4 + local.get $9 i32.const 45 i32.const 43 - local.get $5 + local.get $6 select i32.store16 - local.get $8 + local.get $4 end i32.add local.set $1 @@ -7955,15 +7955,15 @@ ) (func $~lib/util/number/dtoa_core (; 77 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i64) (local $7 i32) (local $8 i64) (local $9 i64) - (local $10 i64) - (local $11 i32) + (local $10 i32) + (local $11 i64) (local $12 i64) (local $13 i32) (local $14 i32) @@ -7996,12 +7996,12 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $0 local.set $5 - local.get $2 + local.get $0 local.set $4 - local.get $3 + local.get $2 + local.set $3 + local.get $5 i64.reinterpret_f64 local.set $6 local.get $6 @@ -8037,16 +8037,16 @@ local.set $7 block $~lib/util/number/normalizedBoundaries|inlined.0 local.get $9 - local.set $10 - local.get $7 local.set $11 - local.get $10 + local.get $7 + local.set $10 + local.get $11 i64.const 1 i64.shl i64.const 1 i64.add local.set $12 - local.get $11 + local.get $10 i32.const 1 i32.sub local.set $13 @@ -8064,20 +8064,20 @@ i32.sub local.set $13 i32.const 1 - local.get $10 + local.get $11 i64.const 4503599627370496 i64.eq i32.add local.set $15 local.get $12 global.set $~lib/util/number/_frc_plus - local.get $10 + local.get $11 local.get $15 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $11 + local.get $10 local.get $15 i32.sub local.get $13 @@ -8090,9 +8090,9 @@ end block $~lib/util/number/getCachedPower|inlined.0 global.get $~lib/util/number/_exp - local.set $15 + local.set $10 i32.const -61 - local.get $15 + local.get $10 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -8102,62 +8102,62 @@ local.set $16 local.get $16 i32.trunc_f64_s - local.set $14 - local.get $14 - local.get $14 + local.set $15 + local.get $15 + local.get $15 f64.convert_i32_s local.get $16 f64.ne i32.add - local.set $14 - local.get $14 + local.set $15 + local.get $15 i32.const 3 i32.shr_s i32.const 1 i32.add - local.set $13 + local.set $14 i32.const 348 - local.get $13 + local.get $14 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K i32.const 4960 - local.get $13 + local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_frc_pow i32.const 5184 - local.get $13 + local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_exp_pow end local.get $9 i64.clz i32.wrap_i64 - local.set $13 + local.set $14 local.get $9 - local.get $13 + local.get $14 i64.extend_i32_s i64.shl local.set $9 local.get $7 - local.get $13 + local.get $14 i32.sub local.set $7 global.get $~lib/util/number/_frc_pow local.set $12 global.get $~lib/util/number/_exp_pow - local.set $14 + local.set $15 block $~lib/util/number/umul64f|inlined.0 (result i64) local.get $9 local.set $17 local.get $12 - local.set $10 + local.set $11 local.get $17 i64.const 4294967295 i64.and local.set $18 - local.get $10 + local.get $11 i64.const 4294967295 i64.and local.set $19 @@ -8165,7 +8165,7 @@ i64.const 32 i64.shr_u local.set $20 - local.get $10 + local.get $11 i64.const 32 i64.shr_u local.set $21 @@ -8212,53 +8212,53 @@ local.set $24 block $~lib/util/number/umul64e|inlined.0 (result i32) local.get $7 - local.set $11 - local.get $14 - local.set $15 - local.get $11 + local.set $10 local.get $15 + local.set $13 + local.get $10 + local.get $13 i32.add i32.const 64 i32.add end - local.set $15 + local.set $10 block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $22 + local.set $17 local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and local.set $23 - local.get $22 + local.get $11 i64.const 4294967295 i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u local.set $21 - local.get $23 - i64.const 4294967295 - i64.and + local.get $11 + i64.const 32 + i64.shr_u local.set $20 - local.get $22 - i64.const 32 - i64.shr_u - local.set $19 local.get $23 - i64.const 32 - i64.shr_u - local.set $18 + local.get $22 + i64.mul + local.set $19 local.get $21 - local.get $20 + local.get $22 i64.mul - local.set $10 local.get $19 - local.get $20 - i64.mul - local.get $10 i64.const 32 i64.shr_u i64.add - local.set $17 - local.get $21 - local.get $18 + local.set $18 + local.get $23 + local.get $20 i64.mul - local.get $17 + local.get $18 i64.const 4294967295 i64.and i64.add @@ -8267,18 +8267,18 @@ i64.const 2147483647 i64.add local.set $25 - local.get $17 + local.get $18 i64.const 32 i64.shr_u - local.set $17 + local.set $18 local.get $25 i64.const 32 i64.shr_u local.set $25 - local.get $19 - local.get $18 + local.get $21 + local.get $20 i64.mul - local.get $17 + local.get $18 i64.add local.get $25 i64.add @@ -8289,52 +8289,52 @@ block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp local.set $26 - local.get $14 - local.set $11 + local.get $15 + local.set $13 local.get $26 - local.get $11 + local.get $13 i32.add i32.const 64 i32.add end - local.set $11 + local.set $26 block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $10 - local.get $12 local.set $17 - local.get $10 + local.get $12 + local.set $11 + local.get $17 i64.const 4294967295 i64.and local.set $18 - local.get $17 + local.get $11 i64.const 4294967295 i64.and local.set $19 - local.get $10 + local.get $17 i64.const 32 i64.shr_u local.set $20 - local.get $17 + local.get $11 i64.const 32 i64.shr_u local.set $21 local.get $18 local.get $19 i64.mul - local.set $23 + local.set $22 local.get $20 local.get $19 i64.mul - local.get $23 + local.get $22 i64.const 32 i64.shr_u i64.add - local.set $22 + local.set $23 local.get $18 local.get $21 i64.mul - local.get $22 + local.get $23 i64.const 4294967295 i64.and i64.add @@ -8343,10 +8343,10 @@ i64.const 2147483647 i64.add local.set $27 - local.get $22 + local.get $23 i64.const 32 i64.shr_u - local.set $22 + local.set $23 local.get $27 i64.const 32 i64.shr_u @@ -8354,7 +8354,7 @@ local.get $20 local.get $21 i64.mul - local.get $22 + local.get $23 i64.add local.get $27 i64.add @@ -8365,14 +8365,14 @@ local.get $25 local.get $27 i64.sub - local.set $22 - local.get $5 - local.get $24 - local.get $15 - local.get $25 - local.get $11 - local.get $22 + local.set $23 local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 call $~lib/util/number/genDigits end local.set $28 @@ -8892,20 +8892,20 @@ end block $~lib/string/String#includes|inlined.0 (result i32) global.get $std/string/str - local.set $8 + local.set $7 i32.const 608 call $~lib/rt/pure/__retain - local.set $7 - i32.const 0 local.set $6 - local.get $8 + i32.const 0 + local.set $8 local.get $7 local.get $6 + local.get $8 call $~lib/string/String#indexOf i32.const -1 i32.ne local.set $9 - local.get $7 + local.get $6 call $~lib/rt/pure/__release local.get $9 end @@ -8924,7 +8924,7 @@ i32.const 0 i32.const 632 call $~lib/string/String#padStart - local.tee $6 + local.tee $8 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -8956,7 +8956,7 @@ i32.const 3 i32.const 632 call $~lib/string/String#padStart - local.tee $8 + local.tee $6 i32.const 656 call $~lib/string/String.__eq i32.eqz diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 0db622f2..574f9931 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -284,30 +284,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -439,17 +439,17 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz @@ -461,7 +461,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -480,17 +480,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -599,16 +599,16 @@ end block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -632,21 +632,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -659,16 +659,16 @@ i32.store block $~lib/rt/tlsf/SETSL|inlined.2 local.get $0 - local.set $3 + local.set $13 local.get $9 - local.set $6 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -679,8 +679,8 @@ i32.shl i32.or local.set $7 - local.get $3 - local.get $6 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add @@ -905,9 +905,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -915,23 +915,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -939,37 +939,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -1135,23 +1135,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1175,12 +1175,12 @@ local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1192,14 +1192,14 @@ else block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 @@ -6893,28 +6893,28 @@ local.get $4 ) (func $~lib/typedarray/Int64Array#reduce (; 107 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i32) + (local $3 i64) (local $4 i32) - (local $5 i64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i64) local.get $0 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - local.set $3 - local.get $2 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 i32.load offset=4 local.set $6 block $break|0 block i32.const 0 local.set $7 - local.get $4 + local.get $5 call $~lib/typedarray/Int64Array#get:length local.set $8 end @@ -6927,7 +6927,7 @@ block (result i64) i32.const 4 global.set $~lib/argc - local.get $5 + local.get $3 local.get $6 local.get $7 i32.const 3 @@ -6935,11 +6935,11 @@ i32.add i64.load local.get $7 + local.get $5 local.get $4 - local.get $3 call_indirect (type $FUNCSIG$jjjii) end - local.set $5 + local.set $3 local.get $7 i32.const 1 i32.add @@ -6949,9 +6949,9 @@ end unreachable end - local.get $5 + local.get $3 local.set $9 - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $9 ) @@ -7037,28 +7037,28 @@ local.get $4 ) (func $~lib/typedarray/Uint64Array#reduce (; 111 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i32) + (local $3 i64) (local $4 i32) - (local $5 i64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i64) local.get $0 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - local.set $3 - local.get $2 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 i32.load offset=4 local.set $6 block $break|0 block i32.const 0 local.set $7 - local.get $4 + local.get $5 call $~lib/typedarray/Uint64Array#get:length local.set $8 end @@ -7071,7 +7071,7 @@ block (result i64) i32.const 4 global.set $~lib/argc - local.get $5 + local.get $3 local.get $6 local.get $7 i32.const 3 @@ -7079,11 +7079,11 @@ i32.add i64.load local.get $7 + local.get $5 local.get $4 - local.get $3 call_indirect (type $FUNCSIG$jjjii) end - local.set $5 + local.set $3 local.get $7 i32.const 1 i32.add @@ -7093,9 +7093,9 @@ end unreachable end - local.get $5 + local.get $3 local.set $9 - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $9 ) @@ -7181,28 +7181,28 @@ local.get $4 ) (func $~lib/typedarray/Float32Array#reduce (; 115 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) - (local $3 i32) + (local $3 f32) (local $4 i32) - (local $5 f32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 f32) local.get $0 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - local.set $3 - local.get $2 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 i32.load offset=4 local.set $6 block $break|0 block i32.const 0 local.set $7 - local.get $4 + local.get $5 call $~lib/typedarray/Float32Array#get:length local.set $8 end @@ -7215,7 +7215,7 @@ block (result f32) i32.const 4 global.set $~lib/argc - local.get $5 + local.get $3 local.get $6 local.get $7 i32.const 2 @@ -7223,11 +7223,11 @@ i32.add f32.load local.get $7 + local.get $5 local.get $4 - local.get $3 call_indirect (type $FUNCSIG$fffii) end - local.set $5 + local.set $3 local.get $7 i32.const 1 i32.add @@ -7237,9 +7237,9 @@ end unreachable end - local.get $5 + local.get $3 local.set $9 - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $9 ) @@ -7301,28 +7301,28 @@ local.get $4 ) (func $~lib/typedarray/Float64Array#reduce (; 118 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) - (local $3 i32) + (local $3 f64) (local $4 i32) - (local $5 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 f64) local.get $0 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - local.set $3 - local.get $2 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 i32.load offset=4 local.set $6 block $break|0 block i32.const 0 local.set $7 - local.get $4 + local.get $5 call $~lib/typedarray/Float64Array#get:length local.set $8 end @@ -7335,7 +7335,7 @@ block (result f64) i32.const 4 global.set $~lib/argc - local.get $5 + local.get $3 local.get $6 local.get $7 i32.const 3 @@ -7343,11 +7343,11 @@ i32.add f64.load local.get $7 + local.get $5 local.get $4 - local.get $3 call_indirect (type $FUNCSIG$dddii) end - local.set $5 + local.set $3 local.get $7 i32.const 1 i32.add @@ -7357,9 +7357,9 @@ end unreachable end - local.get $5 + local.get $3 local.set $9 - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $9 ) @@ -8247,24 +8247,24 @@ local.get $4 ) (func $~lib/typedarray/Int64Array#reduceRight (; 142 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i32) + (local $3 i64) (local $4 i32) - (local $5 i64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i64) local.get $0 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - local.set $3 - local.get $2 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 i32.load offset=4 local.set $6 block $break|0 - local.get $4 + local.get $5 call $~lib/typedarray/Int64Array#get:length i32.const 1 i32.sub @@ -8278,7 +8278,7 @@ block (result i64) i32.const 4 global.set $~lib/argc - local.get $5 + local.get $3 local.get $6 local.get $7 i32.const 3 @@ -8286,11 +8286,11 @@ i32.add i64.load local.get $7 + local.get $5 local.get $4 - local.get $3 call_indirect (type $FUNCSIG$jjjii) end - local.set $5 + local.set $3 local.get $7 i32.const 1 i32.sub @@ -8300,9 +8300,9 @@ end unreachable end - local.get $5 + local.get $3 local.set $8 - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $8 ) @@ -8364,24 +8364,24 @@ local.get $4 ) (func $~lib/typedarray/Uint64Array#reduceRight (; 145 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i32) + (local $3 i64) (local $4 i32) - (local $5 i64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i64) local.get $0 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - local.set $3 - local.get $2 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 i32.load offset=4 local.set $6 block $break|0 - local.get $4 + local.get $5 call $~lib/typedarray/Uint64Array#get:length i32.const 1 i32.sub @@ -8395,7 +8395,7 @@ block (result i64) i32.const 4 global.set $~lib/argc - local.get $5 + local.get $3 local.get $6 local.get $7 i32.const 3 @@ -8403,11 +8403,11 @@ i32.add i64.load local.get $7 + local.get $5 local.get $4 - local.get $3 call_indirect (type $FUNCSIG$jjjii) end - local.set $5 + local.set $3 local.get $7 i32.const 1 i32.sub @@ -8417,9 +8417,9 @@ end unreachable end - local.get $5 + local.get $3 local.set $8 - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $8 ) @@ -8481,24 +8481,24 @@ local.get $4 ) (func $~lib/typedarray/Float32Array#reduceRight (; 148 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) - (local $3 i32) + (local $3 f32) (local $4 i32) - (local $5 f32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 f32) local.get $0 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - local.set $3 - local.get $2 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 i32.load offset=4 local.set $6 block $break|0 - local.get $4 + local.get $5 call $~lib/typedarray/Float32Array#get:length i32.const 1 i32.sub @@ -8512,7 +8512,7 @@ block (result f32) i32.const 4 global.set $~lib/argc - local.get $5 + local.get $3 local.get $6 local.get $7 i32.const 2 @@ -8520,11 +8520,11 @@ i32.add f32.load local.get $7 + local.get $5 local.get $4 - local.get $3 call_indirect (type $FUNCSIG$fffii) end - local.set $5 + local.set $3 local.get $7 i32.const 1 i32.sub @@ -8534,9 +8534,9 @@ end unreachable end - local.get $5 + local.get $3 local.set $8 - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $8 ) @@ -8598,24 +8598,24 @@ local.get $4 ) (func $~lib/typedarray/Float64Array#reduceRight (; 151 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) - (local $3 i32) + (local $3 f64) (local $4 i32) - (local $5 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 f64) local.get $0 call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - local.set $3 - local.get $2 local.set $5 - local.get $4 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 i32.load offset=4 local.set $6 block $break|0 - local.get $4 + local.get $5 call $~lib/typedarray/Float64Array#get:length i32.const 1 i32.sub @@ -8629,7 +8629,7 @@ block (result f64) i32.const 4 global.set $~lib/argc - local.get $5 + local.get $3 local.get $6 local.get $7 i32.const 3 @@ -8637,11 +8637,11 @@ i32.add f64.load local.get $7 + local.get $5 local.get $4 - local.get $3 call_indirect (type $FUNCSIG$dddii) end - local.set $5 + local.set $3 local.get $7 i32.const 1 i32.sub @@ -8651,9 +8651,9 @@ end unreachable end - local.get $5 + local.get $3 local.set $8 - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $8 )