From 45d664ff25e97ab3fdf7d9cae55e5cd0e4b003e0 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Wed, 2 Oct 2019 15:22:14 -0700 Subject: [PATCH] fix(library/init/lean/compiler/ir/livevars): bug at `updateLiveVars` --- library/init/lean/compiler/ir/livevars.lean | 6 +- src/stage0/init/lean/compiler/ir/basic.c | 194 -------------------- src/stage0/init/lean/compiler/ir/format.c | 88 +++++---- src/stage0/init/lean/compiler/ir/livevars.c | 18 +- 4 files changed, 66 insertions(+), 240 deletions(-) diff --git a/library/init/lean/compiler/ir/livevars.lean b/library/init/lean/compiler/ir/livevars.lean index 4439b4cd8d..a5799d4c5b 100644 --- a/library/init/lean/compiler/ir/livevars.lean +++ b/library/init/lean/compiler/ir/livevars.lean @@ -132,9 +132,9 @@ def collectExpr : Expr → Collector | Expr.isTaggedPtr x => collectVar x partial def collectFnBody : FnBody → JPLiveVarMap → Collector -| FnBody.vdecl x _ v b, m => collectExpr v ∘ collectFnBody b m ∘ bindVar x +| FnBody.vdecl x _ v b, m => collectExpr v ∘ bindVar x ∘ collectFnBody b m | FnBody.jdecl j ys v b, m => - let jLiveVars := (collectFnBody v m ∘ bindParams ys) {}; + let jLiveVars := (bindParams ys ∘ collectFnBody v m) {}; let m := m.insert j jLiveVars; collectFnBody b m | FnBody.set x _ y b, m => collectVar x ∘ collectArg y ∘ collectFnBody b m @@ -151,7 +151,7 @@ partial def collectFnBody : FnBody → JPLiveVarMap → Collector | FnBody.jmp j xs, m => collectJP m j ∘ collectArgs xs def updateJPLiveVarMap (j : JoinPointId) (ys : Array Param) (v : FnBody) (m : JPLiveVarMap) : JPLiveVarMap := -let jLiveVars := (collectFnBody v m ∘ bindParams ys) {}; +let jLiveVars := (bindParams ys ∘ collectFnBody v m) {}; m.insert j jLiveVars end LiveVars diff --git a/src/stage0/init/lean/compiler/ir/basic.c b/src/stage0/init/lean/compiler/ir/basic.c index f4ce6661c8..9630962dd2 100644 --- a/src/stage0/init/lean/compiler/ir/basic.c +++ b/src/stage0/init/lean/compiler/ir/basic.c @@ -16,10 +16,8 @@ extern "C" { lean_object* l_RBNode_del___main___at_Lean_IR_LocalContext_eraseJoinPointDecl___spec__2(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_beq___boxed(lean_object*, lean_object*); lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_IRType_HasToString; lean_object* l_Lean_IR_LocalContext_addParams___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_LocalContext_isJP___boxed(lean_object*, lean_object*); -lean_object* l_Lean_IR_IRType_toString___closed__5; lean_object* l_Lean_IR_FnBody_setBody(lean_object*, lean_object*); lean_object* l_Lean_IR_AltCore_mmodifyBody___boxed(lean_object*); lean_object* lean_ir_mk_sset(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); @@ -50,14 +48,12 @@ lean_object* l_Lean_IR_AltCore_mmodifyBody(lean_object*); lean_object* l_Lean_IR_LocalContext_getJPBody(lean_object*, lean_object*); lean_object* l_Lean_IR_LocalContext_isLocalVar___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_addParamsRename___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_IRType_toString___closed__7; lean_object* l_Lean_IR_LocalContext_addLocal(lean_object*, lean_object*, uint8_t, lean_object*); lean_object* lean_ir_mk_fapp_expr(lean_object*, lean_object*); uint8_t l_Lean_IR_LocalContext_isParam(lean_object*, lean_object*); uint8_t l_Lean_IR_LocalContext_contains(lean_object*, lean_object*); lean_object* l_Lean_IR_addParamRename(lean_object*, lean_object*, lean_object*); lean_object* lean_ir_mk_alt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_IRType_toString___boxed(lean_object*); uint8_t l_Lean_IR_IRType_isIrrelevant(uint8_t); lean_object* l_Lean_IR_modifyJPs(lean_object*, lean_object*); lean_object* l_Lean_IR_mmodifyJPs___boxed(lean_object*); @@ -98,7 +94,6 @@ lean_object* l_Lean_IR_CtorInfo_isScalar___boxed(lean_object*); uint8_t l_Lean_IR_LitVal_beq(lean_object*, lean_object*); lean_object* l_Lean_IR_mkSSet___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_IRType_toString___closed__4; lean_object* l_Nat_repr(lean_object*); lean_object* l_Lean_IR_FnBody_alphaEqv___main___boxed(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_IR_FnBody_alphaEqv___main(lean_object*, lean_object*, lean_object*); @@ -153,12 +148,10 @@ lean_object* l_Lean_IR_mkIf(lean_object*, lean_object*, lean_object*); lean_object* l_Array_isEqv___at_Lean_IR_args_alphaEqv___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_mkIf___closed__4; lean_object* l_Lean_IR_mkIf___closed__3; -lean_object* l_Lean_IR_IRType_toString___closed__3; uint8_t l_Lean_IR_CtorInfo_isScalar(lean_object*); lean_object* lean_ir_mk_extern_decl(lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Array_isEqv___at_Lean_IR_FnBody_alphaEqv___main___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); -lean_object* l_Lean_IR_IRType_toString___closed__1; lean_object* lean_ir_mk_param(lean_object*, uint8_t, uint8_t); lean_object* l_Lean_IR_AltCore_body___boxed(lean_object*); lean_object* l_Lean_IR_paramInh; @@ -170,14 +163,12 @@ lean_object* l_Lean_IR_LocalContext_addParams(lean_object*, lean_object*); lean_object* l_panicWithPos___at_Lean_IR_reshapeAux___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_panicWithPos___rarg___closed__1; lean_object* lean_ir_mk_uset(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_IRType_toString___closed__2; lean_object* l_Lean_IR_LocalContext_getType(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_body___boxed(lean_object*); lean_object* l_Lean_IR_VarId_Hashable___boxed(lean_object*); lean_object* l_Lean_IR_IRType_HasBeq; lean_object* l_Lean_IR_altInh; lean_object* l_Lean_IR_FnBody_HasBeq___closed__1; -lean_object* l_Lean_IR_IRType_HasToString___closed__1; lean_object* l_Lean_IR_VarId_HasBeq___boxed(lean_object*, lean_object*); lean_object* l_RBNode_erase___at_Lean_IR_LocalContext_eraseJoinPointDecl___spec__1(lean_object*, lean_object*); lean_object* l_Lean_IR_LocalContext_getJPBody___boxed(lean_object*, lean_object*); @@ -189,7 +180,6 @@ lean_object* l_RBNode_find___main___at_Lean_IR_LocalContext_isJP___spec__1(lean_ uint8_t l_RBNode_isBlack___rarg(lean_object*); lean_object* l_Lean_IR_Decl_params(lean_object*); lean_object* lean_ir_mk_app_expr(lean_object*, lean_object*); -lean_object* l_Lean_IR_IRType_toString___closed__8; lean_object* l_Lean_IR_VarId_HasToString(lean_object*); lean_object* lean_ir_mk_unreachable(lean_object*); uint8_t l_Lean_IR_FnBody_isTerminal(lean_object*); @@ -200,11 +190,9 @@ extern lean_object* l___private_init_data_array_basic_1__swapAtPanic_x21___rarg_ lean_object* l_Array_ummapAux___main___at_Lean_IR_mmodifyJPs___spec__1___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panic(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_Decl_name(lean_object*); -lean_object* l_Lean_IR_IRType_toString___closed__9; lean_object* l_Lean_IR_VarId_alphaEqv___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_mkIf___closed__6; lean_object* l_Lean_IR_mkIf___closed__5; -lean_object* l_Lean_IR_IRType_toString(uint8_t); lean_object* l_Lean_IR_mkDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_IR_FnBody_beq(lean_object*, lean_object*); lean_object* l_Lean_IR_LocalContext_getValue___boxed(lean_object*, lean_object*); @@ -272,7 +260,6 @@ lean_object* l_Lean_IR_Inhabited; uint8_t l_Array_isEqv___at_Lean_IR_FnBody_alphaEqv___main___spec__1___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_LocalContext_getType___boxed(lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_IR_addVarRename___spec__2(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_IRType_toString___closed__6; lean_object* l_RBNode_find___main___at_Lean_IR_VarId_alphaEqv___spec__1(lean_object*, lean_object*); uint8_t l_Lean_IR_Index_lt(lean_object* x_1, lean_object* x_2) { _start: @@ -447,165 +434,6 @@ x_1 = lean_box(0); return x_1; } } -lean_object* _init_l_Lean_IR_IRType_toString___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("float"); -return x_1; -} -} -lean_object* _init_l_Lean_IR_IRType_toString___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("uint8"); -return x_1; -} -} -lean_object* _init_l_Lean_IR_IRType_toString___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("uint16"); -return x_1; -} -} -lean_object* _init_l_Lean_IR_IRType_toString___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("uint32"); -return x_1; -} -} -lean_object* _init_l_Lean_IR_IRType_toString___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("uint64"); -return x_1; -} -} -lean_object* _init_l_Lean_IR_IRType_toString___closed__6() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("usize"); -return x_1; -} -} -lean_object* _init_l_Lean_IR_IRType_toString___closed__7() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("irrelevant"); -return x_1; -} -} -lean_object* _init_l_Lean_IR_IRType_toString___closed__8() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("object"); -return x_1; -} -} -lean_object* _init_l_Lean_IR_IRType_toString___closed__9() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("tobject"); -return x_1; -} -} -lean_object* l_Lean_IR_IRType_toString(uint8_t x_1) { -_start: -{ -switch (x_1) { -case 0: -{ -lean_object* x_2; -x_2 = l_Lean_IR_IRType_toString___closed__1; -return x_2; -} -case 1: -{ -lean_object* x_3; -x_3 = l_Lean_IR_IRType_toString___closed__2; -return x_3; -} -case 2: -{ -lean_object* x_4; -x_4 = l_Lean_IR_IRType_toString___closed__3; -return x_4; -} -case 3: -{ -lean_object* x_5; -x_5 = l_Lean_IR_IRType_toString___closed__4; -return x_5; -} -case 4: -{ -lean_object* x_6; -x_6 = l_Lean_IR_IRType_toString___closed__5; -return x_6; -} -case 5: -{ -lean_object* x_7; -x_7 = l_Lean_IR_IRType_toString___closed__6; -return x_7; -} -case 6: -{ -lean_object* x_8; -x_8 = l_Lean_IR_IRType_toString___closed__7; -return x_8; -} -case 7: -{ -lean_object* x_9; -x_9 = l_Lean_IR_IRType_toString___closed__8; -return x_9; -} -default: -{ -lean_object* x_10; -x_10 = l_Lean_IR_IRType_toString___closed__9; -return x_10; -} -} -} -} -lean_object* l_Lean_IR_IRType_toString___boxed(lean_object* x_1) { -_start: -{ -uint8_t x_2; lean_object* x_3; -x_2 = lean_unbox(x_1); -lean_dec(x_1); -x_3 = l_Lean_IR_IRType_toString(x_2); -return x_3; -} -} -lean_object* _init_l_Lean_IR_IRType_HasToString___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_IR_IRType_toString___boxed), 1, 0); -return x_1; -} -} -lean_object* _init_l_Lean_IR_IRType_HasToString() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_IR_IRType_HasToString___closed__1; -return x_1; -} -} uint8_t l_Lean_IR_IRType_beq(uint8_t x_1, uint8_t x_2) { _start: { @@ -13360,28 +13188,6 @@ l_Lean_IR_MData_empty = _init_l_Lean_IR_MData_empty(); lean_mark_persistent(l_Lean_IR_MData_empty); l_Lean_IR_MData_HasEmptyc = _init_l_Lean_IR_MData_HasEmptyc(); lean_mark_persistent(l_Lean_IR_MData_HasEmptyc); -l_Lean_IR_IRType_toString___closed__1 = _init_l_Lean_IR_IRType_toString___closed__1(); -lean_mark_persistent(l_Lean_IR_IRType_toString___closed__1); -l_Lean_IR_IRType_toString___closed__2 = _init_l_Lean_IR_IRType_toString___closed__2(); -lean_mark_persistent(l_Lean_IR_IRType_toString___closed__2); -l_Lean_IR_IRType_toString___closed__3 = _init_l_Lean_IR_IRType_toString___closed__3(); -lean_mark_persistent(l_Lean_IR_IRType_toString___closed__3); -l_Lean_IR_IRType_toString___closed__4 = _init_l_Lean_IR_IRType_toString___closed__4(); -lean_mark_persistent(l_Lean_IR_IRType_toString___closed__4); -l_Lean_IR_IRType_toString___closed__5 = _init_l_Lean_IR_IRType_toString___closed__5(); -lean_mark_persistent(l_Lean_IR_IRType_toString___closed__5); -l_Lean_IR_IRType_toString___closed__6 = _init_l_Lean_IR_IRType_toString___closed__6(); -lean_mark_persistent(l_Lean_IR_IRType_toString___closed__6); -l_Lean_IR_IRType_toString___closed__7 = _init_l_Lean_IR_IRType_toString___closed__7(); -lean_mark_persistent(l_Lean_IR_IRType_toString___closed__7); -l_Lean_IR_IRType_toString___closed__8 = _init_l_Lean_IR_IRType_toString___closed__8(); -lean_mark_persistent(l_Lean_IR_IRType_toString___closed__8); -l_Lean_IR_IRType_toString___closed__9 = _init_l_Lean_IR_IRType_toString___closed__9(); -lean_mark_persistent(l_Lean_IR_IRType_toString___closed__9); -l_Lean_IR_IRType_HasToString___closed__1 = _init_l_Lean_IR_IRType_HasToString___closed__1(); -lean_mark_persistent(l_Lean_IR_IRType_HasToString___closed__1); -l_Lean_IR_IRType_HasToString = _init_l_Lean_IR_IRType_HasToString(); -lean_mark_persistent(l_Lean_IR_IRType_HasToString); l_Lean_IR_IRType_HasBeq___closed__1 = _init_l_Lean_IR_IRType_HasBeq___closed__1(); lean_mark_persistent(l_Lean_IR_IRType_HasBeq___closed__1); l_Lean_IR_IRType_HasBeq = _init_l_Lean_IR_IRType_HasBeq(); diff --git a/src/stage0/init/lean/compiler/ir/format.c b/src/stage0/init/lean/compiler/ir/format.c index 1682f297c5..0f31e0342d 100644 --- a/src/stage0/init/lean/compiler/ir/format.c +++ b/src/stage0/init/lean/compiler/ir/format.c @@ -117,6 +117,7 @@ lean_object* l_Lean_IR_litValHasFormat___closed__1; lean_object* l_Array_miterateAux___main___at_Lean_IR_formatParams___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_miterateAux___main___at___private_init_lean_compiler_ir_format_2__formatArray___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_formatFnBodyHead___closed__10; +lean_object* l___private_init_lean_compiler_ir_format_6__formatIRType___closed__16; lean_object* l___private_init_lean_compiler_ir_format_5__formatExpr___closed__17; lean_object* l___private_init_lean_compiler_ir_format_5__formatExpr___closed__12; lean_object* lean_nat_add(lean_object*, lean_object*); @@ -126,7 +127,6 @@ lean_object* l___private_init_lean_compiler_ir_format_6__formatIRType___closed__ lean_object* l_Array_miterateAux___main___at___private_init_lean_compiler_ir_format_5__formatExpr___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l___private_init_lean_compiler_ir_format_5__formatExpr___closed__28; -extern lean_object* l_Lean_IR_IRType_toString___closed__1; lean_object* l_Lean_IR_formatFnBodyHead___closed__23; lean_object* l_Lean_IR_declHasToString___closed__1; lean_object* l_Lean_IR_formatFnBodyHead___closed__26; @@ -153,6 +153,7 @@ lean_object* l_Lean_IR_ctorInfoHasFormat; extern lean_object* l_Lean_formatKVMap___closed__1; lean_object* l___private_init_lean_compiler_ir_format_1__formatArg___closed__1; lean_object* lean_format_group(lean_object*); +lean_object* l___private_init_lean_compiler_ir_format_6__formatIRType___closed__15; lean_object* l___private_init_lean_compiler_ir_format_2__formatArray___at_Lean_IR_formatParams___spec__1___boxed(lean_object*); lean_object* l___private_init_lean_compiler_ir_format_5__formatExpr___closed__3; lean_object* l___private_init_lean_compiler_ir_format_5__formatExpr___closed__31; @@ -195,7 +196,6 @@ lean_object* l_Lean_IR_formatFnBodyHead___closed__31; lean_object* l___private_init_lean_compiler_ir_format_5__formatExpr___closed__8; lean_object* l_Lean_IR_formatFnBody___main___closed__4; lean_object* l_Lean_IR_formatFnBodyHead___closed__17; -extern lean_object* l_Lean_IR_IRType_toString___closed__6; lean_object* l_Lean_IR_formatFnBodyHead___closed__33; lean_object* l_Lean_IR_formatFnBodyHead___closed__28; lean_object* l_Lean_IR_formatFnBody___main(lean_object*, lean_object*); @@ -1424,14 +1424,22 @@ return x_4; lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__1() { _start: { +lean_object* x_1; +x_1 = lean_mk_string("float"); +return x_1; +} +} +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__2() { +_start: +{ lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_IR_IRType_toString___closed__1; +x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__2() { +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__3() { _start: { lean_object* x_1; @@ -1439,17 +1447,17 @@ x_1 = lean_mk_string("u8"); return x_1; } } -lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__3() { +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__2; +x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__3; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__4() { +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__5() { _start: { lean_object* x_1; @@ -1457,17 +1465,17 @@ x_1 = lean_mk_string("u16"); return x_1; } } -lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__5() { +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__6() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__4; +x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__5; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__6() { +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__7() { _start: { lean_object* x_1; @@ -1475,17 +1483,17 @@ x_1 = lean_mk_string("u32"); return x_1; } } -lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__7() { +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__8() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__6; +x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__7; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__8() { +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__9() { _start: { lean_object* x_1; @@ -1493,21 +1501,11 @@ x_1 = lean_mk_string("u64"); return x_1; } } -lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__9() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__8; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__10() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_IR_IRType_toString___closed__6; +x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__9; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; @@ -1517,7 +1515,7 @@ lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___cl _start: { lean_object* x_1; -x_1 = lean_mk_string("obj"); +x_1 = lean_mk_string("usize"); return x_1; } } @@ -1535,7 +1533,7 @@ lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___cl _start: { lean_object* x_1; -x_1 = lean_mk_string("tobj"); +x_1 = lean_mk_string("obj"); return x_1; } } @@ -1549,6 +1547,24 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__15() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("tobj"); +return x_1; +} +} +lean_object* _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__16() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__15; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} lean_object* l___private_init_lean_compiler_ir_format_6__formatIRType(uint8_t x_1) { _start: { @@ -1556,37 +1572,37 @@ switch (x_1) { case 0: { lean_object* x_2; -x_2 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__1; +x_2 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__2; return x_2; } case 1: { lean_object* x_3; -x_3 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__3; +x_3 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__4; return x_3; } case 2: { lean_object* x_4; -x_4 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__5; +x_4 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__6; return x_4; } case 3: { lean_object* x_5; -x_5 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__7; +x_5 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__8; return x_5; } case 4: { lean_object* x_6; -x_6 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__9; +x_6 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__10; return x_6; } case 5: { lean_object* x_7; -x_7 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__10; +x_7 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__12; return x_7; } case 6: @@ -1598,13 +1614,13 @@ return x_8; case 7: { lean_object* x_9; -x_9 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__12; +x_9 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__14; return x_9; } default: { lean_object* x_10; -x_10 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__14; +x_10 = l___private_init_lean_compiler_ir_format_6__formatIRType___closed__16; return x_10; } } @@ -4056,6 +4072,10 @@ l___private_init_lean_compiler_ir_format_6__formatIRType___closed__13 = _init_l_ lean_mark_persistent(l___private_init_lean_compiler_ir_format_6__formatIRType___closed__13); l___private_init_lean_compiler_ir_format_6__formatIRType___closed__14 = _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__14(); lean_mark_persistent(l___private_init_lean_compiler_ir_format_6__formatIRType___closed__14); +l___private_init_lean_compiler_ir_format_6__formatIRType___closed__15 = _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__15(); +lean_mark_persistent(l___private_init_lean_compiler_ir_format_6__formatIRType___closed__15); +l___private_init_lean_compiler_ir_format_6__formatIRType___closed__16 = _init_l___private_init_lean_compiler_ir_format_6__formatIRType___closed__16(); +lean_mark_persistent(l___private_init_lean_compiler_ir_format_6__formatIRType___closed__16); l_Lean_IR_typeHasFormat___closed__1 = _init_l_Lean_IR_typeHasFormat___closed__1(); lean_mark_persistent(l_Lean_IR_typeHasFormat___closed__1); l_Lean_IR_typeHasFormat = _init_l_Lean_IR_typeHasFormat(); diff --git a/src/stage0/init/lean/compiler/ir/livevars.c b/src/stage0/init/lean/compiler/ir/livevars.c index b17c311777..b9e23b1e1f 100644 --- a/src/stage0/init/lean/compiler/ir/livevars.c +++ b/src/stage0/init/lean/compiler/ir/livevars.c @@ -6337,9 +6337,9 @@ lean_inc(x_5); x_6 = lean_ctor_get(x_1, 2); lean_inc(x_6); lean_dec(x_1); -x_7 = l_RBNode_erase___at___private_init_lean_compiler_ir_livevars_8__bindVar___spec__1(x_4, x_3); +x_7 = l_Lean_IR_LiveVars_collectFnBody___main(x_6, x_2, x_3); +x_8 = l_RBNode_erase___at___private_init_lean_compiler_ir_livevars_8__bindVar___spec__1(x_4, x_7); lean_dec(x_4); -x_8 = l_Lean_IR_LiveVars_collectFnBody___main(x_6, x_2, x_7); x_9 = l_Lean_IR_LiveVars_collectExpr(x_5, x_8); return x_9; } @@ -6356,11 +6356,11 @@ x_13 = lean_ctor_get(x_1, 3); lean_inc(x_13); lean_dec(x_1); x_14 = lean_box(0); -x_15 = lean_unsigned_to_nat(0u); -x_16 = l_Array_miterateAux___main___at___private_init_lean_compiler_ir_livevars_9__bindParams___spec__1(x_11, x_11, x_15, x_14); -lean_dec(x_11); lean_inc(x_2); -x_17 = l_Lean_IR_LiveVars_collectFnBody___main(x_12, x_2, x_16); +x_15 = l_Lean_IR_LiveVars_collectFnBody___main(x_12, x_2, x_14); +x_16 = lean_unsigned_to_nat(0u); +x_17 = l_Array_miterateAux___main___at___private_init_lean_compiler_ir_livevars_9__bindParams___spec__1(x_11, x_11, x_16, x_15); +lean_dec(x_11); x_18 = l_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___main___spec__1(x_2, x_10, x_17); x_1 = x_13; x_2 = x_18; @@ -6530,10 +6530,10 @@ _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; x_5 = lean_box(0); -x_6 = lean_unsigned_to_nat(0u); -x_7 = l_Array_miterateAux___main___at___private_init_lean_compiler_ir_livevars_9__bindParams___spec__1(x_2, x_2, x_6, x_5); lean_inc(x_4); -x_8 = l_Lean_IR_LiveVars_collectFnBody___main(x_3, x_4, x_7); +x_6 = l_Lean_IR_LiveVars_collectFnBody___main(x_3, x_4, x_5); +x_7 = lean_unsigned_to_nat(0u); +x_8 = l_Array_miterateAux___main___at___private_init_lean_compiler_ir_livevars_9__bindParams___spec__1(x_2, x_2, x_7, x_6); x_9 = l_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___main___spec__1(x_4, x_1, x_8); return x_9; }