fix(library/init/lean/compiler/ir/livevars): bug at updateLiveVars

This commit is contained in:
Leonardo de Moura 2019-10-02 15:22:14 -07:00
parent 874dd1d55c
commit 45d664ff25
4 changed files with 66 additions and 240 deletions

View file

@ -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

View file

@ -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();

View file

@ -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();

View file

@ -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;
}