From fb7c3cfc5ca5cbd219c4d0bd060606cc5fef51eb Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Fri, 16 Oct 2020 17:09:06 -0700 Subject: [PATCH] chore: update stage0 --- .../Lean/Compiler/IR/ElimDeadBranches.lean | 203 +- stage0/src/Lean/Compiler/IR/FreeVars.lean | 29 +- stage0/src/Lean/Compiler/IR/LiveVars.lean | 36 +- .../Lean/Compiler/IR/ElimDeadBranches.c | 4373 ++++++++++++----- stage0/stdlib/Lean/Compiler/IR/ElimDeadVars.c | 6 +- stage0/stdlib/Lean/Compiler/IR/FreeVars.c | 3264 ++++++++++-- stage0/stdlib/Lean/Compiler/IR/LiveVars.c | 1564 +++++- stage0/stdlib/Lean/Compiler/IR/RC.c | 34 +- stage0/stdlib/Lean/Compiler/IR/ResetReuse.c | 8 +- 9 files changed, 7393 insertions(+), 2124 deletions(-) diff --git a/stage0/src/Lean/Compiler/IR/ElimDeadBranches.lean b/stage0/src/Lean/Compiler/IR/ElimDeadBranches.lean index eae63176ba..1e3613ceab 100644 --- a/stage0/src/Lean/Compiler/IR/ElimDeadBranches.lean +++ b/stage0/src/Lean/Compiler/IR/ElimDeadBranches.lean @@ -1,3 +1,4 @@ +#lang lean4 /- Copyright (c) 2019 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. @@ -7,9 +8,7 @@ import Lean.Compiler.IR.Format import Lean.Compiler.IR.Basic import Lean.Compiler.IR.CompilerM -namespace Lean -namespace IR -namespace UnreachableBranches +namespace Lean.IR.UnreachableBranches /-- Value used in the abstract interpreter -/ inductive Value @@ -25,11 +24,11 @@ instance : Inhabited Value := ⟨top⟩ protected partial def beq : Value → Value → Bool | bot, bot => true | top, top => true -| ctor i₁ vs₁, ctor i₂ vs₂ => i₁ == i₂ && Array.isEqv vs₁ vs₂ beq +| ctor i₁ vs₁, ctor i₂ vs₂ => i₁ == i₂ && Array.isEqv vs₁ vs₂ Value.beq | choice vs₁, choice vs₂ => - vs₁.all (fun v₁ => vs₂.any $ fun v₂ => beq v₁ v₂) + vs₁.all (fun v₁ => vs₂.any fun v₂ => Value.beq v₁ v₂) && - vs₂.all (fun v₂ => vs₁.any $ fun v₁ => beq v₁ v₂) + vs₂.all (fun v₂ => vs₁.any fun v₁ => Value.beq v₁ v₂) | _, _ => false instance : HasBeq Value := ⟨Value.beq⟩ @@ -38,7 +37,7 @@ partial def addChoice (merge : Value → Value → Value) : List Value → Value | [], v => [v] | v₁@(ctor i₁ vs₁) :: cs, v₂@(ctor i₂ vs₂) => if i₁ == i₂ then merge v₁ v₂ :: cs - else v₁ :: addChoice cs v₂ + else v₁ :: addChoice merge cs v₂ | _, _ => panic! "invalid addChoice" partial def merge : Value → Value → Value @@ -47,7 +46,7 @@ partial def merge : Value → Value → Value | top, _ => top | _, top => top | v₁@(ctor i₁ vs₁), v₂@(ctor i₂ vs₂) => - if i₁ == i₂ then ctor i₁ $ vs₁.size.fold (fun i r => r.push (merge (vs₁.get! i) (vs₂.get! i))) #[] + if i₁ == i₂ then ctor i₁ $ vs₁.size.fold (init := #[]) fun i r => r.push (merge vs₁[i] vs₂[i]) else choice [v₁, v₂] | choice vs₁, choice vs₂ => choice $ vs₁.foldl (addChoice merge) vs₂ | choice vs, v => choice $ addChoice merge vs v @@ -56,8 +55,8 @@ partial def merge : Value → Value → Value protected partial def format : Value → Format | top => "top" | bot => "bot" -| choice vs => fmt "@" ++ @List.format _ ⟨format⟩ vs -| ctor i vs => fmt "#" ++ if vs.isEmpty then fmt i.name else Format.paren (fmt i.name ++ @formatArray _ ⟨format⟩ vs) +| choice vs => fmt "@" ++ @List.format _ ⟨Value.format⟩ vs +| ctor i vs => fmt "#" ++ if vs.isEmpty then fmt i.name else Format.paren (fmt i.name ++ @formatArray _ ⟨Value.format⟩ vs) instance : HasFormat Value := ⟨Value.format⟩ instance : HasToString Value := ⟨Format.pretty ∘ Value.format⟩ @@ -67,19 +66,19 @@ instance : HasToString Value := ⟨Format.pretty ∘ Value.format⟩ interpreter. -/ partial def truncate (env : Environment) : Value → NameSet → Value | ctor i vs, found => - let I := i.name.getPrefix; + let I := i.name.getPrefix if found.contains I then top else let cont (found' : NameSet) : Value := - ctor i (vs.map $ fun v => truncate v found'); + ctor i (vs.map fun v => truncate env v found') match env.find? I with | some (ConstantInfo.inductInfo d) => if d.isRec then cont (found.insert I) else cont found | _ => cont found | choice vs, found => - let newVs := vs.map $ fun v => truncate v found; + let newVs := vs.map fun v => truncate env v found if newVs.elem top then top else choice newVs | v, _ => v @@ -96,7 +95,7 @@ def mkFunctionSummariesExtension : IO (SimplePersistentEnvExtension (FunId × Va registerSimplePersistentEnvExtension { name := `unreachBranchesFunSummary, addImportedFn := fun as => - let cache : FunctionSummaries := mkStateFromImportedEntries (fun s (p : FunId × Value) => s.insert p.1 p.2) {} as; + let cache : FunctionSummaries := mkStateFromImportedEntries (fun s (p : FunId × Value) => s.insert p.1 p.2) {} as cache.switch, addEntryFn := fun s ⟨e, n⟩ => s.insert e n } @@ -127,9 +126,9 @@ abbrev M := ReaderT InterpContext (StateM InterpState) open Value def findVarValue (x : VarId) : M Value := do -ctx ← read; -s ← get; -let assignment := s.assignments.get! ctx.currFnIdx; +let ctx ← read +let s ← get +let assignment := s.assignments[ctx.currFnIdx] pure $ assignment.findD x bot def findArgValue (arg : Arg) : M Value := @@ -138,13 +137,13 @@ match arg with | _ => pure top def updateVarAssignment (x : VarId) (v : Value) : M Unit := do -v' ← findVarValue x; -ctx ← read; -modify $ fun s => { s with assignments := s.assignments.modify ctx.currFnIdx $ fun a => a.insert x (merge v v') } +let v' ← findVarValue x +let ctx ← read +modify fun s => { s with assignments := s.assignments.modify ctx.currFnIdx fun a => a.insert x (merge v v') } def resetVarAssignment (x : VarId) : M Unit := do -ctx ← read; -modify $ fun s => { s with assignments := s.assignments.modify ctx.currFnIdx $ fun a => a.insert x Value.bot } +let ctx ← read +modify fun s => { s with assignments := s.assignments.modify ctx.currFnIdx fun a => a.insert x Value.bot } def resetParamAssignment (y : Param) : M Unit := resetVarAssignment y.x @@ -155,16 +154,16 @@ partial def projValue : Value → Nat → Value | v, _ => v def interpExpr : Expr → M Value -| Expr.ctor i ys => ctor i <$> ys.mapM (fun y => findArgValue y) -| Expr.proj i x => do v ← findVarValue x; pure $ projValue v i +| Expr.ctor i ys => do return ctor i (← ys.mapM fun y => findArgValue y) +| Expr.proj i x => do return projValue (← findVarValue x) i | Expr.fap fid ys => do - ctx ← read; + let ctx ← read match getFunctionSummary? ctx.env fid with | some v => pure v | none => do - s ← get; + let s ← get match ctx.decls.findIdx? (fun decl => decl.name == fid) with - | some idx => pure $ s.funVals.get! idx + | some idx => pure s.funVals[idx] | none => pure top | _ => pure top @@ -175,32 +174,31 @@ partial def containsCtor : Value → CtorInfo → Bool | _, _ => false def updateCurrFnSummary (v : Value) : M Unit := do -ctx ← read; -let currFnIdx := ctx.currFnIdx; -modify $ fun s => { s with funVals := s.funVals.modify currFnIdx (fun v' => widening ctx.env v v') } +let ctx ← read +let currFnIdx := ctx.currFnIdx +modify fun s => { s with funVals := s.funVals.modify currFnIdx (fun v' => widening ctx.env v v') } /-- Return true if the assignment of at least one parameter has been updated. -/ def updateJPParamsAssignment (ys : Array Param) (xs : Array Arg) : M Bool := do -ctx ← read; -let currFnIdx := ctx.currFnIdx; -ys.size.foldM - (fun i r => do - let y := ys.get! i; - let x := xs.get! i; - yVal ← findVarValue y.x; - xVal ← findArgValue x; - let newVal := merge yVal xVal; - if newVal == yVal then pure r - else do - modify $ fun s => { s with assignments := s.assignments.modify currFnIdx $ fun a => a.insert y.x newVal }; - pure true) - false +let ctx ← read +let currFnIdx := ctx.currFnIdx +ys.size.foldM (init := false) fun i r => do + let y := ys[i] + let x := xs[i] + let yVal ← findVarValue y.x + let xVal ← findArgValue x + let newVal := merge yVal xVal + if newVal == yVal then + pure r + else + modify fun s => { s with assignments := s.assignments.modify currFnIdx fun a => a.insert y.x newVal } + pure true private partial def resetNestedJPParams : FnBody → M Unit | FnBody.jdecl _ ys b k => do - ctx ← read; - let currFnIdx := ctx.currFnIdx; - ys.forM resetParamAssignment; + let ctx ← read + let currFnIdx := ctx.currFnIdx + ys.forM resetParamAssignment /- Remark we don't need to reset the parameters of joint-points nested in `b` since they will be reset if this JP is used. -/ resetNestedJPParams k @@ -208,75 +206,75 @@ private partial def resetNestedJPParams : FnBody → M Unit alts.forM fun alt => match alt with | Alt.ctor _ b => resetNestedJPParams b | Alt.default b => resetNestedJPParams b -| e => unless (e.isTerminal) $ resetNestedJPParams e.body +| e => do unless e.isTerminal do resetNestedJPParams e.body partial def interpFnBody : FnBody → M Unit | FnBody.vdecl x _ e b => do - v ← interpExpr e; - updateVarAssignment x v; + let v ← interpExpr e + updateVarAssignment x v interpFnBody b | FnBody.jdecl j ys v b => - withReader (fun ctx => { ctx with lctx := ctx.lctx.addJP j ys v }) $ + withReader (fun ctx => { ctx with lctx := ctx.lctx.addJP j ys v }) do interpFnBody b | FnBody.case _ x _ alts => do - v ← findVarValue x; - alts.forM $ fun alt => + let v ← findVarValue x + alts.forM fun alt => do match alt with - | Alt.ctor i b => when (containsCtor v i) $ interpFnBody b + | Alt.ctor i b => if containsCtor v i then interpFnBody b | Alt.default b => interpFnBody b | FnBody.ret x => do - v ← findArgValue x; + let v ← findArgValue x -- dbgTrace ("ret " ++ toString v) $ fun _ => updateCurrFnSummary v | FnBody.jmp j xs => do - ctx ← read; - let ys := (ctx.lctx.getJPParams j).get!; - let b := (ctx.lctx.getJPBody j).get!; - updated ← updateJPParamsAssignment ys xs; - when updated do + let ctx ← read + let ys := (ctx.lctx.getJPParams j).get! + let b := (ctx.lctx.getJPBody j).get! + let updated ← updateJPParamsAssignment ys xs + if updated then -- We must reset the value of nested join-point parameters since they depend on `ys` values - resetNestedJPParams b; + resetNestedJPParams b interpFnBody b -| e => unless (e.isTerminal) $ interpFnBody e.body +| e => do + unless e.isTerminal do + interpFnBody e.body def inferStep : M Bool := do -ctx ← read; -modify $ fun s => { s with assignments := ctx.decls.map $ fun _ => {} }; -ctx.decls.size.foldM (fun idx modified => do - match ctx.decls.get! idx with +let ctx ← read +modify fun s => { s with assignments := ctx.decls.map fun _ => {} } +ctx.decls.size.foldM (init := false) fun idx modified => do + match ctx.decls[idx] with | Decl.fdecl fid ys _ b => do - s ← get; - -- dbgTrace (">> " ++ toString fid) $ fun _ => - let currVals := s.funVals.get! idx; - withReader (fun ctx => { ctx with currFnIdx := idx }) $ do - ys.forM $ fun y => updateVarAssignment y.x top; - interpFnBody b; - s ← get; - let newVals := s.funVals.get! idx; - pure (modified || currVals != newVals) - | Decl.extern _ _ _ _ => pure modified) - false + let s ← get + let currVals := s.funVals[idx] + withReader (fun ctx => { ctx with currFnIdx := idx }) do + ys.forM fun y => updateVarAssignment y.x top + interpFnBody b + let s ← get + let newVals := s.funVals[idx] + pure (modified || currVals != newVals) + | Decl.extern _ _ _ _ => pure modified partial def inferMain : Unit → M Unit | _ => do - modified ← inferStep; + let modified ← inferStep if modified then inferMain () else pure () partial def elimDeadAux (assignment : Assignment) : FnBody → FnBody -| FnBody.vdecl x t e b => FnBody.vdecl x t e (elimDeadAux b) -| FnBody.jdecl j ys v b => FnBody.jdecl j ys (elimDeadAux v) (elimDeadAux b) +| FnBody.vdecl x t e b => FnBody.vdecl x t e (elimDeadAux assignment b) +| FnBody.jdecl j ys v b => FnBody.jdecl j ys (elimDeadAux assignment v) (elimDeadAux assignment b) | FnBody.case tid x xType alts => - let v := assignment.findD x bot; - let alts := alts.map $ fun alt => + let v := assignment.findD x bot + let alts := alts.map fun alt => match alt with - | Alt.ctor i b => Alt.ctor i $ if containsCtor v i then elimDeadAux b else FnBody.unreachable - | Alt.default b => Alt.default (elimDeadAux b); + | Alt.ctor i b => Alt.ctor i $ if containsCtor v i then elimDeadAux assignment b else FnBody.unreachable + | Alt.default b => Alt.default (elimDeadAux assignment b) FnBody.case tid x xType alts | e => if e.isTerminal then e else - let (instr, b) := e.split; - let b := elimDeadAux b; + let (instr, b) := e.split + let b := elimDeadAux assignment b instr.setBody b partial def elimDead (assignment : Assignment) : Decl → Decl @@ -288,22 +286,19 @@ end UnreachableBranches open UnreachableBranches def elimDeadBranches (decls : Array Decl) : CompilerM (Array Decl) := do -s ← get; -let env := s.env; -let assignments : Array Assignment := decls.map $ fun _ => {}; -let funVals := Std.mkPArray decls.size Value.bot; -let ctx : InterpContext := { decls := decls, env := env }; -let s : InterpState := { assignments := assignments, funVals := funVals }; -let (_, s) := (inferMain () ctx).run s; -let funVals := s.funVals; -let assignments := s.assignments; -modify $ fun s => - let env := decls.size.fold (fun i env => - -- dbgTrace (">> " ++ toString (decls.get! i).name ++ " " ++ toString (funVals.get! i)) $ fun _ => - addFunctionSummary env (decls.get! i).name (funVals.get! i)) - s.env; - { s with env := env }; -pure $ decls.mapIdx $ fun i decl => elimDead (assignments.get! i) decl +let s ← get +let env := s.env +let assignments : Array Assignment := decls.map fun _ => {} +let funVals := Std.mkPArray decls.size Value.bot +let ctx : InterpContext := { decls := decls, env := env } +let s : InterpState := { assignments := assignments, funVals := funVals } +let (_, s) := (inferMain () ctx).run s +let funVals := s.funVals +let assignments := s.assignments +modify fun s => + let env := decls.size.fold (init := s.env) fun i env => + addFunctionSummary env decls[i].name funVals[i] + { s with env := env } +pure $ decls.mapIdx fun i decl => elimDead assignments[i] decl -end IR -end Lean +end Lean.IR diff --git a/stage0/src/Lean/Compiler/IR/FreeVars.lean b/stage0/src/Lean/Compiler/IR/FreeVars.lean index 279052aabb..6d1cdb33c4 100644 --- a/stage0/src/Lean/Compiler/IR/FreeVars.lean +++ b/stage0/src/Lean/Compiler/IR/FreeVars.lean @@ -1,3 +1,4 @@ +#lang lean4 /- Copyright (c) 2019 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. @@ -5,8 +6,7 @@ Authors: Leonardo de Moura -/ import Lean.Compiler.IR.Basic -namespace Lean -namespace IR +namespace Lean.IR namespace MaxIndex /- Compute the maximum index `M` used in a declaration. @@ -210,19 +210,19 @@ def visitExpr (w : Index) : Expr → Bool | Expr.isTaggedPtr x => visitVar w x partial def visitFnBody (w : Index) : FnBody → Bool -| FnBody.vdecl x _ v b => visitExpr w v || visitFnBody b -| FnBody.jdecl j ys v b => visitFnBody v || visitFnBody b -| FnBody.set x _ y b => visitVar w x || visitArg w y || visitFnBody b -| FnBody.uset x _ y b => visitVar w x || visitVar w y || visitFnBody b -| FnBody.sset x _ _ y _ b => visitVar w x || visitVar w y || visitFnBody b -| FnBody.setTag x _ b => visitVar w x || visitFnBody b -| FnBody.inc x _ _ _ b => visitVar w x || visitFnBody b -| FnBody.dec x _ _ _ b => visitVar w x || visitFnBody b -| FnBody.del x b => visitVar w x || visitFnBody b -| FnBody.mdata _ b => visitFnBody b +| FnBody.vdecl x _ v b => visitExpr w v || visitFnBody w b +| FnBody.jdecl j ys v b => visitFnBody w v || visitFnBody w b +| FnBody.set x _ y b => visitVar w x || visitArg w y || visitFnBody w b +| FnBody.uset x _ y b => visitVar w x || visitVar w y || visitFnBody w b +| FnBody.sset x _ _ y _ b => visitVar w x || visitVar w y || visitFnBody w b +| FnBody.setTag x _ b => visitVar w x || visitFnBody w b +| FnBody.inc x _ _ _ b => visitVar w x || visitFnBody w b +| FnBody.dec x _ _ _ b => visitVar w x || visitFnBody w b +| FnBody.del x b => visitVar w x || visitFnBody w b +| FnBody.mdata _ b => visitFnBody w b | FnBody.jmp j ys => visitJP w j || visitArgs w ys | FnBody.ret x => visitArg w x -| FnBody.case _ x _ alts => visitVar w x || alts.any (fun alt => visitFnBody alt.body) +| FnBody.case _ x _ alts => visitVar w x || alts.any (fun alt => visitFnBody w alt.body) | FnBody.unreachable => false end HasIndex @@ -231,5 +231,4 @@ def Arg.hasFreeVar (arg : Arg) (x : VarId) : Bool := HasIndex.visitArg x.idx arg def Expr.hasFreeVar (e : Expr) (x : VarId) : Bool := HasIndex.visitExpr x.idx e def FnBody.hasFreeVar (b : FnBody) (x : VarId) : Bool := HasIndex.visitFnBody x.idx b -end IR -end Lean +end Lean.IR diff --git a/stage0/src/Lean/Compiler/IR/LiveVars.lean b/stage0/src/Lean/Compiler/IR/LiveVars.lean index 0dc2e30cf4..3a573a1c4a 100644 --- a/stage0/src/Lean/Compiler/IR/LiveVars.lean +++ b/stage0/src/Lean/Compiler/IR/LiveVars.lean @@ -1,3 +1,4 @@ +#lang lean4 /- Copyright (c) 2019 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. @@ -6,8 +7,7 @@ Authors: Leonardo de Moura import Lean.Compiler.IR.Basic import Lean.Compiler.IR.FreeVars -namespace Lean -namespace IR +namespace Lean.IR /- Remark: in the paper "Counting Immutable Beans" the concepts of free and live variables coincide because the paper does *not* consider @@ -44,29 +44,28 @@ abbrev M := StateM LocalContext @[inline] def visitExpr (w : Index) (e : Expr) : M Bool := pure (HasIndex.visitExpr w e) partial def visitFnBody (w : Index) : FnBody → M Bool -| FnBody.vdecl x _ v b => visitExpr w v <||> visitFnBody b -| FnBody.jdecl j ys v b => visitFnBody v <||> visitFnBody b -| FnBody.set x _ y b => visitVar w x <||> visitArg w y <||> visitFnBody b -| FnBody.uset x _ y b => visitVar w x <||> visitVar w y <||> visitFnBody b -| FnBody.sset x _ _ y _ b => visitVar w x <||> visitVar w y <||> visitFnBody b -| FnBody.setTag x _ b => visitVar w x <||> visitFnBody b -| FnBody.inc x _ _ _ b => visitVar w x <||> visitFnBody b -| FnBody.dec x _ _ _ b => visitVar w x <||> visitFnBody b -| FnBody.del x b => visitVar w x <||> visitFnBody b -| FnBody.mdata _ b => visitFnBody b -| FnBody.jmp j ys => visitArgs w ys <||> do { - ctx ← get; +| FnBody.vdecl x _ v b => visitExpr w v <||> visitFnBody w b +| FnBody.jdecl j ys v b => visitFnBody w v <||> visitFnBody w b +| FnBody.set x _ y b => visitVar w x <||> visitArg w y <||> visitFnBody w b +| FnBody.uset x _ y b => visitVar w x <||> visitVar w y <||> visitFnBody w b +| FnBody.sset x _ _ y _ b => visitVar w x <||> visitVar w y <||> visitFnBody w b +| FnBody.setTag x _ b => visitVar w x <||> visitFnBody w b +| FnBody.inc x _ _ _ b => visitVar w x <||> visitFnBody w b +| FnBody.dec x _ _ _ b => visitVar w x <||> visitFnBody w b +| FnBody.del x b => visitVar w x <||> visitFnBody w b +| FnBody.mdata _ b => visitFnBody w b +| FnBody.jmp j ys => visitArgs w ys <||> do + let ctx ← get match ctx.getJPBody j with | some b => -- `j` is not a local join point since we assume we cannot shadow join point declarations. -- Instead of marking the join points that we have already been visited, we permanently remove `j` from the context. - set (ctx.eraseJoinPointDecl j) *> visitFnBody b + set (ctx.eraseJoinPointDecl j) *> visitFnBody w b | none => -- `j` must be a local join point. So do nothing since we have already visite its body. pure false - } | FnBody.ret x => visitArg w x -| FnBody.case _ x _ alts => visitVar w x <||> alts.anyM (fun alt => visitFnBody alt.body) +| FnBody.case _ x _ alts => visitVar w x <||> alts.anyM (fun alt => visitFnBody w alt.body) | FnBody.unreachable => pure false end IsLive @@ -161,5 +160,4 @@ LiveVars.collectFnBody b m v export LiveVars (updateJPLiveVarMap) -end IR -end Lean +end Lean.IR diff --git a/stage0/stdlib/Lean/Compiler/IR/ElimDeadBranches.c b/stage0/stdlib/Lean/Compiler/IR/ElimDeadBranches.c index dbb3802ef2..9ae1edc1a3 100644 --- a/stage0/stdlib/Lean/Compiler/IR/ElimDeadBranches.c +++ b/stage0/stdlib/Lean/Compiler/IR/ElimDeadBranches.c @@ -13,30 +13,38 @@ #ifdef __cplusplus extern "C" { #endif +lean_object* l_Lean_IR_UnreachableBranches_Value_merge_match__1(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4; +lean_object* l_Lean_IR_UnreachableBranches_Value_merge_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___closed__3; +lean_object* l_Lean_IR_UnreachableBranches_InterpContext_currFnIdx___default; +lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3___closed__1; lean_object* l_Nat_foldMAux___main___at_Lean_IR_UnreachableBranches_inferStep___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t l_USize_add(size_t, size_t); +lean_object* l_Lean_IR_UnreachableBranches_Value_format___closed__3; lean_object* l_Lean_IR_UnreachableBranches_updateVarAssignment(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_findArgValue(lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__3(lean_object*, uint8_t, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___closed__5; -lean_object* l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___main___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__2___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Array_getD___rarg(lean_object*, lean_object*, lean_object*); -uint8_t l_Lean_IR_UnreachableBranches_Value_beq___main(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__1(lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__15___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_RBNode_insert___at_Lean_NameSet_insert___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Std_HashMapImp_moveEntries___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__9(lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_inferStep___spec__1(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__6(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___closed__1; lean_object* lean_array_uget(lean_object*, size_t); +lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice_match__1(lean_object*); lean_object* l_Lean_IR_UnreachableBranches_updateJPParamsAssignment___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_IR_elimDeadBranches___spec__2(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_format___closed__2; +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__10(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__4___boxed(lean_object*, lean_object*, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams(lean_object*, lean_object*, lean_object*); extern lean_object* l_Option_get_x21___rarg___closed__3; +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Std_HashMap_inhabited___closed__1; lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___closed__3; lean_object* lean_array_uset(lean_object*, size_t, lean_object*); @@ -47,204 +55,220 @@ lean_object* l_Std_AssocList_foldlM___main___at_Lean_IR_UnreachableBranches_upda extern lean_object* l_Lean_List_format___rarg___closed__1; extern lean_object* l_Lean_registerInternalExceptionId___closed__2; lean_object* l_Array_umapMAux___main___at_Lean_IR_elimDeadBranches___spec__2___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_format___closed__4; uint8_t l_Std_AssocList_contains___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__7(lean_object*, lean_object*); lean_object* l_Lean_EnvExtensionInterfaceUnsafe_registerExt___rarg(lean_object*, lean_object*); -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___main___spec__1(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___rarg(lean_object*); size_t l_USize_sub(size_t, size_t); lean_object* l_Std_HashMapImp_find_x3f___at_Lean_IR_UnreachableBranches_findVarValue___spec__1(lean_object*, lean_object*); extern lean_object* l_Array_empty___closed__1; lean_object* lean_environment_find(lean_object*, lean_object*); -lean_object* l___private_Init_Util_1__mkPanicMessage(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_inferMain_match__1___rarg(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__3___boxed(lean_object*, lean_object*); +uint8_t l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_format___closed__1; +lean_object* l_Lean_IR_UnreachableBranches_interpFnBody_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Format_joinSep___main___at_Lean_IR_UnreachableBranches_Value_format___spec__4(lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__2___boxed(lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_format___main___closed__4; +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__11(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_inferMain___boxed(lean_object*); lean_object* l_Lean_IR_UnreachableBranches_containsCtor___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_LocalContext_getJPParams(lean_object*, lean_object*); -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__5(lean_object*, uint8_t, lean_object*); -uint8_t l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentArray_getAux___main___at_Lean_IR_UnreachableBranches_interpExpr___spec__4(lean_object*, size_t, size_t); +lean_object* l_Lean_IR_UnreachableBranches_inferStep_match__1(lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); extern lean_object* l_Lean_IR_Inhabited; lean_object* lean_array_get_size(lean_object*); lean_object* l_Std_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_HasBeq; lean_object* lean_string_append(lean_object*, lean_object*); lean_object* l_Nat_foldMAux___main___at_Lean_IR_UnreachableBranches_updateJPParamsAssignment___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_format_match__1(lean_object*); lean_object* l_Std_mkPersistentArray___rarg(lean_object*, lean_object*); -lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___main___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux___main___boxed(lean_object*, lean_object*); -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_inferMain___main(lean_object*); size_t l_USize_shiftRight(size_t, size_t); +lean_object* l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_beq_match__1(lean_object*); lean_object* l_Lean_IR_UnreachableBranches_projValue(lean_object*, lean_object*); -lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_resetParamAssignment___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_LocalContext_Inhabited___closed__1; -lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_findAtAux___main___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_interpExpr___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_fmt___at_Lean_Level_LevelToFormat_toResult___main___spec__1(lean_object*); lean_object* l_Std_AssocList_find_x3f___main___at_Lean_IR_UnreachableBranches_findVarValue___spec__2(lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_format___main___closed__6; lean_object* lean_nat_add(lean_object*, lean_object*); -lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Std_HashMapImp_find_x3f___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__5(lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_format___main(lean_object*); extern lean_object* l___private_Lean_Environment_8__persistentEnvExtensionsRef; extern lean_object* l_Lean_Format_sbracket___closed__2; +lean_object* l_Lean_IR_UnreachableBranches_Value_truncate_match__2(lean_object*); lean_object* l_Lean_IR_Decl_name(lean_object*); -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__4___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_interpExpr(lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentArray_modify___at_Lean_IR_UnreachableBranches_updateCurrFnSummary___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___closed__2; extern lean_object* l_Lean_IR_Arg_Inhabited; -lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1; +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__7(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_HashMapImp_find_x3f___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__5___boxed(lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_inferMain___main___rarg(lean_object*, lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_containsCtor___main___boxed(lean_object*, lean_object*); lean_object* l_Std_HashMapImp_find_x3f___at_Lean_IR_UnreachableBranches_findVarValue___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Std_PersistentArray_get_x21___at_Lean_IR_UnreachableBranches_interpExpr___spec__3(lean_object*, lean_object*); -lean_object* l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___main___spec__1(lean_object*); +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); uint8_t l_Array_anyRangeMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__19(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_format___main___closed__2; uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_Value_format(lean_object*); -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_format___main___closed__1; +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___spec__1(lean_object*, uint8_t, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__1(lean_object*); +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__4(lean_object*, uint8_t, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__5(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__2___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2___closed__1; lean_object* l_EStateM_bind___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_inferStep_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); uint8_t l_Lean_IR_UnreachableBranches_Value_beq(lean_object*, lean_object*); lean_object* l_Lean_SMap_switch___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__16(lean_object*); +lean_object* l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___spec__1___boxed(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___closed__3; lean_object* l_Std_PersistentHashMap_insertAtCollisionNodeAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Std_PersistentHashMap_insertAux___main___rarg___closed__3; lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_interpFnBody_match__1(lean_object*); lean_object* l_Nat_foldMAux___main___at_Lean_IR_UnreachableBranches_inferStep___spec__3(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_inferMain___main___boxed(lean_object*); +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams(lean_object*, lean_object*, lean_object*); lean_object* l_Std_HashMapImp_insert___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__6(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_LocalContext_addJP(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_resetParamAssignment(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_addFunctionSummary(lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__4(lean_object*, uint8_t, lean_object*); lean_object* l_Std_HashMapImp_expand___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__4(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_resetVarAssignment(lean_object*, lean_object*, lean_object*); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_beq___main___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_arrayHasFormat___rarg___closed__1; lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt; lean_object* l_Std_PersistentArray_getAux___main___at_Lean_IR_UnreachableBranches_interpExpr___spec__4___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_elimDeadBranches_match__1___rarg(lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_findAux___main___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__3___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__2(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__3(lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l_Std_mkHashMapImp___rarg(lean_object*); lean_object* l_Lean_IR_UnreachableBranches_Value_widening(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_IR_FnBody_isTerminal(lean_object*); lean_object* l_Lean_IR_UnreachableBranches_updateCurrFnSummary(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_findVarValue(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_Inhabited; lean_object* l_Std_AssocList_replace___main___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__7(lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__3___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___closed__5; size_t l_Lean_Name_hash(lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_projValue___main___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_IR_paramInh; lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__1___boxed(lean_object*); +lean_object* l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Std_PersistentArrayNode_Inhabited___closed__1; +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__3(lean_object*, uint8_t, lean_object*); lean_object* lean_name_mk_string(lean_object*, lean_object*); lean_object* l_Std_PersistentArray_modifyAux___main___at_Lean_IR_UnreachableBranches_updateCurrFnSummary___spec__2(lean_object*, lean_object*, lean_object*, size_t, size_t); +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__2___rarg(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_findArgValue___boxed(lean_object*, lean_object*, lean_object*); extern size_t l_Std_PersistentHashMap_insertAux___main___rarg___closed__2; lean_object* l_Function_comp___rarg(lean_object*, lean_object*, lean_object*); size_t l_USize_shiftLeft(size_t, size_t); +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_elimDead___boxed(lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_interpFnBody___main(lean_object*, lean_object*, lean_object*); extern lean_object* l_IO_Error_Inhabited___closed__1; -lean_object* l_Lean_Format_joinSep___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__4(lean_object*, lean_object*); +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__5___boxed(lean_object*, lean_object*, lean_object*); size_t lean_usize_modn(size_t, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__3___boxed(lean_object*, lean_object*, lean_object*); uint8_t l_Array_isEmpty___rarg(lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_format___main___closed__3; -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__2(lean_object*, uint8_t, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_format___closed__5; +lean_object* l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Std_AssocList_contains___main___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__3(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__2(lean_object*); size_t l_USize_mul(size_t, size_t); lean_object* l_Std_PersistentArray_get_x21___at_Lean_IR_UnreachableBranches_interpExpr___spec__3___boxed(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension_match__1(lean_object*); lean_object* l_Nat_foldMAux___main___at_Lean_IR_UnreachableBranches_updateJPParamsAssignment___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_inferStep___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_merge___main(lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_HasToString; +lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_projValue___boxed(lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); uint8_t l_Lean_IR_UnreachableBranches_containsCtor(lean_object*, lean_object*); extern lean_object* l_Std_PersistentArray_getAux___main___rarg___closed__1; lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__2(lean_object*); extern lean_object* l_Lean_NameSet_empty; +lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2; extern lean_object* l_Array_iterateMAux___main___at_Lean_ppGoal___spec__6___closed__1; lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_inferStep___spec__1___closed__1; -lean_object* l_Lean_IR_UnreachableBranches_Value_HasBeq___closed__1; +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); size_t l_USize_land(size_t, size_t); +lean_object* l_Lean_IR_UnreachableBranches_interpFnBody_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_truncate_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentArray_modify___at_Lean_IR_UnreachableBranches_updateCurrFnSummary___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_EnvExtensionInterfaceUnsafe_Ext_inhabitedExt___closed__2; lean_object* l_Std_AssocList_foldlM___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__10(lean_object*, lean_object*); -lean_object* l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*); extern lean_object* l_Lean_IR_Decl_Inhabited; extern lean_object* l_Lean_Format_sbracket___closed__3; lean_object* l_Lean_IR_UnreachableBranches_updateJPParamsAssignment(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_truncate_match__1(lean_object*); +lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_updateVarAssignment___boxed(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_HasRepr___closed__1; lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__19___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_interpExpr___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__3___boxed(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Std_AssocList_contains___main___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_find_x3f___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__2(lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat___closed__1; +lean_object* l_Lean_IR_UnreachableBranches_InterpContext_lctx___default; extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; lean_object* l_Lean_IR_UnreachableBranches_updateVarAssignment___closed__1; lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__14(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__18(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_inferMain_match__1(lean_object*); lean_object* l_Std_PersistentHashMap_insertAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_elimDeadBranches(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_Value_beq___boxed(lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_find_x3f___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__2___boxed(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_findArgValue_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_setBody(lean_object*, lean_object*); lean_object* l_Std_AssocList_find_x3f___main___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__6___boxed(lean_object*, lean_object*); +lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__2___closed__1; uint8_t lean_nat_dec_le(lean_object*, lean_object*); -uint8_t l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__3(lean_object*, lean_object*); uint8_t l_USize_decLe(size_t, size_t); lean_object* l_Std_HashMapImp_expand___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__8(lean_object*, lean_object*); +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__5(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__2___boxed(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_findArgValue_match__1(lean_object*); +lean_object* l_Lean_IR_elimDeadBranches_match__1(lean_object*); extern lean_object* l_Lean_Format_sbracket___closed__4; lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__3(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__8(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__2(lean_object*); extern lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -lean_object* l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___main___spec__1___boxed(lean_object*); lean_object* l_Array_findIdxAux___main___at_Lean_IR_UnreachableBranches_interpExpr___spec__2(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_projValue___main(lean_object*, lean_object*); lean_object* l_Nat_foldAux___main___at_Lean_IR_elimDeadBranches___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_panic_fn(lean_object*, lean_object*); -uint8_t l_Lean_IR_UnreachableBranches_containsCtor___main(lean_object*, lean_object*); -lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___main___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__2___closed__2; -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__9(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Format_paren___closed__2; -lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__3; -lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1; lean_object* l_Std_mkHashMap___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__1(lean_object*); -lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_projValue_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__1___rarg(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Format_paren___closed__4; lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_inferStep___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_inferStep(lean_object*, lean_object*); @@ -253,77 +277,95 @@ uint8_t l_Lean_IR_CtorInfo_beq(lean_object*, lean_object*); lean_object* lean_nat_mul(lean_object*, lean_object*); lean_object* l_Lean_Name_getPrefix(lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___main(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_beq_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_interpFnBody_match__2(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_elimDead_match__1(lean_object*); lean_object* l_Lean_IR_UnreachableBranches_inferMain___rarg(lean_object*, lean_object*); lean_object* l_Lean_IR_elimDeadBranches___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Std_AssocList_replace___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__11(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_elimDead(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_HashMapImp_moveEntries___main___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__5(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension_match__1___rarg(lean_object*, lean_object*); lean_object* l_Std_AssocList_contains___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__7___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_inferMain(lean_object*); -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2(lean_object*, lean_object*); lean_object* l_Lean_IR_LocalContext_getJPBody(lean_object*, lean_object*); +lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__2(lean_object*, uint8_t, lean_object*); lean_object* l_Std_HashMapImp_insert___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_resetVarAssignment___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_interpFnBody(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___spec__1(lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__2; +lean_object* l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__12___boxed(lean_object*, lean_object*); lean_object* l_Std_PersistentArray_modifyAux___main___at_Lean_IR_UnreachableBranches_updateCurrFnSummary___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_SMap_find_x3f___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__1(lean_object*, lean_object*); -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__5___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__1; lean_object* l_Std_PersistentHashMap_insertAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_HasToString___closed__1; uint8_t l_Lean_NameSet_contains(lean_object*, lean_object*); extern lean_object* l_Lean_List_format___rarg___closed__3; lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__1(lean_object*); lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__1(lean_object*, lean_object*); +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux___boxed(lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_format___main___closed__5; +lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___closed__4; +lean_object* l_Lean_List_format___at_Lean_IR_UnreachableBranches_Value_format___spec__3(lean_object*); lean_object* l_Std_PersistentHashMap_insert___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__2(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Format_paren___closed__3; lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux(lean_object*, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat; +lean_object* l_Lean_IR_UnreachableBranches_Value_format_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4___closed__1; lean_object* l_Array_findIdxAux___main___at_Lean_IR_UnreachableBranches_interpExpr___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___elambda__4(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_truncate_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___closed__1; +lean_object* l_Lean_IR_UnreachableBranches_projValue_match__1(lean_object*); extern lean_object* l_System_FilePath_dirName___closed__1; lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__13(lean_object*, lean_object*); lean_object* l_Std_AssocList_find_x3f___main___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__6(lean_object*, lean_object*); lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_format___closed__6; +lean_object* l_Lean_IR_UnreachableBranches_containsCtor_match__1(lean_object*); lean_object* l_Lean_SMap_insert___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__1(lean_object*, lean_object*, lean_object*); lean_object* lean_usize_to_nat(size_t); extern lean_object* l_Lean_regNamespacesExtension___closed__4; lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___closed__4; lean_object* l_Lean_IR_FnBody_body(lean_object*); -lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_Std_mkHashMap___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__12(lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_Value_truncate___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__13___boxed(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__2(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__1(lean_object*); lean_object* l_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___boxed(lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__3(lean_object*); lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___closed__2; -lean_object* l_Lean_List_format___at_Lean_IR_UnreachableBranches_Value_format___main___spec__3(lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_containsCtor_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_functionSummariesExt___closed__1; lean_object* l_Nat_foldAux___main___at_Lean_IR_elimDeadBranches___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3; lean_object* l_Lean_IR_UnreachableBranches_findVarValue___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_elimDead_match__1___rarg(lean_object*, lean_object*, lean_object*); +uint8_t l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__12(lean_object*, lean_object*); +lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___closed__2; lean_object* l_Std_PersistentHashMap_findAtAux___main___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__1; +lean_object* l___private_Init_Util_2__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__15(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___closed__4; -lean_object* l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__17(lean_object*, lean_object*); lean_object* l_Lean_IR_UnreachableBranches_getFunctionSummary_x3f(lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_findAux___main___at_Lean_IR_UnreachableBranches_getFunctionSummary_x3f___spec__3(lean_object*, size_t, lean_object*); -lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux___main(lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__2(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); lean_object* l_Std_AssocList_find_x3f___main___at_Lean_IR_UnreachableBranches_findVarValue___spec__2___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___boxed(lean_object*, lean_object*, lean_object*); -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Inhabited() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__1() { _start: { lean_object* x_1; @@ -331,7 +373,120 @@ x_1 = lean_box(1); return x_1; } } -uint8_t l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Lean_IR_UnreachableBranches_Value_beq_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_8; lean_object* x_9; +lean_dec(x_7); +x_8 = lean_box(0); +x_9 = lean_apply_1(x_3, x_8); +return x_9; +} +else +{ +lean_object* x_10; +lean_dec(x_3); +x_10 = lean_apply_2(x_7, x_1, x_2); +return x_10; +} +} +case 1: +{ +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +if (lean_obj_tag(x_2) == 1) +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_7); +x_11 = lean_box(0); +x_12 = lean_apply_1(x_4, x_11); +return x_12; +} +else +{ +lean_object* x_13; +lean_dec(x_4); +x_13 = lean_apply_2(x_7, x_1, x_2); +return x_13; +} +} +case 2: +{ +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +if (lean_obj_tag(x_2) == 2) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +lean_dec(x_7); +x_14 = lean_ctor_get(x_1, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 1); +lean_inc(x_15); +lean_dec(x_1); +x_16 = lean_ctor_get(x_2, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_2, 1); +lean_inc(x_17); +lean_dec(x_2); +x_18 = lean_apply_4(x_5, x_14, x_15, x_16, x_17); +return x_18; +} +else +{ +lean_object* x_19; +lean_dec(x_5); +x_19 = lean_apply_2(x_7, x_1, x_2); +return x_19; +} +} +default: +{ +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +if (lean_obj_tag(x_2) == 3) +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; +lean_dec(x_7); +x_20 = lean_ctor_get(x_1, 0); +lean_inc(x_20); +lean_dec(x_1); +x_21 = lean_ctor_get(x_2, 0); +lean_inc(x_21); +lean_dec(x_2); +x_22 = lean_apply_2(x_6, x_20, x_21); +return x_22; +} +else +{ +lean_object* x_23; +lean_dec(x_6); +x_23 = lean_apply_2(x_7, x_1, x_2); +return x_23; +} +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_Value_beq_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_beq_match__1___rarg), 7, 0); +return x_2; +} +} +uint8_t l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; uint8_t x_8; @@ -350,7 +505,7 @@ else lean_object* x_10; lean_object* x_11; uint8_t x_12; x_10 = lean_array_fget(x_4, x_6); x_11 = lean_array_fget(x_5, x_6); -x_12 = l_Lean_IR_UnreachableBranches_Value_beq___main(x_10, x_11); +x_12 = l_Lean_IR_UnreachableBranches_Value_beq(x_10, x_11); lean_dec(x_11); lean_dec(x_10); if (x_12 == 0) @@ -373,7 +528,7 @@ goto _start; } } } -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__2(lean_object* x_1, uint8_t x_2, lean_object* x_3) { +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__2(lean_object* x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -385,8 +540,8 @@ else lean_object* x_4; lean_object* x_5; uint8_t x_6; uint8_t x_7; x_4 = lean_ctor_get(x_3, 0); x_5 = lean_ctor_get(x_3, 1); -x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__2(x_1, x_2, x_5); -x_7 = l_Lean_IR_UnreachableBranches_Value_beq___main(x_1, x_4); +x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__2(x_1, x_2, x_5); +x_7 = l_Lean_IR_UnreachableBranches_Value_beq(x_1, x_4); if (x_7 == 0) { return x_6; @@ -400,7 +555,7 @@ return x_8; } } } -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__3(lean_object* x_1, uint8_t x_2, lean_object* x_3) { +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__3(lean_object* x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -412,9 +567,9 @@ else lean_object* x_4; lean_object* x_5; uint8_t x_6; uint8_t x_7; uint8_t x_8; x_4 = lean_ctor_get(x_3, 0); x_5 = lean_ctor_get(x_3, 1); -x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__3(x_1, x_2, x_5); +x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__3(x_1, x_2, x_5); x_7 = 0; -x_8 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__2(x_4, x_7, x_1); +x_8 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__2(x_4, x_7, x_1); if (x_8 == 0) { uint8_t x_9; @@ -428,7 +583,7 @@ return x_6; } } } -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__4(lean_object* x_1, uint8_t x_2, lean_object* x_3) { +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__4(lean_object* x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -440,8 +595,8 @@ else lean_object* x_4; lean_object* x_5; uint8_t x_6; uint8_t x_7; x_4 = lean_ctor_get(x_3, 0); x_5 = lean_ctor_get(x_3, 1); -x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__4(x_1, x_2, x_5); -x_7 = l_Lean_IR_UnreachableBranches_Value_beq___main(x_4, x_1); +x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__4(x_1, x_2, x_5); +x_7 = l_Lean_IR_UnreachableBranches_Value_beq(x_4, x_1); if (x_7 == 0) { return x_6; @@ -455,7 +610,7 @@ return x_8; } } } -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__5(lean_object* x_1, uint8_t x_2, lean_object* x_3) { +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__5(lean_object* x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -467,9 +622,9 @@ else lean_object* x_4; lean_object* x_5; uint8_t x_6; uint8_t x_7; uint8_t x_8; x_4 = lean_ctor_get(x_3, 0); x_5 = lean_ctor_get(x_3, 1); -x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__5(x_1, x_2, x_5); +x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__5(x_1, x_2, x_5); x_7 = 0; -x_8 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__4(x_4, x_7, x_1); +x_8 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__4(x_4, x_7, x_1); if (x_8 == 0) { uint8_t x_9; @@ -483,7 +638,7 @@ return x_6; } } } -uint8_t l_Lean_IR_UnreachableBranches_Value_beq___main(lean_object* x_1, lean_object* x_2) { +uint8_t l_Lean_IR_UnreachableBranches_Value_beq(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_1)) { @@ -551,7 +706,7 @@ else { lean_object* x_17; uint8_t x_18; x_17 = lean_unsigned_to_nat(0u); -x_18 = l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__1(x_8, x_10, lean_box(0), x_8, x_10, x_17); +x_18 = l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__1(x_8, x_10, lean_box(0), x_8, x_10, x_17); return x_18; } } @@ -571,7 +726,7 @@ lean_object* x_20; lean_object* x_21; uint8_t x_22; uint8_t x_23; x_20 = lean_ctor_get(x_1, 0); x_21 = lean_ctor_get(x_2, 0); x_22 = 1; -x_23 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__3(x_21, x_22, x_20); +x_23 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__3(x_21, x_22, x_20); if (x_23 == 0) { uint8_t x_24; @@ -581,7 +736,7 @@ return x_24; else { uint8_t x_25; -x_25 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__5(x_20, x_22, x_21); +x_25 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__5(x_20, x_22, x_21); return x_25; } } @@ -595,11 +750,11 @@ return x_26; } } } -lean_object* l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { uint8_t x_7; lean_object* x_8; -x_7 = l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Array_isEqvAux___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); @@ -608,77 +763,58 @@ x_8 = lean_box(x_7); return x_8; } } -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; lean_object* x_6; x_4 = lean_unbox(x_2); lean_dec(x_2); -x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__2(x_1, x_4, x_3); +x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__2(x_1, x_4, x_3); lean_dec(x_3); lean_dec(x_1); x_6 = lean_box(x_5); return x_6; } } -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; lean_object* x_6; x_4 = lean_unbox(x_2); lean_dec(x_2); -x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__3(x_1, x_4, x_3); +x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__3(x_1, x_4, x_3); lean_dec(x_3); lean_dec(x_1); x_6 = lean_box(x_5); return x_6; } } -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; lean_object* x_6; x_4 = lean_unbox(x_2); lean_dec(x_2); -x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__4(x_1, x_4, x_3); +x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__4(x_1, x_4, x_3); lean_dec(x_3); lean_dec(x_1); x_6 = lean_box(x_5); return x_6; } } -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; lean_object* x_6; x_4 = lean_unbox(x_2); lean_dec(x_2); -x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___main___spec__5(x_1, x_4, x_3); +x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_Value_beq___spec__5(x_1, x_4, x_3); lean_dec(x_3); lean_dec(x_1); x_6 = lean_box(x_5); return x_6; } } -lean_object* l_Lean_IR_UnreachableBranches_Value_beq___main___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_Lean_IR_UnreachableBranches_Value_beq___main(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -x_4 = lean_box(x_3); -return x_4; -} -} -uint8_t l_Lean_IR_UnreachableBranches_Value_beq(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; -x_3 = l_Lean_IR_UnreachableBranches_Value_beq___main(x_1, x_2); -return x_3; -} -} lean_object* l_Lean_IR_UnreachableBranches_Value_beq___boxed(lean_object* x_1, lean_object* x_2) { _start: { @@ -690,7 +826,7 @@ x_4 = lean_box(x_3); return x_4; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_HasBeq___closed__1() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2___closed__1() { _start: { lean_object* x_1; @@ -698,15 +834,80 @@ x_1 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_beq___boxed return x_1; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_HasBeq() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2() { _start: { lean_object* x_1; -x_1 = l_Lean_IR_UnreachableBranches_Value_HasBeq___closed__1; +x_1 = l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2___closed__1; return x_1; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__1() { +lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_6; +lean_dec(x_5); +lean_dec(x_4); +x_6 = lean_apply_1(x_3, x_2); +return x_6; +} +else +{ +lean_object* x_7; +lean_dec(x_3); +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +if (lean_obj_tag(x_7) == 2) +{ +if (lean_obj_tag(x_2) == 2) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_5); +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_ctor_get(x_7, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_7, 1); +lean_inc(x_10); +x_11 = lean_ctor_get(x_2, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_2, 1); +lean_inc(x_12); +x_13 = lean_apply_7(x_4, x_7, x_9, x_10, x_8, x_2, x_11, x_12); +return x_13; +} +else +{ +lean_object* x_14; +lean_dec(x_7); +lean_dec(x_4); +x_14 = lean_apply_2(x_5, x_1, x_2); +return x_14; +} +} +else +{ +lean_object* x_15; +lean_dec(x_7); +lean_dec(x_4); +x_15 = lean_apply_2(x_5, x_1, x_2); +return x_15; +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_addChoice_match__1___rarg), 5, 0); +return x_2; +} +} +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_addChoice___closed__1() { _start: { lean_object* x_1; @@ -714,7 +915,15 @@ x_1 = lean_mk_string("Lean.Compiler.IR.ElimDeadBranches"); return x_1; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__2() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_addChoice___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("Lean.IR.UnreachableBranches.Value.addChoice"); +return x_1; +} +} +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_addChoice___closed__3() { _start: { lean_object* x_1; @@ -722,139 +931,294 @@ x_1 = lean_mk_string("invalid addChoice"); return x_1; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__3() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_addChoice___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_1 = l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__1; -x_2 = lean_unsigned_to_nat(42u); -x_3 = lean_unsigned_to_nat(10u); -x_4 = l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__2; -x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4); -return x_5; -} -} -lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_2) == 0) -{ -lean_object* x_4; -lean_dec(x_1); -x_4 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_2); -return x_4; -} -else -{ -lean_object* x_5; -x_5 = lean_ctor_get(x_2, 0); -lean_inc(x_5); -if (lean_obj_tag(x_5) == 2) -{ -if (lean_obj_tag(x_3) == 2) -{ -uint8_t x_6; -x_6 = !lean_is_exclusive(x_2); -if (x_6 == 0) -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; -x_7 = lean_ctor_get(x_2, 1); -x_8 = lean_ctor_get(x_2, 0); -lean_dec(x_8); -x_9 = lean_ctor_get(x_5, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_3, 0); -lean_inc(x_10); -x_11 = l_Lean_IR_CtorInfo_beq(x_9, x_10); -lean_dec(x_10); -lean_dec(x_9); -if (x_11 == 0) -{ -lean_object* x_12; -x_12 = l_Lean_IR_UnreachableBranches_Value_addChoice___main(x_1, x_7, x_3); -lean_ctor_set(x_2, 1, x_12); -return x_2; -} -else -{ -lean_object* x_13; -x_13 = lean_apply_2(x_1, x_5, x_3); -lean_ctor_set(x_2, 0, x_13); -return x_2; -} -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_14 = lean_ctor_get(x_2, 1); -lean_inc(x_14); -lean_dec(x_2); -x_15 = lean_ctor_get(x_5, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_3, 0); -lean_inc(x_16); -x_17 = l_Lean_IR_CtorInfo_beq(x_15, x_16); -lean_dec(x_16); -lean_dec(x_15); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; -x_18 = l_Lean_IR_UnreachableBranches_Value_addChoice___main(x_1, x_14, x_3); -x_19 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_19, 0, x_5); -lean_ctor_set(x_19, 1, x_18); -return x_19; -} -else -{ -lean_object* x_20; lean_object* x_21; -x_20 = lean_apply_2(x_1, x_5, x_3); -x_21 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_21, 1, x_14); -return x_21; -} -} -} -else -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_22 = lean_box(0); -x_23 = l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__3; -x_24 = lean_panic_fn(x_22, x_23); -return x_24; -} -} -else -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_25 = lean_box(0); -x_26 = l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__3; -x_27 = lean_panic_fn(x_25, x_26); -return x_27; -} -} +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_1 = l_Lean_IR_UnreachableBranches_Value_addChoice___closed__1; +x_2 = l_Lean_IR_UnreachableBranches_Value_addChoice___closed__2; +x_3 = lean_unsigned_to_nat(41u); +x_4 = lean_unsigned_to_nat(10u); +x_5 = l_Lean_IR_UnreachableBranches_Value_addChoice___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; } } lean_object* l_Lean_IR_UnreachableBranches_Value_addChoice(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_4; -x_4 = l_Lean_IR_UnreachableBranches_Value_addChoice___main(x_1, x_2, x_3); -return x_4; +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_1); +x_4 = lean_box(0); +x_5 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_5, 0, x_3); +lean_ctor_set(x_5, 1, x_4); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_2, 0); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 2) +{ +if (lean_obj_tag(x_3) == 2) +{ +uint8_t x_7; +x_7 = !lean_is_exclusive(x_2); +if (x_7 == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; +x_8 = lean_ctor_get(x_2, 1); +x_9 = lean_ctor_get(x_2, 0); +lean_dec(x_9); +x_10 = lean_ctor_get(x_6, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_3, 0); +lean_inc(x_11); +x_12 = l_Lean_IR_CtorInfo_beq(x_10, x_11); +lean_dec(x_11); +lean_dec(x_10); +if (x_12 == 0) +{ +lean_object* x_13; +x_13 = l_Lean_IR_UnreachableBranches_Value_addChoice(x_1, x_8, x_3); +lean_ctor_set(x_2, 1, x_13); +return x_2; +} +else +{ +lean_object* x_14; +x_14 = lean_apply_2(x_1, x_6, x_3); +lean_ctor_set(x_2, 0, x_14); +return x_2; } } -lean_object* l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_15 = lean_ctor_get(x_2, 1); +lean_inc(x_15); +lean_dec(x_2); +x_16 = lean_ctor_get(x_6, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_3, 0); +lean_inc(x_17); +x_18 = l_Lean_IR_CtorInfo_beq(x_16, x_17); +lean_dec(x_17); +lean_dec(x_16); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +x_19 = l_Lean_IR_UnreachableBranches_Value_addChoice(x_1, x_15, x_3); +x_20 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_20, 0, x_6); +lean_ctor_set(x_20, 1, x_19); +return x_20; +} +else +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_apply_2(x_1, x_6, x_3); +x_22 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_15); +return x_22; +} +} +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_23 = lean_box(0); +x_24 = l_Lean_IR_UnreachableBranches_Value_addChoice___closed__4; +x_25 = lean_panic_fn(x_23, x_24); +return x_25; +} +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_26 = lean_box(0); +x_27 = l_Lean_IR_UnreachableBranches_Value_addChoice___closed__4; +x_28 = lean_panic_fn(x_26, x_27); +return x_28; +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_Value_merge_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_11; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_11 = lean_apply_1(x_3, x_2); +return x_11; +} +case 1: +{ +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_12; +lean_dec(x_5); +x_12 = lean_apply_1(x_4, x_1); +return x_12; +} +else +{ +lean_object* x_13; +lean_dec(x_4); +x_13 = lean_apply_1(x_5, x_2); +return x_13; +} +} +case 2: +{ +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_3); +switch (lean_obj_tag(x_2)) { +case 0: +{ +lean_object* x_14; +lean_dec(x_10); +lean_dec(x_7); +lean_dec(x_6); +x_14 = lean_apply_1(x_4, x_1); +return x_14; +} +case 1: +{ +lean_object* x_15; +lean_dec(x_10); +lean_dec(x_7); +lean_dec(x_4); +x_15 = lean_apply_1(x_6, x_1); +return x_15; +} +case 2: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_10); +lean_dec(x_6); +lean_dec(x_4); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +x_18 = lean_ctor_get(x_2, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_2, 1); +lean_inc(x_19); +x_20 = lean_apply_6(x_7, x_1, x_16, x_17, x_2, x_18, x_19); +return x_20; +} +default: +{ +lean_object* x_21; lean_object* x_22; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +x_21 = lean_ctor_get(x_2, 0); +lean_inc(x_21); +lean_dec(x_2); +x_22 = lean_apply_2(x_10, x_1, x_21); +return x_22; +} +} +} +default: +{ +lean_dec(x_10); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_3); +switch (lean_obj_tag(x_2)) { +case 0: +{ +lean_object* x_23; +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +x_23 = lean_apply_1(x_4, x_1); +return x_23; +} +case 1: +{ +lean_object* x_24; +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_4); +x_24 = lean_apply_1(x_6, x_1); +return x_24; +} +case 2: +{ +lean_object* x_25; lean_object* x_26; +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_4); +x_25 = lean_ctor_get(x_1, 0); +lean_inc(x_25); +lean_dec(x_1); +x_26 = lean_apply_2(x_9, x_25, x_2); +return x_26; +} +default: +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +lean_dec(x_9); +lean_dec(x_6); +lean_dec(x_4); +x_27 = lean_ctor_get(x_1, 0); +lean_inc(x_27); +lean_dec(x_1); +x_28 = lean_ctor_get(x_2, 0); +lean_inc(x_28); +lean_dec(x_2); +x_29 = lean_apply_2(x_8, x_27, x_28); +return x_29; +} +} +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_Value_merge_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_merge_match__1___rarg), 10, 0); +return x_2; +} +} +lean_object* l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; uint8_t x_7; @@ -867,11 +1231,11 @@ x_8 = lean_unsigned_to_nat(1u); x_9 = lean_nat_sub(x_4, x_8); x_10 = lean_nat_sub(x_3, x_4); lean_dec(x_4); -x_11 = l_Lean_IR_UnreachableBranches_Value_Inhabited; +x_11 = l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__1; x_12 = lean_array_get(x_11, x_1, x_10); x_13 = lean_array_get(x_11, x_2, x_10); lean_dec(x_10); -x_14 = l_Lean_IR_UnreachableBranches_Value_merge___main(x_12, x_13); +x_14 = l_Lean_IR_UnreachableBranches_Value_merge(x_12, x_13); x_15 = lean_array_push(x_5, x_14); x_4 = x_9; x_5 = x_15; @@ -884,15 +1248,15 @@ return x_5; } } } -static lean_object* _init_l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1() { +static lean_object* _init_l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_merge___main), 2, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_merge), 2, 0); return x_1; } } -lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -907,15 +1271,15 @@ lean_inc(x_3); x_4 = lean_ctor_get(x_2, 1); lean_inc(x_4); lean_dec(x_2); -x_5 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1; -x_6 = l_Lean_IR_UnreachableBranches_Value_addChoice___main(x_5, x_1, x_3); +x_5 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1; +x_6 = l_Lean_IR_UnreachableBranches_Value_addChoice(x_5, x_1, x_3); x_1 = x_6; x_2 = x_4; goto _start; } } } -lean_object* l_Lean_IR_UnreachableBranches_Value_merge___main(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_IR_UnreachableBranches_Value_merge(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_1)) { @@ -925,14 +1289,16 @@ return x_2; } case 1: { -if (lean_obj_tag(x_2) == 1) +if (lean_obj_tag(x_2) == 0) { -return x_2; +return x_1; } else { +lean_object* x_3; lean_dec(x_2); -return x_1; +x_3 = lean_box(1); +return x_3; } } case 2: @@ -944,104 +1310,106 @@ return x_1; } case 1: { +lean_object* x_4; lean_dec(x_1); -return x_2; +x_4 = lean_box(1); +return x_4; } case 2: { -lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; -x_3 = lean_ctor_get(x_1, 0); -lean_inc(x_3); -x_4 = lean_ctor_get(x_1, 1); -lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 0); +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; +x_5 = lean_ctor_get(x_1, 0); lean_inc(x_5); -x_6 = lean_ctor_get(x_2, 1); +x_6 = lean_ctor_get(x_1, 1); lean_inc(x_6); -x_7 = l_Lean_IR_CtorInfo_beq(x_3, x_5); -lean_dec(x_5); -if (x_7 == 0) +x_7 = lean_ctor_get(x_2, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_2, 1); +lean_inc(x_8); +x_9 = l_Lean_IR_CtorInfo_beq(x_5, x_7); +lean_dec(x_7); +if (x_9 == 0) { -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_8); lean_dec(x_6); -lean_dec(x_4); -lean_dec(x_3); -x_8 = lean_box(0); -x_9 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_9, 0, x_2); -lean_ctor_set(x_9, 1, x_8); -x_10 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_9); -x_11 = lean_alloc_ctor(3, 1, 0); -lean_ctor_set(x_11, 0, x_10); -return x_11; +lean_dec(x_5); +x_10 = lean_box(0); +x_11 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_11, 0, x_2); +lean_ctor_set(x_11, 1, x_10); +x_12 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_12, 0, x_1); +lean_ctor_set(x_12, 1, x_11); +x_13 = lean_alloc_ctor(3, 1, 0); +lean_ctor_set(x_13, 0, x_12); +return x_13; } else { -uint8_t x_12; +uint8_t x_14; lean_dec(x_1); -x_12 = !lean_is_exclusive(x_2); -if (x_12 == 0) +x_14 = !lean_is_exclusive(x_2); +if (x_14 == 0) { -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_13 = lean_ctor_get(x_2, 1); -lean_dec(x_13); -x_14 = lean_ctor_get(x_2, 0); -lean_dec(x_14); -x_15 = lean_array_get_size(x_4); -x_16 = l_Array_empty___closed__1; -lean_inc(x_15); -x_17 = l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__1(x_4, x_6, x_15, x_15, x_16); +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_15 = lean_ctor_get(x_2, 1); lean_dec(x_15); +x_16 = lean_ctor_get(x_2, 0); +lean_dec(x_16); +x_17 = lean_array_get_size(x_6); +x_18 = l_Array_empty___closed__1; +lean_inc(x_17); +x_19 = l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__1(x_6, x_8, x_17, x_17, x_18); +lean_dec(x_17); +lean_dec(x_8); lean_dec(x_6); -lean_dec(x_4); -lean_ctor_set(x_2, 1, x_17); -lean_ctor_set(x_2, 0, x_3); +lean_ctor_set(x_2, 1, x_19); +lean_ctor_set(x_2, 0, x_5); return x_2; } else { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_dec(x_2); -x_18 = lean_array_get_size(x_4); -x_19 = l_Array_empty___closed__1; -lean_inc(x_18); -x_20 = l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__1(x_4, x_6, x_18, x_18, x_19); -lean_dec(x_18); +x_20 = lean_array_get_size(x_6); +x_21 = l_Array_empty___closed__1; +lean_inc(x_20); +x_22 = l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__1(x_6, x_8, x_20, x_20, x_21); +lean_dec(x_20); +lean_dec(x_8); lean_dec(x_6); -lean_dec(x_4); -x_21 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_21, 0, x_3); -lean_ctor_set(x_21, 1, x_20); -return x_21; +x_23 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_23, 0, x_5); +lean_ctor_set(x_23, 1, x_22); +return x_23; } } } default: { -uint8_t x_22; -x_22 = !lean_is_exclusive(x_2); -if (x_22 == 0) +uint8_t x_24; +x_24 = !lean_is_exclusive(x_2); +if (x_24 == 0) { -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = lean_ctor_get(x_2, 0); -x_24 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1; -x_25 = l_Lean_IR_UnreachableBranches_Value_addChoice___main(x_24, x_23, x_1); -lean_ctor_set(x_2, 0, x_25); +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_2, 0); +x_26 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1; +x_27 = l_Lean_IR_UnreachableBranches_Value_addChoice(x_26, x_25, x_1); +lean_ctor_set(x_2, 0, x_27); return x_2; } else { -lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_26 = lean_ctor_get(x_2, 0); -lean_inc(x_26); +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_28 = lean_ctor_get(x_2, 0); +lean_inc(x_28); lean_dec(x_2); -x_27 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1; -x_28 = l_Lean_IR_UnreachableBranches_Value_addChoice___main(x_27, x_26, x_1); -x_29 = lean_alloc_ctor(3, 1, 0); -lean_ctor_set(x_29, 0, x_28); -return x_29; +x_29 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1; +x_30 = l_Lean_IR_UnreachableBranches_Value_addChoice(x_29, x_28, x_1); +x_31 = lean_alloc_ctor(3, 1, 0); +lean_ctor_set(x_31, 0, x_30); +return x_31; } } } @@ -1055,60 +1423,62 @@ return x_1; } case 1: { +lean_object* x_32; lean_dec(x_1); -return x_2; +x_32 = lean_box(1); +return x_32; } case 2: { -uint8_t x_30; -x_30 = !lean_is_exclusive(x_1); -if (x_30 == 0) +uint8_t x_33; +x_33 = !lean_is_exclusive(x_1); +if (x_33 == 0) { -lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_31 = lean_ctor_get(x_1, 0); -x_32 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1; -x_33 = l_Lean_IR_UnreachableBranches_Value_addChoice___main(x_32, x_31, x_2); -lean_ctor_set(x_1, 0, x_33); +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_1, 0); +x_35 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1; +x_36 = l_Lean_IR_UnreachableBranches_Value_addChoice(x_35, x_34, x_2); +lean_ctor_set(x_1, 0, x_36); return x_1; } else { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_34 = lean_ctor_get(x_1, 0); -lean_inc(x_34); +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_37 = lean_ctor_get(x_1, 0); +lean_inc(x_37); lean_dec(x_1); -x_35 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1; -x_36 = l_Lean_IR_UnreachableBranches_Value_addChoice___main(x_35, x_34, x_2); -x_37 = lean_alloc_ctor(3, 1, 0); -lean_ctor_set(x_37, 0, x_36); -return x_37; +x_38 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1; +x_39 = l_Lean_IR_UnreachableBranches_Value_addChoice(x_38, x_37, x_2); +x_40 = lean_alloc_ctor(3, 1, 0); +lean_ctor_set(x_40, 0, x_39); +return x_40; } } default: { -lean_object* x_38; uint8_t x_39; -x_38 = lean_ctor_get(x_1, 0); -lean_inc(x_38); +lean_object* x_41; uint8_t x_42; +x_41 = lean_ctor_get(x_1, 0); +lean_inc(x_41); lean_dec(x_1); -x_39 = !lean_is_exclusive(x_2); -if (x_39 == 0) +x_42 = !lean_is_exclusive(x_2); +if (x_42 == 0) { -lean_object* x_40; lean_object* x_41; -x_40 = lean_ctor_get(x_2, 0); -x_41 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2(x_40, x_38); -lean_ctor_set(x_2, 0, x_41); +lean_object* x_43; lean_object* x_44; +x_43 = lean_ctor_get(x_2, 0); +x_44 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2(x_43, x_41); +lean_ctor_set(x_2, 0, x_44); return x_2; } else { -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_2, 0); -lean_inc(x_42); +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_2, 0); +lean_inc(x_45); lean_dec(x_2); -x_43 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2(x_42, x_38); -x_44 = lean_alloc_ctor(3, 1, 0); -lean_ctor_set(x_44, 0, x_43); -return x_44; +x_46 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2(x_45, x_41); +x_47 = lean_alloc_ctor(3, 1, 0); +lean_ctor_set(x_47, 0, x_46); +return x_47; } } } @@ -1116,26 +1486,79 @@ return x_44; } } } -lean_object* l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__1(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Nat_foldAux___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__1(x_1, x_2, x_3, x_4, x_5); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); return x_6; } } -lean_object* l_Lean_IR_UnreachableBranches_Value_merge(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_IR_UnreachableBranches_Value_format_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_3; -x_3 = l_Lean_IR_UnreachableBranches_Value_merge___main(x_1, x_2); -return x_3; +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_6 = lean_box(0); +x_7 = lean_apply_1(x_3, x_6); +return x_7; +} +case 1: +{ +lean_object* x_8; lean_object* x_9; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_8 = lean_box(0); +x_9 = lean_apply_1(x_2, x_8); +return x_9; +} +case 2: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_10 = lean_ctor_get(x_1, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_1, 1); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_apply_2(x_5, x_10, x_11); +return x_12; +} +default: +{ +lean_object* x_13; lean_object* x_14; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_ctor_get(x_1, 0); +lean_inc(x_13); +lean_dec(x_1); +x_14 = lean_apply_1(x_4, x_13); +return x_14; } } -lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +} +} +lean_object* l_Lean_IR_UnreachableBranches_Value_format_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_format_match__1___rarg), 5, 0); +return x_2; +} +} +lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; uint8_t x_6; @@ -1155,7 +1578,7 @@ x_8 = l_Array_iterateMAux___main___at_Lean_ppGoal___spec__6___closed__1; x_9 = lean_alloc_ctor(4, 2, 0); lean_ctor_set(x_9, 0, x_4); lean_ctor_set(x_9, 1, x_8); -x_10 = l_Lean_IR_UnreachableBranches_Value_format___main(x_7); +x_10 = l_Lean_IR_UnreachableBranches_Value_format(x_7); x_11 = lean_alloc_ctor(4, 2, 0); lean_ctor_set(x_11, 0, x_9); lean_ctor_set(x_11, 1, x_10); @@ -1168,17 +1591,17 @@ goto _start; } } } -lean_object* l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___main___spec__1(lean_object* x_1) { +lean_object* l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___spec__1(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_box(0); -x_4 = l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__2(x_1, x_1, x_2, x_3); +x_4 = l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___spec__2(x_1, x_1, x_2, x_3); return x_4; } } -lean_object* l_Lean_Format_joinSep___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__4(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Format_joinSep___main___at_Lean_IR_UnreachableBranches_Value_format___spec__4(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -1200,7 +1623,7 @@ lean_dec(x_2); x_5 = lean_ctor_get(x_1, 0); lean_inc(x_5); lean_dec(x_1); -x_6 = l_Lean_IR_UnreachableBranches_Value_format___main(x_5); +x_6 = l_Lean_IR_UnreachableBranches_Value_format(x_5); return x_6; } else @@ -1209,12 +1632,12 @@ lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_ob x_7 = lean_ctor_get(x_1, 0); lean_inc(x_7); lean_dec(x_1); -x_8 = l_Lean_IR_UnreachableBranches_Value_format___main(x_7); +x_8 = l_Lean_IR_UnreachableBranches_Value_format(x_7); lean_inc(x_2); x_9 = lean_alloc_ctor(4, 2, 0); lean_ctor_set(x_9, 0, x_8); lean_ctor_set(x_9, 1, x_2); -x_10 = l_Lean_Format_joinSep___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__4(x_4, x_2); +x_10 = l_Lean_Format_joinSep___main___at_Lean_IR_UnreachableBranches_Value_format___spec__4(x_4, x_2); x_11 = lean_alloc_ctor(4, 2, 0); lean_ctor_set(x_11, 0, x_9); lean_ctor_set(x_11, 1, x_10); @@ -1223,7 +1646,7 @@ return x_11; } } } -lean_object* l_Lean_List_format___at_Lean_IR_UnreachableBranches_Value_format___main___spec__3(lean_object* x_1) { +lean_object* l_Lean_List_format___at_Lean_IR_UnreachableBranches_Value_format___spec__3(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -1236,7 +1659,7 @@ else { lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; lean_object* x_12; x_3 = l_Lean_List_format___rarg___closed__3; -x_4 = l_Lean_Format_joinSep___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__4(x_1, x_3); +x_4 = l_Lean_Format_joinSep___main___at_Lean_IR_UnreachableBranches_Value_format___spec__4(x_1, x_3); x_5 = l_Lean_Format_sbracket___closed__3; x_6 = lean_alloc_ctor(4, 2, 0); lean_ctor_set(x_6, 0, x_5); @@ -1257,7 +1680,7 @@ return x_12; } } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__1() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___closed__1() { _start: { lean_object* x_1; @@ -1265,17 +1688,17 @@ x_1 = lean_mk_string("bot"); return x_1; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__2() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_IR_UnreachableBranches_Value_format___main___closed__1; +x_1 = l_Lean_IR_UnreachableBranches_Value_format___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__3() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___closed__3() { _start: { lean_object* x_1; @@ -1283,17 +1706,17 @@ x_1 = lean_mk_string("top"); return x_1; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__4() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_IR_UnreachableBranches_Value_format___main___closed__3; +x_1 = l_Lean_IR_UnreachableBranches_Value_format___closed__3; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__5() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___closed__5() { _start: { lean_object* x_1; @@ -1301,30 +1724,30 @@ x_1 = lean_mk_string("@"); return x_1; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__6() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_format___closed__6() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_IR_UnreachableBranches_Value_format___main___closed__5; +x_1 = l_Lean_IR_UnreachableBranches_Value_format___closed__5; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l_Lean_IR_UnreachableBranches_Value_format___main(lean_object* x_1) { +lean_object* l_Lean_IR_UnreachableBranches_Value_format(lean_object* x_1) { _start: { switch (lean_obj_tag(x_1)) { case 0: { lean_object* x_2; -x_2 = l_Lean_IR_UnreachableBranches_Value_format___main___closed__2; +x_2 = l_Lean_IR_UnreachableBranches_Value_format___closed__2; return x_2; } case 1: { lean_object* x_3; -x_3 = l_Lean_IR_UnreachableBranches_Value_format___main___closed__4; +x_3 = l_Lean_IR_UnreachableBranches_Value_format___closed__4; return x_3; } case 2: @@ -1345,7 +1768,7 @@ lean_dec(x_4); x_8 = l_Lean_fmt___at_Lean_Level_LevelToFormat_toResult___main___spec__1(x_7); x_9 = lean_unsigned_to_nat(0u); x_10 = lean_box(0); -x_11 = l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__2(x_5, x_5, x_9, x_10); +x_11 = l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___spec__2(x_5, x_5, x_9, x_10); lean_dec(x_5); x_12 = lean_alloc_ctor(4, 2, 0); lean_ctor_set(x_12, 0, x_8); @@ -1393,8 +1816,8 @@ lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; x_27 = lean_ctor_get(x_1, 0); lean_inc(x_27); lean_dec(x_1); -x_28 = l_Lean_List_format___at_Lean_IR_UnreachableBranches_Value_format___main___spec__3(x_27); -x_29 = l_Lean_IR_UnreachableBranches_Value_format___main___closed__6; +x_28 = l_Lean_List_format___at_Lean_IR_UnreachableBranches_Value_format___spec__3(x_27); +x_29 = l_Lean_IR_UnreachableBranches_Value_format___closed__6; x_30 = lean_alloc_ctor(4, 2, 0); lean_ctor_set(x_30, 0, x_29); lean_ctor_set(x_30, 1, x_28); @@ -1403,34 +1826,26 @@ return x_30; } } } -lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___main___spec__2(x_1, x_2, x_3, x_4); +x_5 = l_Array_iterateMAux___main___at_Lean_IR_UnreachableBranches_Value_format___spec__2(x_1, x_2, x_3, x_4); lean_dec(x_2); lean_dec(x_1); return x_5; } } -lean_object* l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___main___spec__1___boxed(lean_object* x_1) { +lean_object* l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___spec__1___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___main___spec__1(x_1); +x_2 = l_Lean_IR_formatArray___at_Lean_IR_UnreachableBranches_Value_format___spec__1(x_1); lean_dec(x_1); return x_2; } } -lean_object* l_Lean_IR_UnreachableBranches_Value_format(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_IR_UnreachableBranches_Value_format___main(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat___closed__1() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3___closed__1() { _start: { lean_object* x_1; @@ -1438,35 +1853,127 @@ x_1 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_format), 1, return x_1; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3() { _start: { lean_object* x_1; -x_1 = l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat___closed__1; +x_1 = l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3___closed__1; return x_1; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_HasToString___closed__1() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4___closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_HasRepr___closed__1; -x_2 = l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat___closed__1; +x_2 = l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3___closed__1; x_3 = lean_alloc_closure((void*)(l_Function_comp___rarg), 3, 2); lean_closure_set(x_3, 0, x_1); lean_closure_set(x_3, 1, x_2); return x_3; } } -static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_HasToString() { +static lean_object* _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4() { _start: { lean_object* x_1; -x_1 = l_Lean_IR_UnreachableBranches_Value_HasToString___closed__1; +x_1 = l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4___closed__1; return x_1; } } -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_IR_UnreachableBranches_Value_truncate_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 5) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +lean_dec(x_1); +x_6 = lean_ctor_get(x_5, 0); +lean_inc(x_6); +lean_dec(x_5); +x_7 = lean_apply_1(x_2, x_6); +return x_7; +} +else +{ +lean_object* x_8; +lean_dec(x_5); +lean_dec(x_2); +x_8 = lean_apply_1(x_3, x_1); +return x_8; +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_Value_truncate_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_truncate_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_IR_UnreachableBranches_Value_truncate_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 2: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_5); +lean_dec(x_4); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_3(x_3, x_6, x_7, x_2); +return x_8; +} +case 3: +{ +lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +lean_dec(x_3); +x_9 = lean_ctor_get(x_1, 0); +lean_inc(x_9); +lean_dec(x_1); +x_10 = lean_apply_2(x_4, x_9, x_2); +return x_10; +} +default: +{ +lean_object* x_11; +lean_dec(x_4); +lean_dec(x_3); +x_11 = lean_apply_2(x_5, x_1, x_2); +return x_11; +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_Value_truncate_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_Value_truncate_match__2___rarg), 5, 0); +return x_2; +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; uint8_t x_6; @@ -1491,7 +1998,7 @@ x_10 = lean_array_fset(x_4, x_3, x_9); x_11 = x_8; lean_inc(x_2); lean_inc(x_1); -x_12 = l_Lean_IR_UnreachableBranches_Value_truncate___main(x_1, x_11, x_2); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); x_13 = lean_unsigned_to_nat(1u); x_14 = lean_nat_add(x_3, x_13); x_15 = x_12; @@ -1503,7 +2010,340 @@ goto _start; } } } -lean_object* l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = x_4; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_4, x_3); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_array_fset(x_4, x_3, x_9); +x_11 = x_8; +lean_inc(x_2); +lean_inc(x_1); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_3, x_13); +x_15 = x_12; +x_16 = lean_array_fset(x_10, x_3, x_15); +lean_dec(x_3); +x_3 = x_14; +x_4 = x_16; +goto _start; +} +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = x_4; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_4, x_3); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_array_fset(x_4, x_3, x_9); +x_11 = x_8; +lean_inc(x_2); +lean_inc(x_1); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_3, x_13); +x_15 = x_12; +x_16 = lean_array_fset(x_10, x_3, x_15); +lean_dec(x_3); +x_3 = x_14; +x_4 = x_16; +goto _start; +} +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = x_4; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_4, x_3); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_array_fset(x_4, x_3, x_9); +x_11 = x_8; +lean_inc(x_2); +lean_inc(x_1); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_3, x_13); +x_15 = x_12; +x_16 = lean_array_fset(x_10, x_3, x_15); +lean_dec(x_3); +x_3 = x_14; +x_4 = x_16; +goto _start; +} +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = x_4; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_4, x_3); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_array_fset(x_4, x_3, x_9); +x_11 = x_8; +lean_inc(x_2); +lean_inc(x_1); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_3, x_13); +x_15 = x_12; +x_16 = lean_array_fset(x_10, x_3, x_15); +lean_dec(x_3); +x_3 = x_14; +x_4 = x_16; +goto _start; +} +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = x_4; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_4, x_3); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_array_fset(x_4, x_3, x_9); +x_11 = x_8; +lean_inc(x_2); +lean_inc(x_1); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_3, x_13); +x_15 = x_12; +x_16 = lean_array_fset(x_10, x_3, x_15); +lean_dec(x_3); +x_3 = x_14; +x_4 = x_16; +goto _start; +} +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = x_4; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_4, x_3); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_array_fset(x_4, x_3, x_9); +x_11 = x_8; +lean_inc(x_2); +lean_inc(x_1); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_3, x_13); +x_15 = x_12; +x_16 = lean_array_fset(x_10, x_3, x_15); +lean_dec(x_3); +x_3 = x_14; +x_4 = x_16; +goto _start; +} +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__8(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = x_4; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_4, x_3); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_array_fset(x_4, x_3, x_9); +x_11 = x_8; +lean_inc(x_2); +lean_inc(x_1); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_3, x_13); +x_15 = x_12; +x_16 = lean_array_fset(x_10, x_3, x_15); +lean_dec(x_3); +x_3 = x_14; +x_4 = x_16; +goto _start; +} +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__9(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = x_4; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_4, x_3); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_array_fset(x_4, x_3, x_9); +x_11 = x_8; +lean_inc(x_2); +lean_inc(x_1); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_3, x_13); +x_15 = x_12; +x_16 = lean_array_fset(x_10, x_3, x_15); +lean_dec(x_3); +x_3 = x_14; +x_4 = x_16; +goto _start; +} +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__10(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_7 = x_4; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_4, x_3); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_array_fset(x_4, x_3, x_9); +x_11 = x_8; +lean_inc(x_2); +lean_inc(x_1); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_11, x_2); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_3, x_13); +x_15 = x_12; +x_16 = lean_array_fset(x_10, x_3, x_15); +lean_dec(x_3); +x_3 = x_14; +x_4 = x_16; +goto _start; +} +} +} +lean_object* l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__11(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -1525,8 +2365,8 @@ x_6 = lean_ctor_get(x_3, 0); x_7 = lean_ctor_get(x_3, 1); lean_inc(x_2); lean_inc(x_1); -x_8 = l_Lean_IR_UnreachableBranches_Value_truncate___main(x_1, x_6, x_2); -x_9 = l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__2(x_1, x_2, x_7); +x_8 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_6, x_2); +x_9 = l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__11(x_1, x_2, x_7); lean_ctor_set(x_3, 1, x_9); lean_ctor_set(x_3, 0, x_8); return x_3; @@ -1541,8 +2381,8 @@ lean_inc(x_10); lean_dec(x_3); lean_inc(x_2); lean_inc(x_1); -x_12 = l_Lean_IR_UnreachableBranches_Value_truncate___main(x_1, x_10, x_2); -x_13 = l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__2(x_1, x_2, x_11); +x_12 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_10, x_2); +x_13 = l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__11(x_1, x_2, x_11); x_14 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_14, 0, x_12); lean_ctor_set(x_14, 1, x_13); @@ -1551,7 +2391,7 @@ return x_14; } } } -uint8_t l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__3(lean_object* x_1, lean_object* x_2) { +uint8_t l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__12(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -1565,7 +2405,7 @@ else lean_object* x_4; lean_object* x_5; uint8_t x_6; x_4 = lean_ctor_get(x_2, 0); x_5 = lean_ctor_get(x_2, 1); -x_6 = l_Lean_IR_UnreachableBranches_Value_beq___main(x_1, x_4); +x_6 = l_Lean_IR_UnreachableBranches_Value_beq(x_1, x_4); if (x_6 == 0) { x_2 = x_5; @@ -1580,156 +2420,416 @@ return x_8; } } } -lean_object* l_Lean_IR_UnreachableBranches_Value_truncate___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_UnreachableBranches_Value_truncate(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { switch (lean_obj_tag(x_2)) { case 2: { -lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; -x_4 = lean_ctor_get(x_2, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 1); -lean_inc(x_5); -if (lean_is_exclusive(x_2)) { - lean_ctor_release(x_2, 0); - lean_ctor_release(x_2, 1); - x_6 = x_2; -} else { - lean_dec_ref(x_2); - x_6 = lean_box(0); -} -x_7 = lean_ctor_get(x_4, 0); +uint8_t x_4; +x_4 = !lean_is_exclusive(x_2); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; +x_5 = lean_ctor_get(x_2, 0); +x_6 = lean_ctor_get(x_2, 1); +x_7 = lean_ctor_get(x_5, 0); lean_inc(x_7); x_8 = l_Lean_Name_getPrefix(x_7); lean_dec(x_7); x_9 = l_Lean_NameSet_contains(x_3, x_8); if (x_9 == 0) { -lean_object* x_10; lean_object* x_17; +lean_object* x_10; lean_inc(x_8); lean_inc(x_1); -x_17 = lean_environment_find(x_1, x_8); -if (lean_obj_tag(x_17) == 0) +x_10 = lean_environment_find(x_1, x_8); +if (lean_obj_tag(x_10) == 0) { +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_dec(x_8); -x_10 = x_3; -goto block_16; -} -else -{ -lean_object* x_18; -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -lean_dec(x_17); -if (lean_obj_tag(x_18) == 5) -{ -lean_object* x_19; uint8_t x_20; -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -lean_dec(x_18); -x_20 = lean_ctor_get_uint8(x_19, sizeof(void*)*5); -lean_dec(x_19); -if (x_20 == 0) -{ -lean_dec(x_8); -x_10 = x_3; -goto block_16; -} -else -{ -lean_object* x_21; lean_object* x_22; -x_21 = lean_box(0); -x_22 = l_Std_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_3, x_8, x_21); -x_10 = x_22; -goto block_16; -} -} -else -{ -lean_dec(x_18); -lean_dec(x_8); -x_10 = x_3; -goto block_16; -} -} -block_16: -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_11 = x_5; +x_11 = x_6; x_12 = lean_unsigned_to_nat(0u); -x_13 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__1(x_1, x_10, x_12, x_11); +x_13 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__1(x_1, x_3, x_12, x_11); x_14 = x_13; -if (lean_is_scalar(x_6)) { - x_15 = lean_alloc_ctor(2, 2, 0); -} else { - x_15 = x_6; -} -lean_ctor_set(x_15, 0, x_4); -lean_ctor_set(x_15, 1, x_14); -return x_15; -} -} -else -{ -lean_object* x_23; -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_1); -x_23 = lean_box(1); -return x_23; -} -} -case 3: -{ -uint8_t x_24; -x_24 = !lean_is_exclusive(x_2); -if (x_24 == 0) -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; -x_25 = lean_ctor_get(x_2, 0); -x_26 = l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__2(x_1, x_3, x_25); -x_27 = lean_box(1); -x_28 = l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__3(x_27, x_26); -if (x_28 == 0) -{ -lean_ctor_set(x_2, 0, x_26); +lean_ctor_set(x_2, 1, x_14); return x_2; } else { -lean_object* x_29; -lean_dec(x_26); +lean_object* x_15; +x_15 = lean_ctor_get(x_10, 0); +lean_inc(x_15); +lean_dec(x_10); +switch (lean_obj_tag(x_15)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +lean_dec(x_15); +lean_dec(x_8); +x_16 = x_6; +x_17 = lean_unsigned_to_nat(0u); +x_18 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__2(x_1, x_3, x_17, x_16); +x_19 = x_18; +lean_ctor_set(x_2, 1, x_19); +return x_2; +} +case 1: +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +lean_dec(x_15); +lean_dec(x_8); +x_20 = x_6; +x_21 = lean_unsigned_to_nat(0u); +x_22 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__3(x_1, x_3, x_21, x_20); +x_23 = x_22; +lean_ctor_set(x_2, 1, x_23); +return x_2; +} +case 2: +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_15); +lean_dec(x_8); +x_24 = x_6; +x_25 = lean_unsigned_to_nat(0u); +x_26 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__4(x_1, x_3, x_25, x_24); +x_27 = x_26; +lean_ctor_set(x_2, 1, x_27); +return x_2; +} +case 3: +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +lean_dec(x_15); +lean_dec(x_8); +x_28 = x_6; +x_29 = lean_unsigned_to_nat(0u); +x_30 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__5(x_1, x_3, x_29, x_28); +x_31 = x_30; +lean_ctor_set(x_2, 1, x_31); +return x_2; +} +case 4: +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +lean_dec(x_15); +lean_dec(x_8); +x_32 = x_6; +x_33 = lean_unsigned_to_nat(0u); +x_34 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__6(x_1, x_3, x_33, x_32); +x_35 = x_34; +lean_ctor_set(x_2, 1, x_35); +return x_2; +} +case 5: +{ +lean_object* x_36; uint8_t x_37; +x_36 = lean_ctor_get(x_15, 0); +lean_inc(x_36); +lean_dec(x_15); +x_37 = lean_ctor_get_uint8(x_36, sizeof(void*)*5); +lean_dec(x_36); +if (x_37 == 0) +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +lean_dec(x_8); +x_38 = x_6; +x_39 = lean_unsigned_to_nat(0u); +x_40 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__7(x_1, x_3, x_39, x_38); +x_41 = x_40; +lean_ctor_set(x_2, 1, x_41); +return x_2; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_42 = lean_box(0); +x_43 = l_Std_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_3, x_8, x_42); +x_44 = x_6; +x_45 = lean_unsigned_to_nat(0u); +x_46 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__8(x_1, x_43, x_45, x_44); +x_47 = x_46; +lean_ctor_set(x_2, 1, x_47); +return x_2; +} +} +case 6: +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; +lean_dec(x_15); +lean_dec(x_8); +x_48 = x_6; +x_49 = lean_unsigned_to_nat(0u); +x_50 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__9(x_1, x_3, x_49, x_48); +x_51 = x_50; +lean_ctor_set(x_2, 1, x_51); +return x_2; +} +default: +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; +lean_dec(x_15); +lean_dec(x_8); +x_52 = x_6; +x_53 = lean_unsigned_to_nat(0u); +x_54 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__10(x_1, x_3, x_53, x_52); +x_55 = x_54; +lean_ctor_set(x_2, 1, x_55); +return x_2; +} +} +} +} +else +{ +lean_object* x_56; +lean_dec(x_8); lean_free_object(x_2); -x_29 = lean_box(1); -return x_29; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_1); +x_56 = lean_box(1); +return x_56; } } else { -lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; -x_30 = lean_ctor_get(x_2, 0); -lean_inc(x_30); +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; uint8_t x_61; +x_57 = lean_ctor_get(x_2, 0); +x_58 = lean_ctor_get(x_2, 1); +lean_inc(x_58); +lean_inc(x_57); lean_dec(x_2); -x_31 = l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__2(x_1, x_3, x_30); -x_32 = lean_box(1); -x_33 = l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__3(x_32, x_31); -if (x_33 == 0) +x_59 = lean_ctor_get(x_57, 0); +lean_inc(x_59); +x_60 = l_Lean_Name_getPrefix(x_59); +lean_dec(x_59); +x_61 = l_Lean_NameSet_contains(x_3, x_60); +if (x_61 == 0) { -lean_object* x_34; -x_34 = lean_alloc_ctor(3, 1, 0); -lean_ctor_set(x_34, 0, x_31); -return x_34; +lean_object* x_62; +lean_inc(x_60); +lean_inc(x_1); +x_62 = lean_environment_find(x_1, x_60); +if (lean_obj_tag(x_62) == 0) +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +lean_dec(x_60); +x_63 = x_58; +x_64 = lean_unsigned_to_nat(0u); +x_65 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__1(x_1, x_3, x_64, x_63); +x_66 = x_65; +x_67 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_67, 0, x_57); +lean_ctor_set(x_67, 1, x_66); +return x_67; } else { -lean_object* x_35; -lean_dec(x_31); -x_35 = lean_box(1); -return x_35; +lean_object* x_68; +x_68 = lean_ctor_get(x_62, 0); +lean_inc(x_68); +lean_dec(x_62); +switch (lean_obj_tag(x_68)) { +case 0: +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +lean_dec(x_68); +lean_dec(x_60); +x_69 = x_58; +x_70 = lean_unsigned_to_nat(0u); +x_71 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__2(x_1, x_3, x_70, x_69); +x_72 = x_71; +x_73 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_73, 0, x_57); +lean_ctor_set(x_73, 1, x_72); +return x_73; +} +case 1: +{ +lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; +lean_dec(x_68); +lean_dec(x_60); +x_74 = x_58; +x_75 = lean_unsigned_to_nat(0u); +x_76 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__3(x_1, x_3, x_75, x_74); +x_77 = x_76; +x_78 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_78, 0, x_57); +lean_ctor_set(x_78, 1, x_77); +return x_78; +} +case 2: +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; +lean_dec(x_68); +lean_dec(x_60); +x_79 = x_58; +x_80 = lean_unsigned_to_nat(0u); +x_81 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__4(x_1, x_3, x_80, x_79); +x_82 = x_81; +x_83 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_83, 0, x_57); +lean_ctor_set(x_83, 1, x_82); +return x_83; +} +case 3: +{ +lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; +lean_dec(x_68); +lean_dec(x_60); +x_84 = x_58; +x_85 = lean_unsigned_to_nat(0u); +x_86 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__5(x_1, x_3, x_85, x_84); +x_87 = x_86; +x_88 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_88, 0, x_57); +lean_ctor_set(x_88, 1, x_87); +return x_88; +} +case 4: +{ +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; +lean_dec(x_68); +lean_dec(x_60); +x_89 = x_58; +x_90 = lean_unsigned_to_nat(0u); +x_91 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__6(x_1, x_3, x_90, x_89); +x_92 = x_91; +x_93 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_93, 0, x_57); +lean_ctor_set(x_93, 1, x_92); +return x_93; +} +case 5: +{ +lean_object* x_94; uint8_t x_95; +x_94 = lean_ctor_get(x_68, 0); +lean_inc(x_94); +lean_dec(x_68); +x_95 = lean_ctor_get_uint8(x_94, sizeof(void*)*5); +lean_dec(x_94); +if (x_95 == 0) +{ +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; +lean_dec(x_60); +x_96 = x_58; +x_97 = lean_unsigned_to_nat(0u); +x_98 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__7(x_1, x_3, x_97, x_96); +x_99 = x_98; +x_100 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_100, 0, x_57); +lean_ctor_set(x_100, 1, x_99); +return x_100; +} +else +{ +lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; +x_101 = lean_box(0); +x_102 = l_Std_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_3, x_60, x_101); +x_103 = x_58; +x_104 = lean_unsigned_to_nat(0u); +x_105 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__8(x_1, x_102, x_104, x_103); +x_106 = x_105; +x_107 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_107, 0, x_57); +lean_ctor_set(x_107, 1, x_106); +return x_107; +} +} +case 6: +{ +lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; +lean_dec(x_68); +lean_dec(x_60); +x_108 = x_58; +x_109 = lean_unsigned_to_nat(0u); +x_110 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__9(x_1, x_3, x_109, x_108); +x_111 = x_110; +x_112 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_112, 0, x_57); +lean_ctor_set(x_112, 1, x_111); +return x_112; +} +default: +{ +lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; +lean_dec(x_68); +lean_dec(x_60); +x_113 = x_58; +x_114 = lean_unsigned_to_nat(0u); +x_115 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__10(x_1, x_3, x_114, x_113); +x_116 = x_115; +x_117 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_117, 0, x_57); +lean_ctor_set(x_117, 1, x_116); +return x_117; +} +} +} +} +else +{ +lean_object* x_118; +lean_dec(x_60); +lean_dec(x_58); +lean_dec(x_57); +lean_dec(x_3); +lean_dec(x_1); +x_118 = lean_box(1); +return x_118; +} +} +} +case 3: +{ +uint8_t x_119; +x_119 = !lean_is_exclusive(x_2); +if (x_119 == 0) +{ +lean_object* x_120; lean_object* x_121; lean_object* x_122; uint8_t x_123; +x_120 = lean_ctor_get(x_2, 0); +x_121 = l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__11(x_1, x_3, x_120); +x_122 = lean_box(1); +x_123 = l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__12(x_122, x_121); +if (x_123 == 0) +{ +lean_ctor_set(x_2, 0, x_121); +return x_2; +} +else +{ +lean_object* x_124; +lean_dec(x_121); +lean_free_object(x_2); +x_124 = lean_box(1); +return x_124; +} +} +else +{ +lean_object* x_125; lean_object* x_126; lean_object* x_127; uint8_t x_128; +x_125 = lean_ctor_get(x_2, 0); +lean_inc(x_125); +lean_dec(x_2); +x_126 = l_List_map___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__11(x_1, x_3, x_125); +x_127 = lean_box(1); +x_128 = l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__12(x_127, x_126); +if (x_128 == 0) +{ +lean_object* x_129; +x_129 = lean_alloc_ctor(3, 1, 0); +lean_ctor_set(x_129, 0, x_126); +return x_129; +} +else +{ +lean_object* x_130; +lean_dec(x_126); +x_130 = lean_box(1); +return x_130; } } } @@ -1742,35 +2842,48 @@ return x_2; } } } -lean_object* l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__12___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; -x_3 = l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___main___spec__3(x_1, x_2); +x_3 = l_List_elem___main___at_Lean_IR_UnreachableBranches_Value_truncate___spec__12(x_1, x_2); lean_dec(x_2); lean_dec(x_1); x_4 = lean_box(x_3); return x_4; } } -lean_object* l_Lean_IR_UnreachableBranches_Value_truncate(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_IR_UnreachableBranches_Value_truncate___main(x_1, x_2, x_3); -return x_4; -} -} lean_object* l_Lean_IR_UnreachableBranches_Value_widening(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; lean_object* x_6; -x_4 = l_Lean_IR_UnreachableBranches_Value_merge___main(x_2, x_3); +x_4 = l_Lean_IR_UnreachableBranches_Value_merge(x_2, x_3); x_5 = l_Lean_NameSet_empty; -x_6 = l_Lean_IR_UnreachableBranches_Value_truncate___main(x_1, x_4, x_5); +x_6 = l_Lean_IR_UnreachableBranches_Value_truncate(x_1, x_4, x_5); return x_6; } } +lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension_match__1___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension_match__1___rarg), 2, 0); +return x_2; +} +} lean_object* l_Std_PersistentHashMap_insertAtCollisionNodeAux___main___at_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -3712,6 +4825,22 @@ lean_dec(x_1); return x_3; } } +static lean_object* _init_l_Lean_IR_UnreachableBranches_InterpContext_currFnIdx___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_unsigned_to_nat(0u); +return x_1; +} +} +static lean_object* _init_l_Lean_IR_UnreachableBranches_InterpContext_lctx___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} lean_object* l_Std_AssocList_find_x3f___main___at_Lean_IR_UnreachableBranches_findVarValue___spec__2(lean_object* x_1, lean_object* x_2) { _start: { @@ -3823,6 +4952,36 @@ lean_dec(x_1); return x_4; } } +lean_object* l_Lean_IR_UnreachableBranches_findArgValue_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; +lean_dec(x_2); +x_6 = lean_apply_1(x_3, x_1); +return x_6; +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_findArgValue_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_findArgValue_match__1___rarg), 3, 0); +return x_2; +} +} lean_object* l_Lean_IR_UnreachableBranches_findArgValue(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -4217,7 +5376,7 @@ lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean x_15 = lean_array_fget(x_10, x_11); x_16 = l_Lean_IR_UnreachableBranches_updateVarAssignment___closed__1; x_17 = lean_array_fset(x_10, x_11, x_16); -x_18 = l_Lean_IR_UnreachableBranches_Value_merge___main(x_2, x_9); +x_18 = l_Lean_IR_UnreachableBranches_Value_merge(x_2, x_9); x_19 = l_Std_HashMapImp_insert___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__2(x_15, x_1, x_18); x_20 = lean_array_fset(x_17, x_11, x_19); lean_ctor_set(x_7, 0, x_20); @@ -4259,7 +5418,7 @@ lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean x_30 = lean_array_fget(x_23, x_25); x_31 = l_Lean_IR_UnreachableBranches_updateVarAssignment___closed__1; x_32 = lean_array_fset(x_23, x_25, x_31); -x_33 = l_Lean_IR_UnreachableBranches_Value_merge___main(x_2, x_22); +x_33 = l_Lean_IR_UnreachableBranches_Value_merge(x_2, x_22); x_34 = l_Std_HashMapImp_insert___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__2(x_30, x_1, x_33); x_35 = lean_array_fset(x_32, x_25, x_34); x_36 = lean_alloc_ctor(0, 2, 0); @@ -4321,7 +5480,7 @@ lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean x_49 = lean_array_fget(x_40, x_43); x_50 = l_Lean_IR_UnreachableBranches_updateVarAssignment___closed__1; x_51 = lean_array_fset(x_40, x_43, x_50); -x_52 = l_Lean_IR_UnreachableBranches_Value_merge___main(x_2, x_39); +x_52 = l_Lean_IR_UnreachableBranches_Value_merge(x_2, x_39); x_53 = l_Std_HashMapImp_insert___at_Lean_IR_UnreachableBranches_updateVarAssignment___spec__2(x_49, x_1, x_52); x_54 = lean_array_fset(x_51, x_43, x_53); if (lean_is_scalar(x_42)) { @@ -4475,7 +5634,54 @@ lean_dec(x_2); return x_4; } } -lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_UnreachableBranches_projValue_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 2: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_5); +lean_dec(x_4); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_3(x_3, x_6, x_7, x_2); +return x_8; +} +case 3: +{ +lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +lean_dec(x_3); +x_9 = lean_ctor_get(x_1, 0); +lean_inc(x_9); +lean_dec(x_1); +x_10 = lean_apply_2(x_4, x_9, x_2); +return x_10; +} +default: +{ +lean_object* x_11; +lean_dec(x_4); +lean_dec(x_3); +x_11 = lean_apply_2(x_5, x_1, x_2); +return x_11; +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_projValue_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_projValue_match__1___rarg), 5, 0); +return x_2; +} +} +lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -4487,15 +5693,15 @@ else lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; x_4 = lean_ctor_get(x_3, 0); x_5 = lean_ctor_get(x_3, 1); -x_6 = l_Lean_IR_UnreachableBranches_projValue___main(x_4, x_1); -x_7 = l_Lean_IR_UnreachableBranches_Value_merge___main(x_2, x_6); +x_6 = l_Lean_IR_UnreachableBranches_projValue(x_4, x_1); +x_7 = l_Lean_IR_UnreachableBranches_Value_merge(x_2, x_6); x_2 = x_7; x_3 = x_5; goto _start; } } } -lean_object* l_Lean_IR_UnreachableBranches_projValue___main(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_IR_UnreachableBranches_projValue(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_1)) { @@ -4512,7 +5718,7 @@ case 3: lean_object* x_6; lean_object* x_7; lean_object* x_8; x_6 = lean_ctor_get(x_1, 0); x_7 = lean_box(0); -x_8 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___main___spec__1(x_2, x_7, x_6); +x_8 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___spec__1(x_2, x_7, x_6); return x_8; } default: @@ -4523,34 +5729,16 @@ return x_1; } } } -lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___main___spec__1(x_1, x_2, x_3); +x_4 = l_List_foldl___main___at_Lean_IR_UnreachableBranches_projValue___spec__1(x_1, x_2, x_3); lean_dec(x_3); lean_dec(x_1); return x_4; } } -lean_object* l_Lean_IR_UnreachableBranches_projValue___main___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_IR_UnreachableBranches_projValue___main(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_Lean_IR_UnreachableBranches_projValue(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_IR_UnreachableBranches_projValue___main(x_1, x_2); -return x_3; -} -} lean_object* l_Lean_IR_UnreachableBranches_projValue___boxed(lean_object* x_1, lean_object* x_2) { _start: { @@ -4561,6 +5749,134 @@ lean_dec(x_1); return x_3; } } +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_2); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_3, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_2, x_6); +return x_7; +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_interpExpr_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_2); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_3, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_2, x_6); +return x_7; +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_interpExpr_match__2___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__3___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_2, x_6, x_7); +return x_8; +} +case 3: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_9 = lean_ctor_get(x_1, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_apply_2(x_3, x_9, x_10); +return x_11; +} +case 6: +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_12 = lean_ctor_get(x_1, 0); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 1); +lean_inc(x_13); +lean_dec(x_1); +x_14 = lean_apply_2(x_4, x_12, x_13); +return x_14; +} +default: +{ +lean_object* x_15; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_15 = lean_apply_1(x_5, x_1); +return x_15; +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_interpExpr_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_interpExpr_match__3___rarg), 5, 0); +return x_2; +} +} lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_interpExpr___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -4678,7 +5994,7 @@ x_16 = lean_ctor_get(x_1, 0); lean_inc(x_16); lean_dec(x_1); x_17 = lean_usize_to_nat(x_2); -x_18 = l_Lean_IR_UnreachableBranches_Value_Inhabited; +x_18 = l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__1; x_19 = lean_array_get(x_18, x_16, x_17); lean_dec(x_17); lean_dec(x_16); @@ -4713,7 +6029,7 @@ lean_inc(x_9); lean_dec(x_1); x_10 = lean_nat_sub(x_2, x_3); lean_dec(x_3); -x_11 = l_Lean_IR_UnreachableBranches_Value_Inhabited; +x_11 = l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__1; x_12 = lean_array_get(x_11, x_9, x_10); lean_dec(x_10); lean_dec(x_9); @@ -4784,7 +6100,7 @@ if (x_21 == 0) { lean_object* x_22; lean_object* x_23; x_22 = lean_ctor_get(x_20, 0); -x_23 = l_Lean_IR_UnreachableBranches_projValue___main(x_22, x_18); +x_23 = l_Lean_IR_UnreachableBranches_projValue(x_22, x_18); lean_dec(x_18); lean_dec(x_22); lean_ctor_set(x_20, 0, x_23); @@ -4798,7 +6114,7 @@ x_25 = lean_ctor_get(x_20, 1); lean_inc(x_25); lean_inc(x_24); lean_dec(x_20); -x_26 = l_Lean_IR_UnreachableBranches_projValue___main(x_24, x_18); +x_26 = l_Lean_IR_UnreachableBranches_projValue(x_24, x_18); lean_dec(x_18); lean_dec(x_24); x_27 = lean_alloc_ctor(0, 2, 0); @@ -4920,7 +6236,66 @@ lean_dec(x_2); return x_3; } } -uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___main___spec__1(lean_object* x_1, uint8_t x_2, lean_object* x_3) { +lean_object* l_Lean_IR_UnreachableBranches_containsCtor_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_7; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_7 = lean_apply_2(x_6, x_1, x_2); +return x_7; +} +case 1: +{ +lean_object* x_8; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_8 = lean_apply_1(x_3, x_2); +return x_8; +} +case 2: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +x_9 = lean_ctor_get(x_1, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_apply_3(x_4, x_9, x_10, x_2); +return x_11; +} +default: +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +x_12 = lean_ctor_get(x_1, 0); +lean_inc(x_12); +lean_dec(x_1); +x_13 = lean_apply_2(x_5, x_12, x_2); +return x_13; +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_containsCtor_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_containsCtor_match__1___rarg), 6, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___spec__1(lean_object* x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -4932,8 +6307,8 @@ else lean_object* x_4; lean_object* x_5; uint8_t x_6; uint8_t x_7; x_4 = lean_ctor_get(x_3, 0); x_5 = lean_ctor_get(x_3, 1); -x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___main___spec__1(x_1, x_2, x_5); -x_7 = l_Lean_IR_UnreachableBranches_containsCtor___main(x_4, x_1); +x_6 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___spec__1(x_1, x_2, x_5); +x_7 = l_Lean_IR_UnreachableBranches_containsCtor(x_4, x_1); if (x_7 == 0) { return x_6; @@ -4947,7 +6322,7 @@ return x_8; } } } -uint8_t l_Lean_IR_UnreachableBranches_containsCtor___main(lean_object* x_1, lean_object* x_2) { +uint8_t l_Lean_IR_UnreachableBranches_containsCtor(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_1)) { @@ -4975,44 +6350,25 @@ default: lean_object* x_7; uint8_t x_8; uint8_t x_9; x_7 = lean_ctor_get(x_1, 0); x_8 = 0; -x_9 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___main___spec__1(x_2, x_8, x_7); +x_9 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___spec__1(x_2, x_8, x_7); return x_9; } } } } -lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; lean_object* x_6; x_4 = lean_unbox(x_2); lean_dec(x_2); -x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___main___spec__1(x_1, x_4, x_3); +x_5 = l_List_foldr___main___at_Lean_IR_UnreachableBranches_containsCtor___spec__1(x_1, x_4, x_3); lean_dec(x_3); lean_dec(x_1); x_6 = lean_box(x_5); return x_6; } } -lean_object* l_Lean_IR_UnreachableBranches_containsCtor___main___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_Lean_IR_UnreachableBranches_containsCtor___main(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -x_4 = lean_box(x_3); -return x_4; -} -} -uint8_t l_Lean_IR_UnreachableBranches_containsCtor(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; -x_3 = l_Lean_IR_UnreachableBranches_containsCtor___main(x_1, x_2); -return x_3; -} -} lean_object* l_Lean_IR_UnreachableBranches_containsCtor___boxed(lean_object* x_1, lean_object* x_2) { _start: { @@ -5406,8 +6762,8 @@ x_25 = lean_ctor_get(x_23, 1); lean_inc(x_25); lean_dec(x_23); lean_inc(x_21); -x_26 = l_Lean_IR_UnreachableBranches_Value_merge___main(x_21, x_24); -x_27 = l_Lean_IR_UnreachableBranches_Value_beq___main(x_26, x_21); +x_26 = l_Lean_IR_UnreachableBranches_Value_merge(x_21, x_24); +x_27 = l_Lean_IR_UnreachableBranches_Value_beq(x_26, x_21); lean_dec(x_21); if (x_27 == 0) { @@ -5551,7 +6907,99 @@ lean_dec(x_1); return x_5; } } -lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +lean_dec(x_1); +x_6 = lean_apply_2(x_2, x_4, x_5); +return x_6; +} +else +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_1(x_3, x_7); +return x_8; +} +} +} +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 1: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_3); +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 2); +lean_inc(x_7); +x_8 = lean_ctor_get(x_1, 3); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_apply_4(x_2, x_5, x_6, x_7, x_8); +return x_9; +} +case 10: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +lean_dec(x_4); +lean_dec(x_2); +x_10 = lean_ctor_get(x_1, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_1, 1); +lean_inc(x_11); +x_12 = lean_ctor_get(x_1, 2); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 3); +lean_inc(x_13); +lean_dec(x_1); +x_14 = lean_apply_4(x_3, x_10, x_11, x_12, x_13); +return x_14; +} +default: +{ +lean_object* x_15; +lean_dec(x_3); +lean_dec(x_2); +x_15 = lean_apply_1(x_4, x_1); +return x_15; +} +} +} +} +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams_match__2___rarg), 4, 0); +return x_2; +} +} +lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; uint8_t x_6; @@ -5585,7 +7033,7 @@ goto _start; } } } -lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; uint8_t x_6; @@ -5612,7 +7060,7 @@ lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean x_10 = lean_ctor_get(x_9, 1); lean_inc(x_10); lean_dec(x_9); -x_11 = l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(x_10, x_3, x_4); +x_11 = l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams(x_10, x_3, x_4); x_12 = lean_ctor_get(x_11, 1); lean_inc(x_12); lean_dec(x_11); @@ -5629,7 +7077,7 @@ lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean x_16 = lean_ctor_get(x_9, 0); lean_inc(x_16); lean_dec(x_9); -x_17 = l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(x_16, x_3, x_4); +x_17 = l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams(x_16, x_3, x_4); x_18 = lean_ctor_get(x_17, 1); lean_inc(x_18); lean_dec(x_17); @@ -5643,121 +7091,246 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_4; switch (lean_obj_tag(x_1)) { case 1: { -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_11 = lean_ctor_get(x_1, 1); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 3); -lean_inc(x_12); +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 3); +lean_inc(x_5); lean_dec(x_1); -x_13 = lean_unsigned_to_nat(0u); -x_14 = l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__1(x_11, x_13, x_2, x_3); -lean_dec(x_11); -x_15 = lean_ctor_get(x_14, 1); -lean_inc(x_15); -lean_dec(x_14); -x_1 = x_12; -x_3 = x_15; +x_6 = lean_unsigned_to_nat(0u); +x_7 = l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__1(x_4, x_6, x_2, x_3); +lean_dec(x_4); +x_8 = lean_ctor_get(x_7, 1); +lean_inc(x_8); +lean_dec(x_7); +x_1 = x_5; +x_3 = x_8; goto _start; } case 10: { -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_1, 3); -lean_inc(x_17); +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_1, 3); +lean_inc(x_10); lean_dec(x_1); -x_18 = lean_unsigned_to_nat(0u); -x_19 = l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__2(x_17, x_18, x_2, x_3); -lean_dec(x_17); -return x_19; +x_11 = lean_unsigned_to_nat(0u); +x_12 = l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__2(x_10, x_11, x_2, x_3); +lean_dec(x_10); +return x_12; } default: { -lean_object* x_20; -x_20 = lean_box(0); -x_4 = x_20; -goto block_10; -} -} -block_10: +uint8_t x_13; +x_13 = l_Lean_IR_FnBody_isTerminal(x_1); +if (x_13 == 0) { -uint8_t x_5; -lean_dec(x_4); -x_5 = l_Lean_IR_FnBody_isTerminal(x_1); -if (x_5 == 0) -{ -lean_object* x_6; -x_6 = l_Lean_IR_FnBody_body(x_1); +lean_object* x_14; +x_14 = l_Lean_IR_FnBody_body(x_1); lean_dec(x_1); -x_1 = x_6; +x_1 = x_14; goto _start; } else { -lean_object* x_8; lean_object* x_9; +lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_8 = lean_box(0); -x_9 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_9, 0, x_8); -lean_ctor_set(x_9, 1, x_3); -return x_9; +x_16 = lean_box(0); +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_3); +return x_17; } } } } -lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +} +lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__1(x_1, x_2, x_3, x_4); +x_5 = l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__1(x_1, x_2, x_3, x_4); lean_dec(x_3); lean_dec(x_1); return x_5; } } -lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___spec__2(x_1, x_2, x_3, x_4); +x_5 = l_Array_forMAux___main___at___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___spec__2(x_1, x_2, x_3, x_4); lean_dec(x_3); lean_dec(x_1); return x_5; } } -lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_UnreachableBranches_interpFnBody_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(x_1, x_2, x_3); -return x_4; -} -} -lean_object* l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: +if (lean_obj_tag(x_1) == 0) { -lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams(x_1, x_2, x_3); +lean_object* x_4; lean_object* x_5; lean_object* x_6; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +lean_dec(x_1); +x_6 = lean_apply_2(x_2, x_4, x_5); +return x_6; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_dec(x_2); -return x_4; +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_1(x_3, x_7); +return x_8; } } -lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +} +lean_object* l_Lean_IR_UnreachableBranches_interpFnBody_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_interpFnBody_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_IR_UnreachableBranches_interpFnBody_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_1, 1); +lean_inc(x_9); +x_10 = lean_ctor_get(x_1, 2); +lean_inc(x_10); +x_11 = lean_ctor_get(x_1, 3); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_apply_4(x_2, x_8, x_9, x_10, x_11); +return x_12; +} +case 1: +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_13 = lean_ctor_get(x_1, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 1); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 2); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 3); +lean_inc(x_16); +lean_dec(x_1); +x_17 = lean_apply_4(x_3, x_13, x_14, x_15, x_16); +return x_17; +} +case 10: +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_18 = lean_ctor_get(x_1, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 1); +lean_inc(x_19); +x_20 = lean_ctor_get(x_1, 2); +lean_inc(x_20); +x_21 = lean_ctor_get(x_1, 3); +lean_inc(x_21); +lean_dec(x_1); +x_22 = lean_apply_4(x_4, x_18, x_19, x_20, x_21); +return x_22; +} +case 11: +{ +lean_object* x_23; lean_object* x_24; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_23 = lean_ctor_get(x_1, 0); +lean_inc(x_23); +lean_dec(x_1); +x_24 = lean_apply_1(x_5, x_23); +return x_24; +} +case 12: +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_25 = lean_ctor_get(x_1, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_1, 1); +lean_inc(x_26); +lean_dec(x_1); +x_27 = lean_apply_2(x_6, x_25, x_26); +return x_27; +} +default: +{ +lean_object* x_28; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_28 = lean_apply_1(x_7, x_1); +return x_28; +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_interpFnBody_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_interpFnBody_match__2___rarg), 7, 0); +return x_2; +} +} +lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; uint8_t x_7; @@ -5787,7 +7360,7 @@ lean_inc(x_11); x_12 = lean_ctor_get(x_10, 1); lean_inc(x_12); lean_dec(x_10); -x_13 = l_Lean_IR_UnreachableBranches_containsCtor___main(x_1, x_11); +x_13 = l_Lean_IR_UnreachableBranches_containsCtor(x_1, x_11); lean_dec(x_11); if (x_13 == 0) { @@ -5803,7 +7376,7 @@ else { lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_inc(x_4); -x_17 = l_Lean_IR_UnreachableBranches_interpFnBody___main(x_12, x_4, x_5); +x_17 = l_Lean_IR_UnreachableBranches_interpFnBody(x_12, x_4, x_5); x_18 = lean_ctor_get(x_17, 1); lean_inc(x_18); lean_dec(x_17); @@ -5822,7 +7395,7 @@ x_22 = lean_ctor_get(x_10, 0); lean_inc(x_22); lean_dec(x_10); lean_inc(x_4); -x_23 = l_Lean_IR_UnreachableBranches_interpFnBody___main(x_22, x_4, x_5); +x_23 = l_Lean_IR_UnreachableBranches_interpFnBody(x_22, x_4, x_5); x_24 = lean_ctor_get(x_23, 1); lean_inc(x_24); lean_dec(x_23); @@ -5836,363 +7409,362 @@ goto _start; } } } -lean_object* l_Lean_IR_UnreachableBranches_interpFnBody___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_UnreachableBranches_interpFnBody(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_4; switch (lean_obj_tag(x_1)) { case 0: { -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 2); -lean_inc(x_12); -x_13 = lean_ctor_get(x_1, 3); -lean_inc(x_13); +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 2); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 3); +lean_inc(x_6); lean_dec(x_1); lean_inc(x_2); -x_14 = l_Lean_IR_UnreachableBranches_interpExpr(x_12, x_2, x_3); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = l_Lean_IR_UnreachableBranches_updateVarAssignment(x_11, x_15, x_2, x_16); -x_18 = lean_ctor_get(x_17, 1); -lean_inc(x_18); -lean_dec(x_17); -x_1 = x_13; -x_3 = x_18; +x_7 = l_Lean_IR_UnreachableBranches_interpExpr(x_5, x_2, x_3); +x_8 = lean_ctor_get(x_7, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_7, 1); +lean_inc(x_9); +lean_dec(x_7); +x_10 = l_Lean_IR_UnreachableBranches_updateVarAssignment(x_4, x_8, x_2, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_1 = x_6; +x_3 = x_11; goto _start; } case 1: { -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; -x_20 = lean_ctor_get(x_1, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 1); -lean_inc(x_21); -x_22 = lean_ctor_get(x_1, 2); -lean_inc(x_22); -x_23 = lean_ctor_get(x_1, 3); -lean_inc(x_23); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_13 = lean_ctor_get(x_1, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 1); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 2); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 3); +lean_inc(x_16); lean_dec(x_1); -x_24 = !lean_is_exclusive(x_2); -if (x_24 == 0) +x_17 = !lean_is_exclusive(x_2); +if (x_17 == 0) { -lean_object* x_25; lean_object* x_26; -x_25 = lean_ctor_get(x_2, 3); -x_26 = l_Lean_IR_LocalContext_addJP(x_25, x_20, x_21, x_22); -lean_ctor_set(x_2, 3, x_26); -x_1 = x_23; +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_2, 3); +x_19 = l_Lean_IR_LocalContext_addJP(x_18, x_13, x_14, x_15); +lean_ctor_set(x_2, 3, x_19); +x_1 = x_16; goto _start; } else { -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_28 = lean_ctor_get(x_2, 0); -x_29 = lean_ctor_get(x_2, 1); -x_30 = lean_ctor_get(x_2, 2); -x_31 = lean_ctor_get(x_2, 3); -lean_inc(x_31); -lean_inc(x_30); -lean_inc(x_29); -lean_inc(x_28); +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_21 = lean_ctor_get(x_2, 0); +x_22 = lean_ctor_get(x_2, 1); +x_23 = lean_ctor_get(x_2, 2); +x_24 = lean_ctor_get(x_2, 3); +lean_inc(x_24); +lean_inc(x_23); +lean_inc(x_22); +lean_inc(x_21); lean_dec(x_2); -x_32 = l_Lean_IR_LocalContext_addJP(x_31, x_20, x_21, x_22); -x_33 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_33, 0, x_28); -lean_ctor_set(x_33, 1, x_29); -lean_ctor_set(x_33, 2, x_30); -lean_ctor_set(x_33, 3, x_32); -x_1 = x_23; -x_2 = x_33; +x_25 = l_Lean_IR_LocalContext_addJP(x_24, x_13, x_14, x_15); +x_26 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_26, 0, x_21); +lean_ctor_set(x_26, 1, x_22); +lean_ctor_set(x_26, 2, x_23); +lean_ctor_set(x_26, 3, x_25); +x_1 = x_16; +x_2 = x_26; goto _start; } } case 10: { -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_35 = lean_ctor_get(x_1, 1); -lean_inc(x_35); -x_36 = lean_ctor_get(x_1, 3); -lean_inc(x_36); +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_28 = lean_ctor_get(x_1, 1); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 3); +lean_inc(x_29); lean_dec(x_1); -x_37 = l_Lean_IR_UnreachableBranches_findVarValue(x_35, x_2, x_3); -lean_dec(x_35); -x_38 = lean_ctor_get(x_37, 0); -lean_inc(x_38); -x_39 = lean_ctor_get(x_37, 1); -lean_inc(x_39); -lean_dec(x_37); -x_40 = lean_unsigned_to_nat(0u); -x_41 = l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___main___spec__1(x_38, x_36, x_40, x_2, x_39); -lean_dec(x_36); -lean_dec(x_38); -return x_41; +x_30 = l_Lean_IR_UnreachableBranches_findVarValue(x_28, x_2, x_3); +lean_dec(x_28); +x_31 = lean_ctor_get(x_30, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_30, 1); +lean_inc(x_32); +lean_dec(x_30); +x_33 = lean_unsigned_to_nat(0u); +x_34 = l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___spec__1(x_31, x_29, x_33, x_2, x_32); +lean_dec(x_29); +lean_dec(x_31); +return x_34; } case 11: { -lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_42 = lean_ctor_get(x_1, 0); -lean_inc(x_42); +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_35 = lean_ctor_get(x_1, 0); +lean_inc(x_35); lean_dec(x_1); -x_43 = l_Lean_IR_UnreachableBranches_findArgValue(x_42, x_2, x_3); -lean_dec(x_42); -x_44 = lean_ctor_get(x_43, 0); -lean_inc(x_44); -x_45 = lean_ctor_get(x_43, 1); -lean_inc(x_45); -lean_dec(x_43); -x_46 = l_Lean_IR_UnreachableBranches_updateCurrFnSummary(x_44, x_2, x_45); -return x_46; +x_36 = l_Lean_IR_UnreachableBranches_findArgValue(x_35, x_2, x_3); +lean_dec(x_35); +x_37 = lean_ctor_get(x_36, 0); +lean_inc(x_37); +x_38 = lean_ctor_get(x_36, 1); +lean_inc(x_38); +lean_dec(x_36); +x_39 = l_Lean_IR_UnreachableBranches_updateCurrFnSummary(x_37, x_2, x_38); +return x_39; } case 12: { -lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_47 = lean_ctor_get(x_1, 0); -lean_inc(x_47); -x_48 = lean_ctor_get(x_1, 1); -lean_inc(x_48); +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_40 = lean_ctor_get(x_1, 0); +lean_inc(x_40); +x_41 = lean_ctor_get(x_1, 1); +lean_inc(x_41); lean_dec(x_1); -x_49 = lean_ctor_get(x_2, 3); -lean_inc(x_49); -x_50 = l_Lean_IR_LocalContext_getJPParams(x_49, x_47); -x_51 = l_Lean_IR_LocalContext_getJPBody(x_49, x_47); +x_42 = lean_ctor_get(x_2, 3); +lean_inc(x_42); +x_43 = l_Lean_IR_LocalContext_getJPParams(x_42, x_40); +x_44 = l_Lean_IR_LocalContext_getJPBody(x_42, x_40); +lean_dec(x_40); +lean_dec(x_42); +if (lean_obj_tag(x_43) == 0) +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_45 = l_Array_empty___closed__1; +x_46 = l_Option_get_x21___rarg___closed__3; +x_47 = lean_panic_fn(x_45, x_46); +x_48 = l_Lean_IR_UnreachableBranches_updateJPParamsAssignment(x_47, x_41, x_2, x_3); +lean_dec(x_41); lean_dec(x_47); -lean_dec(x_49); -if (lean_obj_tag(x_50) == 0) +if (lean_obj_tag(x_44) == 0) { -lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_52 = l_Array_empty___closed__1; -x_53 = l_Option_get_x21___rarg___closed__3; -x_54 = lean_panic_fn(x_52, x_53); -x_55 = l_Lean_IR_UnreachableBranches_updateJPParamsAssignment(x_54, x_48, x_2, x_3); -lean_dec(x_48); -lean_dec(x_54); -if (lean_obj_tag(x_51) == 0) +lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; +x_49 = l_Lean_IR_Inhabited; +x_50 = lean_panic_fn(x_49, x_46); +x_51 = lean_ctor_get(x_48, 0); +lean_inc(x_51); +x_52 = lean_unbox(x_51); +lean_dec(x_51); +if (x_52 == 0) { -lean_object* x_56; lean_object* x_57; lean_object* x_58; uint8_t x_59; -x_56 = l_Lean_IR_Inhabited; -x_57 = lean_panic_fn(x_56, x_53); -x_58 = lean_ctor_get(x_55, 0); -lean_inc(x_58); -x_59 = lean_unbox(x_58); -lean_dec(x_58); -if (x_59 == 0) -{ -uint8_t x_60; -lean_dec(x_57); +uint8_t x_53; +lean_dec(x_50); lean_dec(x_2); -x_60 = !lean_is_exclusive(x_55); -if (x_60 == 0) +x_53 = !lean_is_exclusive(x_48); +if (x_53 == 0) { -lean_object* x_61; lean_object* x_62; -x_61 = lean_ctor_get(x_55, 0); -lean_dec(x_61); -x_62 = lean_box(0); -lean_ctor_set(x_55, 0, x_62); -return x_55; +lean_object* x_54; lean_object* x_55; +x_54 = lean_ctor_get(x_48, 0); +lean_dec(x_54); +x_55 = lean_box(0); +lean_ctor_set(x_48, 0, x_55); +return x_48; } else { -lean_object* x_63; lean_object* x_64; lean_object* x_65; -x_63 = lean_ctor_get(x_55, 1); -lean_inc(x_63); -lean_dec(x_55); -x_64 = lean_box(0); -x_65 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_65, 0, x_64); -lean_ctor_set(x_65, 1, x_63); -return x_65; +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_ctor_get(x_48, 1); +lean_inc(x_56); +lean_dec(x_48); +x_57 = lean_box(0); +x_58 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_58, 0, x_57); +lean_ctor_set(x_58, 1, x_56); +return x_58; } } else { -lean_object* x_66; lean_object* x_67; lean_object* x_68; -x_66 = lean_ctor_get(x_55, 1); -lean_inc(x_66); -lean_dec(x_55); -lean_inc(x_57); -x_67 = l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(x_57, x_2, x_66); -x_68 = lean_ctor_get(x_67, 1); -lean_inc(x_68); -lean_dec(x_67); -x_1 = x_57; -x_3 = x_68; +lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_59 = lean_ctor_get(x_48, 1); +lean_inc(x_59); +lean_dec(x_48); +lean_inc(x_50); +x_60 = l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams(x_50, x_2, x_59); +x_61 = lean_ctor_get(x_60, 1); +lean_inc(x_61); +lean_dec(x_60); +x_1 = x_50; +x_3 = x_61; goto _start; } } else { -lean_object* x_70; uint8_t x_71; -x_70 = lean_ctor_get(x_55, 0); -lean_inc(x_70); -x_71 = lean_unbox(x_70); -lean_dec(x_70); -if (x_71 == 0) +lean_object* x_63; uint8_t x_64; +x_63 = lean_ctor_get(x_48, 0); +lean_inc(x_63); +x_64 = lean_unbox(x_63); +lean_dec(x_63); +if (x_64 == 0) { -uint8_t x_72; -lean_dec(x_51); +uint8_t x_65; +lean_dec(x_44); lean_dec(x_2); -x_72 = !lean_is_exclusive(x_55); -if (x_72 == 0) +x_65 = !lean_is_exclusive(x_48); +if (x_65 == 0) { -lean_object* x_73; lean_object* x_74; -x_73 = lean_ctor_get(x_55, 0); -lean_dec(x_73); -x_74 = lean_box(0); -lean_ctor_set(x_55, 0, x_74); -return x_55; +lean_object* x_66; lean_object* x_67; +x_66 = lean_ctor_get(x_48, 0); +lean_dec(x_66); +x_67 = lean_box(0); +lean_ctor_set(x_48, 0, x_67); +return x_48; } else { -lean_object* x_75; lean_object* x_76; lean_object* x_77; -x_75 = lean_ctor_get(x_55, 1); -lean_inc(x_75); -lean_dec(x_55); -x_76 = lean_box(0); -x_77 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_77, 0, x_76); -lean_ctor_set(x_77, 1, x_75); +lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_68 = lean_ctor_get(x_48, 1); +lean_inc(x_68); +lean_dec(x_48); +x_69 = lean_box(0); +x_70 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_70, 0, x_69); +lean_ctor_set(x_70, 1, x_68); +return x_70; +} +} +else +{ +lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; +x_71 = lean_ctor_get(x_44, 0); +lean_inc(x_71); +lean_dec(x_44); +x_72 = lean_ctor_get(x_48, 1); +lean_inc(x_72); +lean_dec(x_48); +lean_inc(x_71); +x_73 = l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams(x_71, x_2, x_72); +x_74 = lean_ctor_get(x_73, 1); +lean_inc(x_74); +lean_dec(x_73); +x_1 = x_71; +x_3 = x_74; +goto _start; +} +} +} +else +{ +lean_object* x_76; lean_object* x_77; +x_76 = lean_ctor_get(x_43, 0); +lean_inc(x_76); +lean_dec(x_43); +x_77 = l_Lean_IR_UnreachableBranches_updateJPParamsAssignment(x_76, x_41, x_2, x_3); +lean_dec(x_41); +lean_dec(x_76); +if (lean_obj_tag(x_44) == 0) +{ +lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; uint8_t x_82; +x_78 = l_Lean_IR_Inhabited; +x_79 = l_Option_get_x21___rarg___closed__3; +x_80 = lean_panic_fn(x_78, x_79); +x_81 = lean_ctor_get(x_77, 0); +lean_inc(x_81); +x_82 = lean_unbox(x_81); +lean_dec(x_81); +if (x_82 == 0) +{ +uint8_t x_83; +lean_dec(x_80); +lean_dec(x_2); +x_83 = !lean_is_exclusive(x_77); +if (x_83 == 0) +{ +lean_object* x_84; lean_object* x_85; +x_84 = lean_ctor_get(x_77, 0); +lean_dec(x_84); +x_85 = lean_box(0); +lean_ctor_set(x_77, 0, x_85); return x_77; } +else +{ +lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_86 = lean_ctor_get(x_77, 1); +lean_inc(x_86); +lean_dec(x_77); +x_87 = lean_box(0); +x_88 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_88, 0, x_87); +lean_ctor_set(x_88, 1, x_86); +return x_88; +} } else { -lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_78 = lean_ctor_get(x_51, 0); -lean_inc(x_78); -lean_dec(x_51); -x_79 = lean_ctor_get(x_55, 1); -lean_inc(x_79); -lean_dec(x_55); -lean_inc(x_78); -x_80 = l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(x_78, x_2, x_79); -x_81 = lean_ctor_get(x_80, 1); -lean_inc(x_81); -lean_dec(x_80); -x_1 = x_78; -x_3 = x_81; +lean_object* x_89; lean_object* x_90; lean_object* x_91; +x_89 = lean_ctor_get(x_77, 1); +lean_inc(x_89); +lean_dec(x_77); +lean_inc(x_80); +x_90 = l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams(x_80, x_2, x_89); +x_91 = lean_ctor_get(x_90, 1); +lean_inc(x_91); +lean_dec(x_90); +x_1 = x_80; +x_3 = x_91; goto _start; } } -} else { -lean_object* x_83; lean_object* x_84; -x_83 = lean_ctor_get(x_50, 0); -lean_inc(x_83); -lean_dec(x_50); -x_84 = l_Lean_IR_UnreachableBranches_updateJPParamsAssignment(x_83, x_48, x_2, x_3); -lean_dec(x_48); -lean_dec(x_83); -if (lean_obj_tag(x_51) == 0) -{ -lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; uint8_t x_89; -x_85 = l_Lean_IR_Inhabited; -x_86 = l_Option_get_x21___rarg___closed__3; -x_87 = lean_panic_fn(x_85, x_86); -x_88 = lean_ctor_get(x_84, 0); -lean_inc(x_88); -x_89 = lean_unbox(x_88); -lean_dec(x_88); -if (x_89 == 0) -{ -uint8_t x_90; -lean_dec(x_87); -lean_dec(x_2); -x_90 = !lean_is_exclusive(x_84); -if (x_90 == 0) -{ -lean_object* x_91; lean_object* x_92; -x_91 = lean_ctor_get(x_84, 0); -lean_dec(x_91); -x_92 = lean_box(0); -lean_ctor_set(x_84, 0, x_92); -return x_84; -} -else -{ -lean_object* x_93; lean_object* x_94; lean_object* x_95; -x_93 = lean_ctor_get(x_84, 1); +lean_object* x_93; uint8_t x_94; +x_93 = lean_ctor_get(x_77, 0); lean_inc(x_93); -lean_dec(x_84); -x_94 = lean_box(0); -x_95 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_95, 0, x_94); -lean_ctor_set(x_95, 1, x_93); -return x_95; -} -} -else +x_94 = lean_unbox(x_93); +lean_dec(x_93); +if (x_94 == 0) { -lean_object* x_96; lean_object* x_97; lean_object* x_98; -x_96 = lean_ctor_get(x_84, 1); -lean_inc(x_96); -lean_dec(x_84); -lean_inc(x_87); -x_97 = l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(x_87, x_2, x_96); -x_98 = lean_ctor_get(x_97, 1); -lean_inc(x_98); -lean_dec(x_97); -x_1 = x_87; -x_3 = x_98; -goto _start; -} -} -else -{ -lean_object* x_100; uint8_t x_101; -x_100 = lean_ctor_get(x_84, 0); -lean_inc(x_100); -x_101 = lean_unbox(x_100); -lean_dec(x_100); -if (x_101 == 0) -{ -uint8_t x_102; -lean_dec(x_51); +uint8_t x_95; +lean_dec(x_44); lean_dec(x_2); -x_102 = !lean_is_exclusive(x_84); -if (x_102 == 0) +x_95 = !lean_is_exclusive(x_77); +if (x_95 == 0) { -lean_object* x_103; lean_object* x_104; -x_103 = lean_ctor_get(x_84, 0); +lean_object* x_96; lean_object* x_97; +x_96 = lean_ctor_get(x_77, 0); +lean_dec(x_96); +x_97 = lean_box(0); +lean_ctor_set(x_77, 0, x_97); +return x_77; +} +else +{ +lean_object* x_98; lean_object* x_99; lean_object* x_100; +x_98 = lean_ctor_get(x_77, 1); +lean_inc(x_98); +lean_dec(x_77); +x_99 = lean_box(0); +x_100 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_100, 0, x_99); +lean_ctor_set(x_100, 1, x_98); +return x_100; +} +} +else +{ +lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; +x_101 = lean_ctor_get(x_44, 0); +lean_inc(x_101); +lean_dec(x_44); +x_102 = lean_ctor_get(x_77, 1); +lean_inc(x_102); +lean_dec(x_77); +lean_inc(x_101); +x_103 = l___private_Lean_Compiler_IR_ElimDeadBranches_0__Lean_IR_UnreachableBranches_resetNestedJPParams(x_101, x_2, x_102); +x_104 = lean_ctor_get(x_103, 1); +lean_inc(x_104); lean_dec(x_103); -x_104 = lean_box(0); -lean_ctor_set(x_84, 0, x_104); -return x_84; -} -else -{ -lean_object* x_105; lean_object* x_106; lean_object* x_107; -x_105 = lean_ctor_get(x_84, 1); -lean_inc(x_105); -lean_dec(x_84); -x_106 = lean_box(0); -x_107 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_107, 0, x_106); -lean_ctor_set(x_107, 1, x_105); -return x_107; -} -} -else -{ -lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; -x_108 = lean_ctor_get(x_51, 0); -lean_inc(x_108); -lean_dec(x_51); -x_109 = lean_ctor_get(x_84, 1); -lean_inc(x_109); -lean_dec(x_84); -lean_inc(x_108); -x_110 = l___private_Lean_Compiler_IR_ElimDeadBranches_1__resetNestedJPParams___main(x_108, x_2, x_109); -x_111 = lean_ctor_get(x_110, 1); -lean_inc(x_111); -lean_dec(x_110); -x_1 = x_108; -x_3 = x_111; +x_1 = x_101; +x_3 = x_104; goto _start; } } @@ -6200,55 +7772,84 @@ goto _start; } default: { -lean_object* x_113; -x_113 = lean_box(0); -x_4 = x_113; -goto block_10; -} -} -block_10: +uint8_t x_106; +x_106 = l_Lean_IR_FnBody_isTerminal(x_1); +if (x_106 == 0) { -uint8_t x_5; -lean_dec(x_4); -x_5 = l_Lean_IR_FnBody_isTerminal(x_1); -if (x_5 == 0) -{ -lean_object* x_6; -x_6 = l_Lean_IR_FnBody_body(x_1); +lean_object* x_107; +x_107 = l_Lean_IR_FnBody_body(x_1); lean_dec(x_1); -x_1 = x_6; +x_1 = x_107; goto _start; } else { -lean_object* x_8; lean_object* x_9; +lean_object* x_109; lean_object* x_110; lean_dec(x_2); lean_dec(x_1); -x_8 = lean_box(0); -x_9 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_9, 0, x_8); -lean_ctor_set(x_9, 1, x_3); -return x_9; +x_109 = lean_box(0); +x_110 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_110, 0, x_109); +lean_ctor_set(x_110, 1, x_3); +return x_110; } } } } -lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +} +lean_object* l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___main___spec__1(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Array_forMAux___main___at_Lean_IR_UnreachableBranches_interpFnBody___spec__1(x_1, x_2, x_3, x_4, x_5); lean_dec(x_2); lean_dec(x_1); return x_6; } } -lean_object* l_Lean_IR_UnreachableBranches_interpFnBody(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_UnreachableBranches_inferStep_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_4; -x_4 = l_Lean_IR_UnreachableBranches_interpFnBody___main(x_1, x_2, x_3); -return x_4; +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 2); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 3); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_4(x_2, x_4, x_5, x_6, x_7); +return x_8; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_2); +x_9 = lean_ctor_get(x_1, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +x_11 = lean_ctor_get(x_1, 2); +lean_inc(x_11); +x_12 = lean_ctor_get(x_1, 3); +lean_inc(x_12); +lean_dec(x_1); +x_13 = lean_apply_4(x_3, x_9, x_10, x_11, x_12); +return x_13; +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_inferStep_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_inferStep_match__1___rarg), 3, 0); +return x_2; } } static lean_object* _init_l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_inferStep___spec__1___closed__1() { @@ -6373,7 +7974,7 @@ lean_dec(x_15); x_24 = lean_ctor_get(x_23, 1); lean_inc(x_24); lean_dec(x_23); -x_25 = l_Lean_IR_UnreachableBranches_interpFnBody___main(x_16, x_22, x_24); +x_25 = l_Lean_IR_UnreachableBranches_interpFnBody(x_16, x_22, x_24); if (x_4 == 0) { lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; @@ -6384,7 +7985,7 @@ x_27 = lean_ctor_get(x_26, 1); lean_inc(x_27); x_28 = l_Std_PersistentArray_get_x21___at_Lean_IR_UnreachableBranches_interpExpr___spec__3(x_27, x_12); lean_dec(x_12); -x_29 = l_Lean_IR_UnreachableBranches_Value_beq___main(x_18, x_28); +x_29 = l_Lean_IR_UnreachableBranches_Value_beq(x_18, x_28); lean_dec(x_28); lean_dec(x_18); if (x_29 == 0) @@ -6511,7 +8112,23 @@ lean_dec(x_1); return x_8; } } -lean_object* l_Lean_IR_UnreachableBranches_inferMain___main___rarg(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_IR_UnreachableBranches_inferMain_match__1___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_apply_1(x_2, x_1); +return x_3; +} +} +lean_object* l_Lean_IR_UnreachableBranches_inferMain_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_inferMain_match__1___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_IR_UnreachableBranches_inferMain___rarg(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; uint8_t x_5; @@ -6559,31 +8176,6 @@ goto _start; } } } -lean_object* l_Lean_IR_UnreachableBranches_inferMain___main(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_inferMain___main___rarg), 2, 0); -return x_2; -} -} -lean_object* l_Lean_IR_UnreachableBranches_inferMain___main___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_IR_UnreachableBranches_inferMain___main(x_1); -lean_dec(x_1); -return x_2; -} -} -lean_object* l_Lean_IR_UnreachableBranches_inferMain___rarg(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_IR_UnreachableBranches_inferMain___main___rarg(x_1, x_2); -return x_3; -} -} lean_object* l_Lean_IR_UnreachableBranches_inferMain(lean_object* x_1) { _start: { @@ -6601,7 +8193,141 @@ lean_dec(x_1); return x_2; } } -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +lean_dec(x_1); +x_6 = lean_apply_2(x_2, x_4, x_5); +return x_6; +} +else +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_1(x_3, x_7); +return x_8; +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_elimDeadAux_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__2___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_elimDeadAux_match__2___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__3___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +x_8 = lean_ctor_get(x_1, 2); +lean_inc(x_8); +x_9 = lean_ctor_get(x_1, 3); +lean_inc(x_9); +lean_dec(x_1); +x_10 = lean_apply_4(x_2, x_6, x_7, x_8, x_9); +return x_10; +} +case 1: +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_11 = lean_ctor_get(x_1, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 3); +lean_inc(x_14); +lean_dec(x_1); +x_15 = lean_apply_4(x_3, x_11, x_12, x_13, x_14); +return x_15; +} +case 10: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +x_18 = lean_ctor_get(x_1, 2); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 3); +lean_inc(x_19); +lean_dec(x_1); +x_20 = lean_apply_4(x_4, x_16, x_17, x_18, x_19); +return x_20; +} +default: +{ +lean_object* x_21; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_21 = lean_apply_1(x_5, x_1); +return x_21; +} +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_elimDeadAux_match__3___rarg), 5, 0); +return x_2; +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; uint8_t x_5; @@ -6634,7 +8360,7 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; x_14 = lean_ctor_get(x_10, 0); x_15 = lean_ctor_get(x_10, 1); x_16 = lean_box(0); -x_17 = l_Lean_IR_UnreachableBranches_containsCtor___main(x_16, x_14); +x_17 = l_Lean_IR_UnreachableBranches_containsCtor(x_16, x_14); if (x_17 == 0) { lean_object* x_18; lean_object* x_19; lean_object* x_20; @@ -6651,7 +8377,7 @@ goto _start; else { lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_22 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_15); +x_22 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_15); lean_ctor_set(x_10, 1, x_22); x_23 = x_10; x_24 = lean_array_fset(x_9, x_2, x_23); @@ -6670,7 +8396,7 @@ lean_inc(x_27); lean_inc(x_26); lean_dec(x_10); x_28 = lean_box(0); -x_29 = l_Lean_IR_UnreachableBranches_containsCtor___main(x_28, x_26); +x_29 = l_Lean_IR_UnreachableBranches_containsCtor(x_28, x_26); if (x_29 == 0) { lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; @@ -6689,7 +8415,7 @@ goto _start; else { lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_35 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_27); +x_35 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_27); x_36 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_36, 0, x_26); lean_ctor_set(x_36, 1, x_35); @@ -6710,7 +8436,7 @@ if (x_40 == 0) { lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; x_41 = lean_ctor_get(x_10, 0); -x_42 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_41); +x_42 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_41); lean_ctor_set(x_10, 0, x_42); x_43 = x_10; x_44 = lean_array_fset(x_9, x_2, x_43); @@ -6725,7 +8451,7 @@ lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean x_46 = lean_ctor_get(x_10, 0); lean_inc(x_46); lean_dec(x_10); -x_47 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_46); +x_47 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_46); x_48 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_48, 0, x_47); x_49 = x_48; @@ -6739,7 +8465,7 @@ goto _start; } } } -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; uint8_t x_6; @@ -6771,7 +8497,7 @@ if (x_14 == 0) lean_object* x_15; lean_object* x_16; uint8_t x_17; x_15 = lean_ctor_get(x_11, 0); x_16 = lean_ctor_get(x_11, 1); -x_17 = l_Lean_IR_UnreachableBranches_containsCtor___main(x_2, x_15); +x_17 = l_Lean_IR_UnreachableBranches_containsCtor(x_2, x_15); if (x_17 == 0) { lean_object* x_18; lean_object* x_19; lean_object* x_20; @@ -6788,7 +8514,7 @@ goto _start; else { lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_22 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_16); +x_22 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_16); lean_ctor_set(x_11, 1, x_22); x_23 = x_11; x_24 = lean_array_fset(x_10, x_3, x_23); @@ -6806,7 +8532,7 @@ x_27 = lean_ctor_get(x_11, 1); lean_inc(x_27); lean_inc(x_26); lean_dec(x_11); -x_28 = l_Lean_IR_UnreachableBranches_containsCtor___main(x_2, x_26); +x_28 = l_Lean_IR_UnreachableBranches_containsCtor(x_2, x_26); if (x_28 == 0) { lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; @@ -6825,7 +8551,7 @@ goto _start; else { lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_34 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_27); +x_34 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_27); x_35 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_35, 0, x_26); lean_ctor_set(x_35, 1, x_34); @@ -6846,7 +8572,7 @@ if (x_39 == 0) { lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; x_40 = lean_ctor_get(x_11, 0); -x_41 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_40); +x_41 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_40); lean_ctor_set(x_11, 0, x_41); x_42 = x_11; x_43 = lean_array_fset(x_10, x_3, x_42); @@ -6861,7 +8587,7 @@ lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean x_45 = lean_ctor_get(x_11, 0); lean_inc(x_45); lean_dec(x_11); -x_46 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_45); +x_46 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_45); x_47 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_47, 0, x_46); x_48 = x_47; @@ -6875,240 +8601,11 @@ goto _start; } } } -lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux___main(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -switch (lean_obj_tag(x_2)) { -case 0: -{ -uint8_t x_11; -x_11 = !lean_is_exclusive(x_2); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_2, 3); -x_13 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_12); -lean_ctor_set(x_2, 3, x_13); -return x_2; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_14 = lean_ctor_get(x_2, 0); -x_15 = lean_ctor_get(x_2, 1); -x_16 = lean_ctor_get(x_2, 2); -x_17 = lean_ctor_get(x_2, 3); -lean_inc(x_17); -lean_inc(x_16); -lean_inc(x_15); -lean_inc(x_14); -lean_dec(x_2); -x_18 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_17); -x_19 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_19, 0, x_14); -lean_ctor_set(x_19, 1, x_15); -lean_ctor_set(x_19, 2, x_16); -lean_ctor_set(x_19, 3, x_18); -return x_19; -} -} -case 1: -{ -uint8_t x_20; -x_20 = !lean_is_exclusive(x_2); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_21 = lean_ctor_get(x_2, 2); -x_22 = lean_ctor_get(x_2, 3); -x_23 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_21); -x_24 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_22); -lean_ctor_set(x_2, 3, x_24); -lean_ctor_set(x_2, 2, x_23); -return x_2; -} -else -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_25 = lean_ctor_get(x_2, 0); -x_26 = lean_ctor_get(x_2, 1); -x_27 = lean_ctor_get(x_2, 2); -x_28 = lean_ctor_get(x_2, 3); -lean_inc(x_28); -lean_inc(x_27); -lean_inc(x_26); -lean_inc(x_25); -lean_dec(x_2); -x_29 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_27); -x_30 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_28); -x_31 = lean_alloc_ctor(1, 4, 0); -lean_ctor_set(x_31, 0, x_25); -lean_ctor_set(x_31, 1, x_26); -lean_ctor_set(x_31, 2, x_29); -lean_ctor_set(x_31, 3, x_30); -return x_31; -} -} -case 10: -{ -uint8_t x_32; -x_32 = !lean_is_exclusive(x_2); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_33 = lean_ctor_get(x_2, 1); -x_34 = lean_ctor_get(x_2, 3); -x_35 = x_34; -x_36 = l_Std_HashMapImp_find_x3f___at_Lean_IR_UnreachableBranches_findVarValue___spec__1(x_1, x_33); -if (lean_obj_tag(x_36) == 0) -{ -lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_37 = lean_unsigned_to_nat(0u); -x_38 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__1(x_1, x_37, x_35); -x_39 = x_38; -lean_ctor_set(x_2, 3, x_39); -return x_2; -} -else -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_40 = lean_ctor_get(x_36, 0); -lean_inc(x_40); -lean_dec(x_36); -x_41 = lean_unsigned_to_nat(0u); -x_42 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__2(x_1, x_40, x_41, x_35); -lean_dec(x_40); -x_43 = x_42; -lean_ctor_set(x_2, 3, x_43); -return x_2; -} -} -else -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -x_44 = lean_ctor_get(x_2, 0); -x_45 = lean_ctor_get(x_2, 1); -x_46 = lean_ctor_get(x_2, 2); -x_47 = lean_ctor_get(x_2, 3); -lean_inc(x_47); -lean_inc(x_46); -lean_inc(x_45); -lean_inc(x_44); -lean_dec(x_2); -x_48 = x_47; -x_49 = l_Std_HashMapImp_find_x3f___at_Lean_IR_UnreachableBranches_findVarValue___spec__1(x_1, x_45); -if (lean_obj_tag(x_49) == 0) -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_50 = lean_unsigned_to_nat(0u); -x_51 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__1(x_1, x_50, x_48); -x_52 = x_51; -x_53 = lean_alloc_ctor(10, 4, 0); -lean_ctor_set(x_53, 0, x_44); -lean_ctor_set(x_53, 1, x_45); -lean_ctor_set(x_53, 2, x_46); -lean_ctor_set(x_53, 3, x_52); -return x_53; -} -else -{ -lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_54 = lean_ctor_get(x_49, 0); -lean_inc(x_54); -lean_dec(x_49); -x_55 = lean_unsigned_to_nat(0u); -x_56 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__2(x_1, x_54, x_55, x_48); -lean_dec(x_54); -x_57 = x_56; -x_58 = lean_alloc_ctor(10, 4, 0); -lean_ctor_set(x_58, 0, x_44); -lean_ctor_set(x_58, 1, x_45); -lean_ctor_set(x_58, 2, x_46); -lean_ctor_set(x_58, 3, x_57); -return x_58; -} -} -} -default: -{ -lean_object* x_59; -x_59 = lean_box(0); -x_3 = x_59; -goto block_10; -} -} -block_10: -{ -uint8_t x_4; -lean_dec(x_3); -x_4 = l_Lean_IR_FnBody_isTerminal(x_2); -if (x_4 == 0) -{ -lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; -x_5 = l_Lean_IR_FnBody_body(x_2); -x_6 = lean_box(13); -x_7 = l_Lean_IR_FnBody_setBody(x_2, x_6); -x_8 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_5); -x_9 = l_Lean_IR_FnBody_setBody(x_7, x_8); -return x_9; -} -else -{ -return x_2; -} -} -} -} -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__1(x_1, x_2, x_3); -lean_dec(x_1); -return x_4; -} -} -lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; -x_5 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___main___spec__2(x_1, x_2, x_3, x_4); -lean_dec(x_2); -lean_dec(x_1); -return x_5; -} -} -lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux___main___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_3; -x_3 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_2); -return x_3; -} -} -lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_Lean_IR_UnreachableBranches_elimDead(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_2) == 0) +switch (lean_obj_tag(x_2)) { +case 0: { uint8_t x_3; x_3 = !lean_is_exclusive(x_2); @@ -7116,7 +8613,7 @@ if (x_3 == 0) { lean_object* x_4; lean_object* x_5; x_4 = lean_ctor_get(x_2, 3); -x_5 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_4); +x_5 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_4); lean_ctor_set(x_2, 3, x_5); return x_2; } @@ -7132,7 +8629,246 @@ lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_dec(x_2); -x_10 = l_Lean_IR_UnreachableBranches_elimDeadAux___main(x_1, x_9); +x_10 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_9); +x_11 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_11, 0, x_6); +lean_ctor_set(x_11, 1, x_7); +lean_ctor_set(x_11, 2, x_8); +lean_ctor_set(x_11, 3, x_10); +return x_11; +} +} +case 1: +{ +uint8_t x_12; +x_12 = !lean_is_exclusive(x_2); +if (x_12 == 0) +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_2, 2); +x_14 = lean_ctor_get(x_2, 3); +x_15 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_13); +x_16 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_14); +lean_ctor_set(x_2, 3, x_16); +lean_ctor_set(x_2, 2, x_15); +return x_2; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_17 = lean_ctor_get(x_2, 0); +x_18 = lean_ctor_get(x_2, 1); +x_19 = lean_ctor_get(x_2, 2); +x_20 = lean_ctor_get(x_2, 3); +lean_inc(x_20); +lean_inc(x_19); +lean_inc(x_18); +lean_inc(x_17); +lean_dec(x_2); +x_21 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_19); +x_22 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_20); +x_23 = lean_alloc_ctor(1, 4, 0); +lean_ctor_set(x_23, 0, x_17); +lean_ctor_set(x_23, 1, x_18); +lean_ctor_set(x_23, 2, x_21); +lean_ctor_set(x_23, 3, x_22); +return x_23; +} +} +case 10: +{ +uint8_t x_24; +x_24 = !lean_is_exclusive(x_2); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_25 = lean_ctor_get(x_2, 1); +x_26 = lean_ctor_get(x_2, 3); +x_27 = x_26; +x_28 = l_Std_HashMapImp_find_x3f___at_Lean_IR_UnreachableBranches_findVarValue___spec__1(x_1, x_25); +if (lean_obj_tag(x_28) == 0) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = lean_unsigned_to_nat(0u); +x_30 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__1(x_1, x_29, x_27); +x_31 = x_30; +lean_ctor_set(x_2, 3, x_31); +return x_2; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_32 = lean_ctor_get(x_28, 0); +lean_inc(x_32); +lean_dec(x_28); +x_33 = lean_unsigned_to_nat(0u); +x_34 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__2(x_1, x_32, x_33, x_27); +lean_dec(x_32); +x_35 = x_34; +lean_ctor_set(x_2, 3, x_35); +return x_2; +} +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_36 = lean_ctor_get(x_2, 0); +x_37 = lean_ctor_get(x_2, 1); +x_38 = lean_ctor_get(x_2, 2); +x_39 = lean_ctor_get(x_2, 3); +lean_inc(x_39); +lean_inc(x_38); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_2); +x_40 = x_39; +x_41 = l_Std_HashMapImp_find_x3f___at_Lean_IR_UnreachableBranches_findVarValue___spec__1(x_1, x_37); +if (lean_obj_tag(x_41) == 0) +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_42 = lean_unsigned_to_nat(0u); +x_43 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__1(x_1, x_42, x_40); +x_44 = x_43; +x_45 = lean_alloc_ctor(10, 4, 0); +lean_ctor_set(x_45, 0, x_36); +lean_ctor_set(x_45, 1, x_37); +lean_ctor_set(x_45, 2, x_38); +lean_ctor_set(x_45, 3, x_44); +return x_45; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_46 = lean_ctor_get(x_41, 0); +lean_inc(x_46); +lean_dec(x_41); +x_47 = lean_unsigned_to_nat(0u); +x_48 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__2(x_1, x_46, x_47, x_40); +lean_dec(x_46); +x_49 = x_48; +x_50 = lean_alloc_ctor(10, 4, 0); +lean_ctor_set(x_50, 0, x_36); +lean_ctor_set(x_50, 1, x_37); +lean_ctor_set(x_50, 2, x_38); +lean_ctor_set(x_50, 3, x_49); +return x_50; +} +} +} +default: +{ +uint8_t x_51; +x_51 = l_Lean_IR_FnBody_isTerminal(x_2); +if (x_51 == 0) +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_52 = l_Lean_IR_FnBody_body(x_2); +x_53 = lean_box(13); +x_54 = l_Lean_IR_FnBody_setBody(x_2, x_53); +x_55 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_52); +x_56 = l_Lean_IR_FnBody_setBody(x_54, x_55); +return x_56; +} +else +{ +return x_2; +} +} +} +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__1(x_1, x_2, x_3); +lean_dec(x_1); +return x_4; +} +} +lean_object* l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_elimDeadAux___spec__2(x_1, x_2, x_3, x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_Lean_IR_UnreachableBranches_elimDeadAux___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_Lean_IR_UnreachableBranches_elimDead_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 2); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 3); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_4(x_2, x_4, x_5, x_6, x_7); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +lean_object* l_Lean_IR_UnreachableBranches_elimDead_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_UnreachableBranches_elimDead_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_IR_UnreachableBranches_elimDead(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_2) == 0) +{ +uint8_t x_3; +x_3 = !lean_is_exclusive(x_2); +if (x_3 == 0) +{ +lean_object* x_4; lean_object* x_5; +x_4 = lean_ctor_get(x_2, 3); +x_5 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_4); +lean_ctor_set(x_2, 3, x_5); +return x_2; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_6 = lean_ctor_get(x_2, 0); +x_7 = lean_ctor_get(x_2, 1); +x_8 = lean_ctor_get(x_2, 2); +x_9 = lean_ctor_get(x_2, 3); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_dec(x_2); +x_10 = l_Lean_IR_UnreachableBranches_elimDeadAux(x_1, x_9); x_11 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_11, 0, x_6); lean_ctor_set(x_11, 1, x_7); @@ -7156,6 +8892,27 @@ lean_dec(x_1); return x_3; } } +lean_object* l_Lean_IR_elimDeadBranches_match__1___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_IR_elimDeadBranches_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_elimDeadBranches_match__1___rarg), 2, 0); +return x_2; +} +} lean_object* l_Nat_foldAux___main___at_Lean_IR_elimDeadBranches___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { @@ -7255,7 +9012,7 @@ lean_ctor_set(x_14, 3, x_13); x_15 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_15, 0, x_9); lean_ctor_set(x_15, 1, x_12); -x_16 = l_Lean_IR_UnreachableBranches_inferMain___main___rarg(x_14, x_15); +x_16 = l_Lean_IR_UnreachableBranches_inferMain___rarg(x_14, x_15); x_17 = lean_ctor_get(x_16, 1); lean_inc(x_17); lean_dec(x_16); @@ -7306,7 +9063,7 @@ lean_ctor_set(x_34, 3, x_33); x_35 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_35, 0, x_29); lean_ctor_set(x_35, 1, x_32); -x_36 = l_Lean_IR_UnreachableBranches_inferMain___main___rarg(x_34, x_35); +x_36 = l_Lean_IR_UnreachableBranches_inferMain___rarg(x_34, x_35); x_37 = lean_ctor_get(x_36, 1); lean_inc(x_37); lean_dec(x_36); @@ -7381,40 +9138,42 @@ lean_dec_ref(res); res = initialize_Lean_Compiler_IR_CompilerM(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_IR_UnreachableBranches_Value_Inhabited = _init_l_Lean_IR_UnreachableBranches_Value_Inhabited(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Inhabited); -l_Lean_IR_UnreachableBranches_Value_HasBeq___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_HasBeq___closed__1(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_HasBeq___closed__1); -l_Lean_IR_UnreachableBranches_Value_HasBeq = _init_l_Lean_IR_UnreachableBranches_Value_HasBeq(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_HasBeq); -l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__1(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__1); -l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__2 = _init_l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__2(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__2); -l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__3 = _init_l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__3(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_addChoice___main___closed__3); -l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1 = _init_l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1(); -lean_mark_persistent(l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___main___spec__2___closed__1); -l_Lean_IR_UnreachableBranches_Value_format___main___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__1(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___main___closed__1); -l_Lean_IR_UnreachableBranches_Value_format___main___closed__2 = _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__2(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___main___closed__2); -l_Lean_IR_UnreachableBranches_Value_format___main___closed__3 = _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__3(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___main___closed__3); -l_Lean_IR_UnreachableBranches_Value_format___main___closed__4 = _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__4(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___main___closed__4); -l_Lean_IR_UnreachableBranches_Value_format___main___closed__5 = _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__5(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___main___closed__5); -l_Lean_IR_UnreachableBranches_Value_format___main___closed__6 = _init_l_Lean_IR_UnreachableBranches_Value_format___main___closed__6(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___main___closed__6); -l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat___closed__1(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat___closed__1); -l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat = _init_l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Lean_HasFormat); -l_Lean_IR_UnreachableBranches_Value_HasToString___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_HasToString___closed__1(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_HasToString___closed__1); -l_Lean_IR_UnreachableBranches_Value_HasToString = _init_l_Lean_IR_UnreachableBranches_Value_HasToString(); -lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_HasToString); +l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__1 = _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__1(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__1); +l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2___closed__1(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2___closed__1); +l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2 = _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__2); +l_Lean_IR_UnreachableBranches_Value_addChoice___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_addChoice___closed__1(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_addChoice___closed__1); +l_Lean_IR_UnreachableBranches_Value_addChoice___closed__2 = _init_l_Lean_IR_UnreachableBranches_Value_addChoice___closed__2(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_addChoice___closed__2); +l_Lean_IR_UnreachableBranches_Value_addChoice___closed__3 = _init_l_Lean_IR_UnreachableBranches_Value_addChoice___closed__3(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_addChoice___closed__3); +l_Lean_IR_UnreachableBranches_Value_addChoice___closed__4 = _init_l_Lean_IR_UnreachableBranches_Value_addChoice___closed__4(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_addChoice___closed__4); +l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1 = _init_l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1(); +lean_mark_persistent(l_List_foldl___main___at_Lean_IR_UnreachableBranches_Value_merge___spec__2___closed__1); +l_Lean_IR_UnreachableBranches_Value_format___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_format___closed__1(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___closed__1); +l_Lean_IR_UnreachableBranches_Value_format___closed__2 = _init_l_Lean_IR_UnreachableBranches_Value_format___closed__2(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___closed__2); +l_Lean_IR_UnreachableBranches_Value_format___closed__3 = _init_l_Lean_IR_UnreachableBranches_Value_format___closed__3(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___closed__3); +l_Lean_IR_UnreachableBranches_Value_format___closed__4 = _init_l_Lean_IR_UnreachableBranches_Value_format___closed__4(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___closed__4); +l_Lean_IR_UnreachableBranches_Value_format___closed__5 = _init_l_Lean_IR_UnreachableBranches_Value_format___closed__5(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___closed__5); +l_Lean_IR_UnreachableBranches_Value_format___closed__6 = _init_l_Lean_IR_UnreachableBranches_Value_format___closed__6(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_format___closed__6); +l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3___closed__1(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3___closed__1); +l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3 = _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__3); +l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4___closed__1 = _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4___closed__1(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4___closed__1); +l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4 = _init_l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_Value_Lean_Compiler_IR_ElimDeadBranches___instance__4); l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__2___closed__1 = _init_l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__2___closed__1(); lean_mark_persistent(l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__2___closed__1); l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__2___closed__2 = _init_l_Lean_IR_UnreachableBranches_mkFunctionSummariesExtension___lambda__2___closed__2(); @@ -7444,6 +9203,10 @@ if (lean_io_result_is_error(res)) return res; l_Lean_IR_UnreachableBranches_functionSummariesExt = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_IR_UnreachableBranches_functionSummariesExt); lean_dec_ref(res); +l_Lean_IR_UnreachableBranches_InterpContext_currFnIdx___default = _init_l_Lean_IR_UnreachableBranches_InterpContext_currFnIdx___default(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_InterpContext_currFnIdx___default); +l_Lean_IR_UnreachableBranches_InterpContext_lctx___default = _init_l_Lean_IR_UnreachableBranches_InterpContext_lctx___default(); +lean_mark_persistent(l_Lean_IR_UnreachableBranches_InterpContext_lctx___default); l_Lean_IR_UnreachableBranches_updateVarAssignment___closed__1 = _init_l_Lean_IR_UnreachableBranches_updateVarAssignment___closed__1(); lean_mark_persistent(l_Lean_IR_UnreachableBranches_updateVarAssignment___closed__1); l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_inferStep___spec__1___closed__1 = _init_l_Array_umapMAux___main___at_Lean_IR_UnreachableBranches_inferStep___spec__1___closed__1(); diff --git a/stage0/stdlib/Lean/Compiler/IR/ElimDeadVars.c b/stage0/stdlib/Lean/Compiler/IR/ElimDeadVars.c index 6934f2848a..bb643bd342 100644 --- a/stage0/stdlib/Lean/Compiler/IR/ElimDeadVars.c +++ b/stage0/stdlib/Lean/Compiler/IR/ElimDeadVars.c @@ -27,6 +27,7 @@ lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_freeIndices(lean_object*); lean_object* l_Lean_IR_FnBody_elimDead_match__2(lean_object*); +lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(lean_object*, lean_object*); uint8_t l_Array_isEmpty___rarg(lean_object*); lean_object* l_Lean_IR_reshapeWithoutDeadAux_match__1(lean_object*); lean_object* l_Lean_IR_reshapeWithoutDeadAux(lean_object*, lean_object*, lean_object*); @@ -43,7 +44,6 @@ lean_object* l_Lean_IR_FnBody_elimDead_match__1(lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_IR_FnBody_elimDead___spec__2(lean_object*, lean_object*); lean_object* l_Array_back___at_Lean_IR_reshapeWithoutDeadAux___spec__1___boxed(lean_object*); lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_collectFreeIndices(lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_elimDead_match__3(lean_object*); @@ -152,7 +152,7 @@ case 0: lean_object* x_7; lean_object* x_8; x_7 = lean_ctor_get(x_5, 0); lean_inc(x_7); -x_8 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_3, x_7); +x_8 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_3, x_7); lean_dec(x_7); if (lean_obj_tag(x_8) == 0) { @@ -178,7 +178,7 @@ case 1: lean_object* x_13; lean_object* x_14; x_13 = lean_ctor_get(x_5, 0); lean_inc(x_13); -x_14 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_3, x_13); +x_14 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_3, x_13); lean_dec(x_13); if (lean_obj_tag(x_14) == 0) { diff --git a/stage0/stdlib/Lean/Compiler/IR/FreeVars.c b/stage0/stdlib/Lean/Compiler/IR/FreeVars.c index 5ff9a532ef..ffb8d707b4 100644 --- a/stage0/stdlib/Lean/Compiler/IR/FreeVars.c +++ b/stage0/stdlib/Lean/Compiler/IR/FreeVars.c @@ -13,152 +13,168 @@ #ifdef __cplusplus extern "C" { #endif -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_FreeIndices_collectFnBody___main(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_IR_HasIndex_visitJP(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectJP___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_Expr_hasFreeVar___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_14__collectIndex(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray(lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_25__collectExpr___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_HasIndex_visitFnBody___main___boxed(lean_object*, lean_object*); +lean_object* l_Lean_IR_HasIndex_visitArg_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip___rarg(lean_object*); lean_object* l_Lean_IR_HasIndex_visitFnBody___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_10__collectParams___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg(lean_object*, lean_object*); +lean_object* l_Lean_IR_MaxIndex_collectDecl_match__1(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withParams(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_IR_FreeIndices_insertParams___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_22__collectArg___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__1(lean_object*, lean_object*); -uint8_t l_Lean_IR_HasIndex_visitFnBody___main(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectJP(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withVar(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_IR_HasIndex_visitFnBody_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___boxed(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_IR_HasIndex_visitExpr(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectJP(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_MaxIndex_collectFnBody(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_MaxIndex_HasAndthen; -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_19__withJP(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_2__collect(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitArgs___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_HasIndex_visitExpr___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_9__collectParam___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__1(lean_object*, lean_object*); +uint8_t l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectExpr(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_15__collectVar(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectJP___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_skip___boxed(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectVar___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collect___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr_match__1(lean_object*); lean_object* l_Lean_IR_FreeIndices_insertParams___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__1___boxed(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2___closed__1; +lean_object* l_Lean_IR_MaxIndex_collectFnBody___closed__1; lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitParams___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_AltCore_body(lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__1(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withIndex(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_HasIndex_visitArg_match__1(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectExpr_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_MaxIndex_collectFnBody_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectVar(lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_24__collectArgs(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_8__collectArgs(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_4__collectJP___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_seq(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip___rarg___boxed(lean_object*); +lean_object* l_Lean_IR_HasIndex_visitExpr_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2; lean_object* l_Std_PersistentHashMap_forM___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_MaxIndex_HasAndthen___closed__1; -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_MaxIndex_collectFnBody___main(lean_object*, lean_object*); -lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__1(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_seq(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectVar(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectExpr_match__1(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParam(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__1(lean_object*, lean_object*); uint8_t l_Lean_IR_HasIndex_visitParams(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_freeIndices(lean_object*); lean_object* l_Array_iterateMAux___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_IR_Expr_hasFreeVar(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_13__skip___rarg(lean_object*); -lean_object* l_Lean_IR_FreeIndices_collectFnBody___main___closed__1; -lean_object* l___private_Lean_Compiler_IR_FreeVars_3__collectVar(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg___boxed(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip___boxed(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_FreeIndices_collectFnBody(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_8__collectArgs___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_12__collectAlts___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_16__collectJP(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_22__collectArg(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_24__collectArgs___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_14__collectIndex___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_26__collectAlts___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParam___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_hasFreeVar___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_HasIndex_visitVar___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg_match__1(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__1(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_IR_Arg_hasFreeVar(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_21__seq(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_HasIndex_visitJP___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_18__withVar(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_Arg_hasFreeVar___boxed(lean_object*, lean_object*); -uint8_t l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Id_Monad; lean_object* l_Lean_IR_HasIndex_visitArg___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_FreeIndices_insertParams(lean_object*, lean_object*); -lean_object* l_Lean_IR_FreeIndices_HasAndthen; +lean_object* l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1; lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitArgs___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_HasIndex_visitArgs___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_1__skip(lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_10__collectParams(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_13__skip(lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_3__collectVar___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_4__collectJP(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_6__collectArg(lean_object*, lean_object*); -lean_object* l_Lean_IR_FreeIndices_HasAndthen___closed__1; -lean_object* l___private_Lean_Compiler_IR_FreeVars_20__withParams___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_1__skip___boxed(lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withJP(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_skip(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg_match__1(lean_object*); +lean_object* l_Lean_IR_FreeIndices_collectFnBody___closed__1; +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1___boxed(lean_object*, lean_object*); uint8_t l_Lean_IR_HasIndex_visitArg(lean_object*, lean_object*); uint8_t l_Lean_IR_HasIndex_visitArgs(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_MaxIndex_collectFnBody___main___closed__1; +lean_object* l_Lean_IR_HasIndex_visitExpr_match__1(lean_object*); +lean_object* l_Lean_IR_HasIndex_visitFnBody_match__1(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withParams___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_IR_HasIndex_visitFnBody(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_6__collectArg___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_16__collectJP___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_maxIndex(lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_15__collectVar___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_26__collectAlts(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_5__seq(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_FreeIndices_collectFnBody_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts(lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_IR_FreeIndices_insertParams___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___rarg(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitParams___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_13__skip___boxed(lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_9__collectParam(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_20__withParams(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1___closed__1; +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray(lean_object*); uint8_t l_Lean_IR_HasIndex_visitVar(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_IR_MaxIndex_collectFnBody_match__1(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collect(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__1(lean_object*, lean_object*); lean_object* l_Lean_IR_Decl_maxIndex(lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_2__collect___boxed(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_25__collectExpr(lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_13__skip___rarg___boxed(lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectVar___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray(lean_object*); uint8_t l_Lean_IR_FnBody_hasFreeVar(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_17__withIndex(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_12__collectAlts(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_MaxIndex_collectDecl_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_FreeIndices_collectFnBody_match__1(lean_object*); lean_object* l_Lean_IR_HasIndex_visitParams___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_MaxIndex_collectDecl(lean_object*, lean_object*); lean_object* l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_11__collectExpr(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_collectFreeIndices(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_FreeVars_1__skip(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_skip(lean_object* x_1) { _start: { lean_inc(x_1); return x_1; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_1__skip___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_skip___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l___private_Lean_Compiler_IR_FreeVars_1__skip(x_1); +x_2 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_skip(x_1); lean_dec(x_1); return x_2; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_2__collect(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collect(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; @@ -175,17 +191,17 @@ return x_1; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_2__collect___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collect___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_FreeVars_2__collect(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collect(x_1, x_2); lean_dec(x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_3__collectVar(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectVar(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; @@ -202,17 +218,17 @@ return x_1; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_3__collectVar___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectVar___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_FreeVars_3__collectVar(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectVar(x_1, x_2); lean_dec(x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_4__collectJP(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectJP(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; @@ -229,17 +245,17 @@ return x_1; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_4__collectJP___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectJP___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_FreeVars_4__collectJP(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectJP(x_1, x_2); lean_dec(x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_5__seq(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_seq(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; @@ -248,23 +264,53 @@ x_5 = lean_apply_1(x_2, x_4); return x_5; } } -static lean_object* _init_l_Lean_IR_MaxIndex_HasAndthen___closed__1() { +static lean_object* _init_l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_5__seq), 3, 0); +x_1 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_seq), 3, 0); return x_1; } } -static lean_object* _init_l_Lean_IR_MaxIndex_HasAndthen() { +static lean_object* _init_l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1() { _start: { lean_object* x_1; -x_1 = l_Lean_IR_MaxIndex_HasAndthen___closed__1; +x_1 = l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1___closed__1; return x_1; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_6__collectArg(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; +lean_dec(x_2); +x_6 = lean_apply_1(x_3, x_1); +return x_6; +} +} +} +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -290,17 +336,17 @@ return x_2; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_6__collectArg___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_FreeVars_6__collectArg(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg(x_1, x_2); lean_dec(x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; @@ -312,15 +358,15 @@ x_7 = l_Array_iterateMAux___main___rarg(x_5, lean_box(0), x_1, x_4, x_6, x_3); return x_7; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_7__collectArray___rarg), 3, 0); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___rarg), 3, 0); return x_2; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; uint8_t x_6; @@ -336,7 +382,7 @@ else { lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; x_7 = lean_array_fget(x_2, x_3); -x_8 = l___private_Lean_Compiler_IR_FreeVars_6__collectArg(x_7, x_4); +x_8 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg(x_7, x_4); lean_dec(x_4); lean_dec(x_7); x_9 = lean_unsigned_to_nat(1u); @@ -348,53 +394,53 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; x_3 = lean_unsigned_to_nat(0u); -x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_1, x_1, x_3, x_2); +x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_1, x_1, x_3, x_2); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_8__collectArgs(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; x_3 = lean_unsigned_to_nat(0u); -x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_1, x_1, x_3, x_2); +x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_1, x_1, x_3, x_2); return x_4; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_1, x_2, x_3, x_4); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_1, x_2, x_3, x_4); lean_dec(x_2); lean_dec(x_1); return x_5; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__1(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__1(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_8__collectArgs___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_FreeVars_8__collectArgs(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_9__collectParam(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParam(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; uint8_t x_4; @@ -412,17 +458,17 @@ return x_3; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_9__collectParam___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParam___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_FreeVars_9__collectParam(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParam(x_1, x_2); lean_dec(x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; uint8_t x_6; @@ -438,7 +484,7 @@ else { lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; x_7 = lean_array_fget(x_2, x_3); -x_8 = l___private_Lean_Compiler_IR_FreeVars_9__collectParam(x_7, x_4); +x_8 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParam(x_7, x_4); lean_dec(x_4); lean_dec(x_7); x_9 = lean_unsigned_to_nat(1u); @@ -450,53 +496,402 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; x_3 = lean_unsigned_to_nat(0u); -x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2(x_1, x_1, x_3, x_2); +x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2(x_1, x_1, x_3, x_2); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_10__collectParams(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; x_3 = lean_unsigned_to_nat(0u); -x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2(x_1, x_1, x_3, x_2); +x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2(x_1, x_1, x_3, x_2); return x_4; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2(x_1, x_2, x_3, x_4); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2(x_1, x_2, x_3, x_4); lean_dec(x_2); lean_dec(x_1); return x_5; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__1(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__1(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_10__collectParams___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_FreeVars_10__collectParams(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_11__collectExpr(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectExpr_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_apply_2(x_2, x_16, x_17); +return x_18; +} +case 1: +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_19 = lean_ctor_get(x_1, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_1, 1); +lean_inc(x_20); +lean_dec(x_1); +x_21 = lean_apply_2(x_3, x_19, x_20); +return x_21; +} +case 2: +{ +lean_object* x_22; lean_object* x_23; uint8_t x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_22 = lean_ctor_get(x_1, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 1); +lean_inc(x_23); +x_24 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_25 = lean_ctor_get(x_1, 2); +lean_inc(x_25); +lean_dec(x_1); +x_26 = lean_box(x_24); +x_27 = lean_apply_4(x_4, x_22, x_23, x_26, x_25); +return x_27; +} +case 3: +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_28 = lean_ctor_get(x_1, 0); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 1); +lean_inc(x_29); +lean_dec(x_1); +x_30 = lean_apply_2(x_5, x_28, x_29); +return x_30; +} +case 4: +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = lean_ctor_get(x_1, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_1, 1); +lean_inc(x_32); +lean_dec(x_1); +x_33 = lean_apply_2(x_6, x_31, x_32); +return x_33; +} +case 5: +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_34 = lean_ctor_get(x_1, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_1, 1); +lean_inc(x_35); +x_36 = lean_ctor_get(x_1, 2); +lean_inc(x_36); +lean_dec(x_1); +x_37 = lean_apply_3(x_7, x_34, x_35, x_36); +return x_37; +} +case 6: +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_38 = lean_ctor_get(x_1, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_1, 1); +lean_inc(x_39); +lean_dec(x_1); +x_40 = lean_apply_2(x_8, x_38, x_39); +return x_40; +} +case 7: +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_41 = lean_ctor_get(x_1, 0); +lean_inc(x_41); +x_42 = lean_ctor_get(x_1, 1); +lean_inc(x_42); +lean_dec(x_1); +x_43 = lean_apply_2(x_9, x_41, x_42); +return x_43; +} +case 8: +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_44 = lean_ctor_get(x_1, 0); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 1); +lean_inc(x_45); +lean_dec(x_1); +x_46 = lean_apply_2(x_10, x_44, x_45); +return x_46; +} +case 9: +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +lean_dec(x_1); +x_49 = lean_apply_2(x_11, x_47, x_48); +return x_49; +} +case 10: +{ +lean_object* x_50; lean_object* x_51; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_50 = lean_ctor_get(x_1, 0); +lean_inc(x_50); +lean_dec(x_1); +x_51 = lean_apply_1(x_12, x_50); +return x_51; +} +case 11: +{ +lean_object* x_52; lean_object* x_53; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); +lean_dec(x_1); +x_53 = lean_apply_1(x_13, x_52); +return x_53; +} +case 12: +{ +lean_object* x_54; lean_object* x_55; +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_54 = lean_ctor_get(x_1, 0); +lean_inc(x_54); +lean_dec(x_1); +x_55 = lean_apply_1(x_14, x_54); +return x_55; +} +default: +{ +lean_object* x_56; lean_object* x_57; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_56 = lean_ctor_get(x_1, 0); +lean_inc(x_56); +lean_dec(x_1); +x_57 = lean_apply_1(x_15, x_56); +return x_57; +} +} +} +} +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectExpr_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectExpr_match__1___rarg), 15, 0); +return x_2; +} +} +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectExpr(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_1)) { @@ -507,7 +902,7 @@ x_3 = lean_ctor_get(x_1, 1); lean_inc(x_3); lean_dec(x_1); x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_3, x_3, x_4, x_2); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_3, x_3, x_4, x_2); lean_dec(x_3); return x_5; } @@ -525,7 +920,7 @@ if (x_8 == 0) lean_object* x_9; lean_object* x_10; lean_dec(x_6); x_9 = lean_unsigned_to_nat(0u); -x_10 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_7, x_7, x_9, x_2); +x_10 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_7, x_7, x_9, x_2); lean_dec(x_7); return x_10; } @@ -534,7 +929,7 @@ else lean_object* x_11; lean_object* x_12; lean_dec(x_2); x_11 = lean_unsigned_to_nat(0u); -x_12 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_7, x_7, x_11, x_6); +x_12 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_7, x_7, x_11, x_6); lean_dec(x_7); return x_12; } @@ -564,7 +959,7 @@ x_15 = lean_ctor_get(x_1, 1); lean_inc(x_15); lean_dec(x_1); x_16 = lean_unsigned_to_nat(0u); -x_17 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_15, x_15, x_16, x_2); +x_17 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_15, x_15, x_16, x_2); lean_dec(x_15); return x_17; } @@ -575,7 +970,7 @@ x_18 = lean_ctor_get(x_1, 1); lean_inc(x_18); lean_dec(x_1); x_19 = lean_unsigned_to_nat(0u); -x_20 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_18, x_18, x_19, x_2); +x_20 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_18, x_18, x_19, x_2); lean_dec(x_18); return x_20; } @@ -593,7 +988,7 @@ if (x_23 == 0) lean_object* x_24; lean_object* x_25; lean_dec(x_21); x_24 = lean_unsigned_to_nat(0u); -x_25 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_22, x_22, x_24, x_2); +x_25 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_22, x_22, x_24, x_2); lean_dec(x_22); return x_25; } @@ -602,7 +997,7 @@ else lean_object* x_26; lean_object* x_27; lean_dec(x_2); x_26 = lean_unsigned_to_nat(0u); -x_27 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_22, x_22, x_26, x_21); +x_27 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_22, x_22, x_26, x_21); lean_dec(x_22); return x_27; } @@ -687,7 +1082,7 @@ return x_34; } } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; uint8_t x_7; @@ -717,61 +1112,448 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__2(x_1, x_2, x_2, x_4, x_3); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__2(x_1, x_2, x_2, x_4, x_3); return x_5; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_12__collectAlts(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__2(x_1, x_2, x_2, x_4, x_3); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__2(x_1, x_2, x_2, x_4, x_3); return x_5; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__2(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__2(x_1, x_2, x_3, x_4, x_5); lean_dec(x_3); lean_dec(x_2); return x_6; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_FreeVars_7__collectArray___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__1(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__1(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_12__collectAlts___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_FreeVars_12__collectAlts(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -static lean_object* _init_l_Lean_IR_MaxIndex_collectFnBody___main___closed__1() { +lean_object* l_Lean_IR_MaxIndex_collectFnBody_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +x_18 = lean_ctor_get(x_1, 2); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 3); +lean_inc(x_19); +lean_dec(x_1); +x_20 = lean_apply_4(x_2, x_16, x_17, x_18, x_19); +return x_20; +} +case 1: +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_21 = lean_ctor_get(x_1, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_1, 1); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 2); +lean_inc(x_23); +x_24 = lean_ctor_get(x_1, 3); +lean_inc(x_24); +lean_dec(x_1); +x_25 = lean_apply_4(x_3, x_21, x_22, x_23, x_24); +return x_25; +} +case 2: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_26 = lean_ctor_get(x_1, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_1, 1); +lean_inc(x_27); +x_28 = lean_ctor_get(x_1, 2); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 3); +lean_inc(x_29); +lean_dec(x_1); +x_30 = lean_apply_4(x_4, x_26, x_27, x_28, x_29); +return x_30; +} +case 3: +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = lean_ctor_get(x_1, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_1, 1); +lean_inc(x_32); +x_33 = lean_ctor_get(x_1, 2); +lean_inc(x_33); +lean_dec(x_1); +x_34 = lean_apply_3(x_7, x_31, x_32, x_33); +return x_34; +} +case 4: +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_35 = lean_ctor_get(x_1, 0); +lean_inc(x_35); +x_36 = lean_ctor_get(x_1, 1); +lean_inc(x_36); +x_37 = lean_ctor_get(x_1, 2); +lean_inc(x_37); +x_38 = lean_ctor_get(x_1, 3); +lean_inc(x_38); +lean_dec(x_1); +x_39 = lean_apply_4(x_5, x_35, x_36, x_37, x_38); +return x_39; +} +case 5: +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_40 = lean_ctor_get(x_1, 0); +lean_inc(x_40); +x_41 = lean_ctor_get(x_1, 1); +lean_inc(x_41); +x_42 = lean_ctor_get(x_1, 2); +lean_inc(x_42); +x_43 = lean_ctor_get(x_1, 3); +lean_inc(x_43); +x_44 = lean_ctor_get(x_1, 4); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 5); +lean_inc(x_45); +lean_dec(x_1); +x_46 = lean_apply_6(x_6, x_40, x_41, x_42, x_43, x_44, x_45); +return x_46; +} +case 6: +{ +lean_object* x_47; lean_object* x_48; uint8_t x_49; uint8_t x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +x_49 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_50 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_51 = lean_ctor_get(x_1, 2); +lean_inc(x_51); +lean_dec(x_1); +x_52 = lean_box(x_49); +x_53 = lean_box(x_50); +x_54 = lean_apply_5(x_8, x_47, x_48, x_52, x_53, x_51); +return x_54; +} +case 7: +{ +lean_object* x_55; lean_object* x_56; uint8_t x_57; uint8_t x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_55 = lean_ctor_get(x_1, 0); +lean_inc(x_55); +x_56 = lean_ctor_get(x_1, 1); +lean_inc(x_56); +x_57 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_58 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_59 = lean_ctor_get(x_1, 2); +lean_inc(x_59); +lean_dec(x_1); +x_60 = lean_box(x_57); +x_61 = lean_box(x_58); +x_62 = lean_apply_5(x_9, x_55, x_56, x_60, x_61, x_59); +return x_62; +} +case 8: +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_63 = lean_ctor_get(x_1, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_1, 1); +lean_inc(x_64); +lean_dec(x_1); +x_65 = lean_apply_2(x_10, x_63, x_64); +return x_65; +} +case 9: +{ +lean_object* x_66; lean_object* x_67; lean_object* x_68; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_66 = lean_ctor_get(x_1, 0); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 1); +lean_inc(x_67); +lean_dec(x_1); +x_68 = lean_apply_2(x_11, x_66, x_67); +return x_68; +} +case 10: +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_69 = lean_ctor_get(x_1, 0); +lean_inc(x_69); +x_70 = lean_ctor_get(x_1, 1); +lean_inc(x_70); +x_71 = lean_ctor_get(x_1, 2); +lean_inc(x_71); +x_72 = lean_ctor_get(x_1, 3); +lean_inc(x_72); +lean_dec(x_1); +x_73 = lean_apply_4(x_12, x_69, x_70, x_71, x_72); +return x_73; +} +case 11: +{ +lean_object* x_74; lean_object* x_75; +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_74 = lean_ctor_get(x_1, 0); +lean_inc(x_74); +lean_dec(x_1); +x_75 = lean_apply_1(x_14, x_74); +return x_75; +} +case 12: +{ +lean_object* x_76; lean_object* x_77; lean_object* x_78; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_76 = lean_ctor_get(x_1, 0); +lean_inc(x_76); +x_77 = lean_ctor_get(x_1, 1); +lean_inc(x_77); +lean_dec(x_1); +x_78 = lean_apply_2(x_13, x_76, x_77); +return x_78; +} +default: +{ +lean_object* x_79; lean_object* x_80; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_79 = lean_box(0); +x_80 = lean_apply_1(x_15, x_79); +return x_80; +} +} +} +} +lean_object* l_Lean_IR_MaxIndex_collectFnBody_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_MaxIndex_collectFnBody_match__1___rarg), 15, 0); +return x_2; +} +} +static lean_object* _init_l_Lean_IR_MaxIndex_collectFnBody___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_IR_MaxIndex_collectFnBody___main), 2, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_IR_MaxIndex_collectFnBody), 2, 0); return x_1; } } -lean_object* l_Lean_IR_MaxIndex_collectFnBody___main(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_IR_MaxIndex_collectFnBody(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_1)) { @@ -790,7 +1572,7 @@ if (x_6 == 0) { lean_object* x_7; lean_dec(x_3); -x_7 = l___private_Lean_Compiler_IR_FreeVars_11__collectExpr(x_4, x_2); +x_7 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectExpr(x_4, x_2); x_1 = x_5; x_2 = x_7; goto _start; @@ -799,7 +1581,7 @@ else { lean_object* x_9; lean_dec(x_2); -x_9 = l___private_Lean_Compiler_IR_FreeVars_11__collectExpr(x_4, x_3); +x_9 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectExpr(x_4, x_3); x_1 = x_5; x_2 = x_9; goto _start; @@ -822,9 +1604,9 @@ if (x_15 == 0) { lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_dec(x_11); -x_16 = l_Lean_IR_MaxIndex_collectFnBody___main(x_13, x_2); +x_16 = l_Lean_IR_MaxIndex_collectFnBody(x_13, x_2); x_17 = lean_unsigned_to_nat(0u); -x_18 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2(x_12, x_12, x_17, x_16); +x_18 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2(x_12, x_12, x_17, x_16); lean_dec(x_12); x_1 = x_14; x_2 = x_18; @@ -834,9 +1616,9 @@ else { lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_dec(x_2); -x_20 = l_Lean_IR_MaxIndex_collectFnBody___main(x_13, x_11); +x_20 = l_Lean_IR_MaxIndex_collectFnBody(x_13, x_11); x_21 = lean_unsigned_to_nat(0u); -x_22 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2(x_12, x_12, x_21, x_20); +x_22 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2(x_12, x_12, x_21, x_20); lean_dec(x_12); x_1 = x_14; x_2 = x_22; @@ -858,7 +1640,7 @@ if (x_27 == 0) { lean_object* x_28; lean_dec(x_24); -x_28 = l___private_Lean_Compiler_IR_FreeVars_6__collectArg(x_25, x_2); +x_28 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg(x_25, x_2); lean_dec(x_2); lean_dec(x_25); x_1 = x_26; @@ -869,7 +1651,7 @@ else { lean_object* x_30; lean_dec(x_2); -x_30 = l___private_Lean_Compiler_IR_FreeVars_6__collectArg(x_25, x_24); +x_30 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg(x_25, x_24); lean_dec(x_24); lean_dec(x_25); x_1 = x_26; @@ -1024,9 +1806,9 @@ if (x_61 == 0) { lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_dec(x_59); -x_62 = l_Lean_IR_MaxIndex_collectFnBody___main___closed__1; +x_62 = l_Lean_IR_MaxIndex_collectFnBody___closed__1; x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__2(x_62, x_60, x_60, x_63, x_2); +x_64 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__2(x_62, x_60, x_60, x_63, x_2); lean_dec(x_60); return x_64; } @@ -1034,9 +1816,9 @@ else { lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_dec(x_2); -x_65 = l_Lean_IR_MaxIndex_collectFnBody___main___closed__1; +x_65 = l_Lean_IR_MaxIndex_collectFnBody___closed__1; x_66 = lean_unsigned_to_nat(0u); -x_67 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_12__collectAlts___spec__2(x_65, x_60, x_60, x_66, x_59); +x_67 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectAlts___spec__2(x_65, x_60, x_60, x_66, x_59); lean_dec(x_60); return x_67; } @@ -1047,7 +1829,7 @@ lean_object* x_68; lean_object* x_69; x_68 = lean_ctor_get(x_1, 0); lean_inc(x_68); lean_dec(x_1); -x_69 = l___private_Lean_Compiler_IR_FreeVars_6__collectArg(x_68, x_2); +x_69 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArg(x_68, x_2); lean_dec(x_2); lean_dec(x_68); return x_69; @@ -1066,7 +1848,7 @@ if (x_72 == 0) lean_object* x_73; lean_object* x_74; lean_dec(x_70); x_73 = lean_unsigned_to_nat(0u); -x_74 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_71, x_71, x_73, x_2); +x_74 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_71, x_71, x_73, x_2); lean_dec(x_71); return x_74; } @@ -1075,7 +1857,7 @@ else lean_object* x_75; lean_object* x_76; lean_dec(x_2); x_75 = lean_unsigned_to_nat(0u); -x_76 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_8__collectArgs___spec__2(x_71, x_71, x_75, x_70); +x_76 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectArgs___spec__2(x_71, x_71, x_75, x_70); lean_dec(x_71); return x_76; } @@ -1110,12 +1892,49 @@ goto _start; } } } -lean_object* l_Lean_IR_MaxIndex_collectFnBody(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_IR_MaxIndex_collectDecl_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; -x_3 = l_Lean_IR_MaxIndex_collectFnBody___main(x_1, x_2); -return x_3; +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 2); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 3); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_4(x_2, x_4, x_5, x_6, x_7); +return x_8; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_2); +x_9 = lean_ctor_get(x_1, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +x_11 = lean_ctor_get(x_1, 2); +lean_inc(x_11); +x_12 = lean_ctor_get(x_1, 3); +lean_inc(x_12); +lean_dec(x_1); +x_13 = lean_apply_4(x_3, x_9, x_10, x_11, x_12); +return x_13; +} +} +} +lean_object* l_Lean_IR_MaxIndex_collectDecl_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_MaxIndex_collectDecl_match__1___rarg), 3, 0); +return x_2; } } lean_object* l_Lean_IR_MaxIndex_collectDecl(lean_object* x_1, lean_object* x_2) { @@ -1130,9 +1949,9 @@ x_4 = lean_ctor_get(x_1, 3); lean_inc(x_4); lean_dec(x_1); x_5 = lean_unsigned_to_nat(0u); -x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2(x_3, x_3, x_5, x_2); +x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2(x_3, x_3, x_5, x_2); lean_dec(x_3); -x_7 = l_Lean_IR_MaxIndex_collectFnBody___main(x_4, x_6); +x_7 = l_Lean_IR_MaxIndex_collectFnBody(x_4, x_6); return x_7; } else @@ -1142,7 +1961,7 @@ x_8 = lean_ctor_get(x_1, 1); lean_inc(x_8); lean_dec(x_1); x_9 = lean_unsigned_to_nat(0u); -x_10 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_10__collectParams___spec__2(x_8, x_8, x_9, x_2); +x_10 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_MaxIndex_collectParams___spec__2(x_8, x_8, x_9, x_2); lean_dec(x_8); return x_10; } @@ -1153,7 +1972,7 @@ _start: { lean_object* x_2; lean_object* x_3; x_2 = lean_unsigned_to_nat(0u); -x_3 = l_Lean_IR_MaxIndex_collectFnBody___main(x_1, x_2); +x_3 = l_Lean_IR_MaxIndex_collectFnBody(x_1, x_2); return x_3; } } @@ -1166,40 +1985,40 @@ x_3 = l_Lean_IR_MaxIndex_collectDecl(x_1, x_2); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_13__skip___rarg(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip___rarg(lean_object* x_1) { _start: { lean_inc(x_1); return x_1; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_13__skip(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_13__skip___rarg___boxed), 1, 0); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip___rarg___boxed), 1, 0); return x_2; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_13__skip___rarg___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip___rarg___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l___private_Lean_Compiler_IR_FreeVars_13__skip___rarg(x_1); +x_2 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip___rarg(x_1); lean_dec(x_1); return x_2; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_13__skip___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l___private_Lean_Compiler_IR_FreeVars_13__skip(x_1); +x_2 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_skip(x_1); lean_dec(x_1); return x_2; } } -lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -1246,11 +2065,11 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_14__collectIndex(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_1); +x_4 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_1); if (lean_obj_tag(x_4) == 0) { lean_object* x_5; lean_object* x_6; @@ -1266,30 +2085,30 @@ return x_3; } } } -lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_1, x_2); +x_3 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_1, x_2); lean_dec(x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_14__collectIndex___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_FreeVars_14__collectIndex(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_15__collectVar(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectVar(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_1); +x_4 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_1); if (lean_obj_tag(x_4) == 0) { lean_object* x_5; lean_object* x_6; @@ -1305,20 +2124,20 @@ return x_3; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_15__collectVar___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectVar___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_FreeVars_15__collectVar(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectVar(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_16__collectJP(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectJP(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_1); +x_4 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_1); if (lean_obj_tag(x_4) == 0) { lean_object* x_5; lean_object* x_6; @@ -1334,16 +2153,16 @@ return x_3; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_16__collectJP___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectJP___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_FreeVars_16__collectJP(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectJP(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_17__withIndex(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withIndex(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; @@ -1353,7 +2172,7 @@ x_7 = lean_apply_2(x_2, x_6, x_4); return x_7; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_18__withVar(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withVar(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; @@ -1363,7 +2182,7 @@ x_7 = lean_apply_2(x_2, x_6, x_4); return x_7; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_19__withJP(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withJP(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; @@ -1431,7 +2250,7 @@ lean_dec(x_2); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_20__withParams(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withParams(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; @@ -1441,16 +2260,16 @@ x_7 = lean_apply_2(x_2, x_6, x_4); return x_7; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_20__withParams___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withParams___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l___private_Lean_Compiler_IR_FreeVars_20__withParams(x_1, x_2, x_3, x_4); +x_5 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_withParams(x_1, x_2, x_3, x_4); lean_dec(x_1); return x_5; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_21__seq(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_seq(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; @@ -1460,23 +2279,53 @@ x_6 = lean_apply_2(x_2, x_3, x_5); return x_6; } } -static lean_object* _init_l_Lean_IR_FreeIndices_HasAndthen___closed__1() { +static lean_object* _init_l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_21__seq), 4, 0); +x_1 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_seq), 4, 0); return x_1; } } -static lean_object* _init_l_Lean_IR_FreeIndices_HasAndthen() { +static lean_object* _init_l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2() { _start: { lean_object* x_1; -x_1 = l_Lean_IR_FreeIndices_HasAndthen___closed__1; +x_1 = l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2___closed__1; return x_1; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_22__collectArg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; +lean_dec(x_2); +x_6 = lean_apply_1(x_3, x_1); +return x_6; +} +} +} +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -1485,7 +2334,7 @@ lean_object* x_4; lean_object* x_5; x_4 = lean_ctor_get(x_1, 0); lean_inc(x_4); lean_dec(x_1); -x_5 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_4); +x_5 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_4); if (lean_obj_tag(x_5) == 0) { lean_object* x_6; lean_object* x_7; @@ -1506,16 +2355,16 @@ return x_3; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_22__collectArg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_FreeVars_22__collectArg(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; @@ -1523,11 +2372,11 @@ x_6 = lean_apply_3(x_1, x_4, x_2, x_5); return x_6; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_5 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_23__collectArray___rarg___lambda__1___boxed), 5, 2); +x_5 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___rarg___lambda__1___boxed), 5, 2); lean_closure_set(x_5, 0, x_2); lean_closure_set(x_5, 1, x_3); x_6 = l_Id_Monad; @@ -1536,24 +2385,24 @@ x_8 = l_Array_iterateMAux___main___rarg(x_6, lean_box(0), x_1, x_5, x_7, x_4); return x_8; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_23__collectArray___rarg), 4, 0); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___rarg), 4, 0); return x_2; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l___private_Lean_Compiler_IR_FreeVars_23__collectArray___rarg___lambda__1(x_1, x_2, x_3, x_4, x_5); +x_6 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___rarg___lambda__1(x_1, x_2, x_3, x_4, x_5); lean_dec(x_3); return x_6; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; uint8_t x_7; @@ -1569,7 +2418,7 @@ else { lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; x_8 = lean_array_fget(x_3, x_4); -x_9 = l___private_Lean_Compiler_IR_FreeVars_22__collectArg(x_8, x_2, x_5); +x_9 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg(x_8, x_2, x_5); x_10 = lean_unsigned_to_nat(1u); x_11 = lean_nat_add(x_4, x_10); lean_dec(x_4); @@ -1579,56 +2428,405 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_1, x_2, x_1, x_4, x_3); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_1, x_2, x_1, x_4, x_3); return x_5; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_24__collectArgs(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_1, x_2, x_1, x_4, x_3); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_1, x_2, x_1, x_4, x_3); return x_5; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_1, x_2, x_3, x_4, x_5); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); return x_6; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__1(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__1(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_24__collectArgs___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_FreeVars_24__collectArgs(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_25__collectExpr(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_apply_2(x_2, x_16, x_17); +return x_18; +} +case 1: +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_19 = lean_ctor_get(x_1, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_1, 1); +lean_inc(x_20); +lean_dec(x_1); +x_21 = lean_apply_2(x_3, x_19, x_20); +return x_21; +} +case 2: +{ +lean_object* x_22; lean_object* x_23; uint8_t x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_22 = lean_ctor_get(x_1, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 1); +lean_inc(x_23); +x_24 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_25 = lean_ctor_get(x_1, 2); +lean_inc(x_25); +lean_dec(x_1); +x_26 = lean_box(x_24); +x_27 = lean_apply_4(x_4, x_22, x_23, x_26, x_25); +return x_27; +} +case 3: +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_28 = lean_ctor_get(x_1, 0); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 1); +lean_inc(x_29); +lean_dec(x_1); +x_30 = lean_apply_2(x_5, x_28, x_29); +return x_30; +} +case 4: +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = lean_ctor_get(x_1, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_1, 1); +lean_inc(x_32); +lean_dec(x_1); +x_33 = lean_apply_2(x_6, x_31, x_32); +return x_33; +} +case 5: +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_34 = lean_ctor_get(x_1, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_1, 1); +lean_inc(x_35); +x_36 = lean_ctor_get(x_1, 2); +lean_inc(x_36); +lean_dec(x_1); +x_37 = lean_apply_3(x_7, x_34, x_35, x_36); +return x_37; +} +case 6: +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_38 = lean_ctor_get(x_1, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_1, 1); +lean_inc(x_39); +lean_dec(x_1); +x_40 = lean_apply_2(x_8, x_38, x_39); +return x_40; +} +case 7: +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_41 = lean_ctor_get(x_1, 0); +lean_inc(x_41); +x_42 = lean_ctor_get(x_1, 1); +lean_inc(x_42); +lean_dec(x_1); +x_43 = lean_apply_2(x_9, x_41, x_42); +return x_43; +} +case 8: +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_44 = lean_ctor_get(x_1, 0); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 1); +lean_inc(x_45); +lean_dec(x_1); +x_46 = lean_apply_2(x_10, x_44, x_45); +return x_46; +} +case 9: +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +lean_dec(x_1); +x_49 = lean_apply_2(x_11, x_47, x_48); +return x_49; +} +case 10: +{ +lean_object* x_50; lean_object* x_51; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_50 = lean_ctor_get(x_1, 0); +lean_inc(x_50); +lean_dec(x_1); +x_51 = lean_apply_1(x_12, x_50); +return x_51; +} +case 11: +{ +lean_object* x_52; lean_object* x_53; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); +lean_dec(x_1); +x_53 = lean_apply_1(x_13, x_52); +return x_53; +} +case 12: +{ +lean_object* x_54; lean_object* x_55; +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_54 = lean_ctor_get(x_1, 0); +lean_inc(x_54); +lean_dec(x_1); +x_55 = lean_apply_1(x_14, x_54); +return x_55; +} +default: +{ +lean_object* x_56; lean_object* x_57; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_56 = lean_ctor_get(x_1, 0); +lean_inc(x_56); +lean_dec(x_1); +x_57 = lean_apply_1(x_15, x_56); +return x_57; +} +} +} +} +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr_match__1___rarg), 15, 0); +return x_2; +} +} +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { switch (lean_obj_tag(x_1)) { @@ -1639,7 +2837,7 @@ x_4 = lean_ctor_get(x_1, 1); lean_inc(x_4); lean_dec(x_1); x_5 = lean_unsigned_to_nat(0u); -x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_4, x_2, x_4, x_5, x_3); +x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_4, x_2, x_4, x_5, x_3); lean_dec(x_4); return x_6; } @@ -1651,14 +2849,14 @@ lean_inc(x_7); x_8 = lean_ctor_get(x_1, 2); lean_inc(x_8); lean_dec(x_1); -x_9 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_7); +x_9 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_7); if (lean_obj_tag(x_9) == 0) { lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_10 = lean_box(0); x_11 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_7, x_10); x_12 = lean_unsigned_to_nat(0u); -x_13 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_8, x_2, x_8, x_12, x_11); +x_13 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_8, x_2, x_8, x_12, x_11); lean_dec(x_8); return x_13; } @@ -1668,7 +2866,7 @@ lean_object* x_14; lean_object* x_15; lean_dec(x_9); lean_dec(x_7); x_14 = lean_unsigned_to_nat(0u); -x_15 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_8, x_2, x_8, x_14, x_3); +x_15 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_8, x_2, x_8, x_14, x_3); lean_dec(x_8); return x_15; } @@ -1679,7 +2877,7 @@ lean_object* x_16; lean_object* x_17; x_16 = lean_ctor_get(x_1, 2); lean_inc(x_16); lean_dec(x_1); -x_17 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_16); +x_17 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_16); if (lean_obj_tag(x_17) == 0) { lean_object* x_18; lean_object* x_19; @@ -1701,7 +2899,7 @@ x_20 = lean_ctor_get(x_1, 1); lean_inc(x_20); lean_dec(x_1); x_21 = lean_unsigned_to_nat(0u); -x_22 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_20, x_2, x_20, x_21, x_3); +x_22 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_20, x_2, x_20, x_21, x_3); lean_dec(x_20); return x_22; } @@ -1712,7 +2910,7 @@ x_23 = lean_ctor_get(x_1, 1); lean_inc(x_23); lean_dec(x_1); x_24 = lean_unsigned_to_nat(0u); -x_25 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_23, x_2, x_23, x_24, x_3); +x_25 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_23, x_2, x_23, x_24, x_3); lean_dec(x_23); return x_25; } @@ -1724,14 +2922,14 @@ lean_inc(x_26); x_27 = lean_ctor_get(x_1, 1); lean_inc(x_27); lean_dec(x_1); -x_28 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_26); +x_28 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_26); if (lean_obj_tag(x_28) == 0) { lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; x_29 = lean_box(0); x_30 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_26, x_29); x_31 = lean_unsigned_to_nat(0u); -x_32 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_27, x_2, x_27, x_31, x_30); +x_32 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_27, x_2, x_27, x_31, x_30); lean_dec(x_27); return x_32; } @@ -1741,7 +2939,7 @@ lean_object* x_33; lean_object* x_34; lean_dec(x_28); lean_dec(x_26); x_33 = lean_unsigned_to_nat(0u); -x_34 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_27, x_2, x_27, x_33, x_3); +x_34 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_27, x_2, x_27, x_33, x_3); lean_dec(x_27); return x_34; } @@ -1752,7 +2950,7 @@ lean_object* x_35; lean_object* x_36; x_35 = lean_ctor_get(x_1, 0); lean_inc(x_35); lean_dec(x_1); -x_36 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_35); +x_36 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_35); if (lean_obj_tag(x_36) == 0) { lean_object* x_37; lean_object* x_38; @@ -1778,7 +2976,7 @@ lean_object* x_39; lean_object* x_40; x_39 = lean_ctor_get(x_1, 0); lean_inc(x_39); lean_dec(x_1); -x_40 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_39); +x_40 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_39); if (lean_obj_tag(x_40) == 0) { lean_object* x_41; lean_object* x_42; @@ -1799,7 +2997,7 @@ lean_object* x_43; lean_object* x_44; x_43 = lean_ctor_get(x_1, 0); lean_inc(x_43); lean_dec(x_1); -x_44 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_43); +x_44 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_43); if (lean_obj_tag(x_44) == 0) { lean_object* x_45; lean_object* x_46; @@ -1820,7 +3018,7 @@ lean_object* x_47; lean_object* x_48; x_47 = lean_ctor_get(x_1, 1); lean_inc(x_47); lean_dec(x_1); -x_48 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_47); +x_48 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_47); if (lean_obj_tag(x_48) == 0) { lean_object* x_49; lean_object* x_50; @@ -1838,16 +3036,16 @@ return x_3; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_25__collectExpr___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_FreeVars_25__collectExpr(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; uint8_t x_8; @@ -1879,61 +3077,448 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; x_5 = lean_unsigned_to_nat(0u); -x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__2(x_1, x_2, x_3, x_2, x_5, x_4); +x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__2(x_1, x_2, x_3, x_2, x_5, x_4); return x_6; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_26__collectAlts(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; x_5 = lean_unsigned_to_nat(0u); -x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__2(x_1, x_2, x_3, x_2, x_5, x_4); +x_6 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__2(x_1, x_2, x_3, x_2, x_5, x_4); return x_6; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; -x_7 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__2(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__2(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_4); lean_dec(x_2); return x_7; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l___private_Lean_Compiler_IR_FreeVars_23__collectArray___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__1(x_1, x_2, x_3, x_4); +x_5 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArray___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__1(x_1, x_2, x_3, x_4); lean_dec(x_2); return x_5; } } -lean_object* l___private_Lean_Compiler_IR_FreeVars_26__collectAlts___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l___private_Lean_Compiler_IR_FreeVars_26__collectAlts(x_1, x_2, x_3, x_4); +x_5 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts(x_1, x_2, x_3, x_4); lean_dec(x_2); return x_5; } } -static lean_object* _init_l_Lean_IR_FreeIndices_collectFnBody___main___closed__1() { +lean_object* l_Lean_IR_FreeIndices_collectFnBody_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +x_18 = lean_ctor_get(x_1, 2); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 3); +lean_inc(x_19); +lean_dec(x_1); +x_20 = lean_apply_4(x_2, x_16, x_17, x_18, x_19); +return x_20; +} +case 1: +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_21 = lean_ctor_get(x_1, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_1, 1); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 2); +lean_inc(x_23); +x_24 = lean_ctor_get(x_1, 3); +lean_inc(x_24); +lean_dec(x_1); +x_25 = lean_apply_4(x_3, x_21, x_22, x_23, x_24); +return x_25; +} +case 2: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_26 = lean_ctor_get(x_1, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_1, 1); +lean_inc(x_27); +x_28 = lean_ctor_get(x_1, 2); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 3); +lean_inc(x_29); +lean_dec(x_1); +x_30 = lean_apply_4(x_4, x_26, x_27, x_28, x_29); +return x_30; +} +case 3: +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = lean_ctor_get(x_1, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_1, 1); +lean_inc(x_32); +x_33 = lean_ctor_get(x_1, 2); +lean_inc(x_33); +lean_dec(x_1); +x_34 = lean_apply_3(x_7, x_31, x_32, x_33); +return x_34; +} +case 4: +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_35 = lean_ctor_get(x_1, 0); +lean_inc(x_35); +x_36 = lean_ctor_get(x_1, 1); +lean_inc(x_36); +x_37 = lean_ctor_get(x_1, 2); +lean_inc(x_37); +x_38 = lean_ctor_get(x_1, 3); +lean_inc(x_38); +lean_dec(x_1); +x_39 = lean_apply_4(x_5, x_35, x_36, x_37, x_38); +return x_39; +} +case 5: +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_40 = lean_ctor_get(x_1, 0); +lean_inc(x_40); +x_41 = lean_ctor_get(x_1, 1); +lean_inc(x_41); +x_42 = lean_ctor_get(x_1, 2); +lean_inc(x_42); +x_43 = lean_ctor_get(x_1, 3); +lean_inc(x_43); +x_44 = lean_ctor_get(x_1, 4); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 5); +lean_inc(x_45); +lean_dec(x_1); +x_46 = lean_apply_6(x_6, x_40, x_41, x_42, x_43, x_44, x_45); +return x_46; +} +case 6: +{ +lean_object* x_47; lean_object* x_48; uint8_t x_49; uint8_t x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +x_49 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_50 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_51 = lean_ctor_get(x_1, 2); +lean_inc(x_51); +lean_dec(x_1); +x_52 = lean_box(x_49); +x_53 = lean_box(x_50); +x_54 = lean_apply_5(x_8, x_47, x_48, x_52, x_53, x_51); +return x_54; +} +case 7: +{ +lean_object* x_55; lean_object* x_56; uint8_t x_57; uint8_t x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_55 = lean_ctor_get(x_1, 0); +lean_inc(x_55); +x_56 = lean_ctor_get(x_1, 1); +lean_inc(x_56); +x_57 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_58 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_59 = lean_ctor_get(x_1, 2); +lean_inc(x_59); +lean_dec(x_1); +x_60 = lean_box(x_57); +x_61 = lean_box(x_58); +x_62 = lean_apply_5(x_9, x_55, x_56, x_60, x_61, x_59); +return x_62; +} +case 8: +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_63 = lean_ctor_get(x_1, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_1, 1); +lean_inc(x_64); +lean_dec(x_1); +x_65 = lean_apply_2(x_10, x_63, x_64); +return x_65; +} +case 9: +{ +lean_object* x_66; lean_object* x_67; lean_object* x_68; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_66 = lean_ctor_get(x_1, 0); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 1); +lean_inc(x_67); +lean_dec(x_1); +x_68 = lean_apply_2(x_11, x_66, x_67); +return x_68; +} +case 10: +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_69 = lean_ctor_get(x_1, 0); +lean_inc(x_69); +x_70 = lean_ctor_get(x_1, 1); +lean_inc(x_70); +x_71 = lean_ctor_get(x_1, 2); +lean_inc(x_71); +x_72 = lean_ctor_get(x_1, 3); +lean_inc(x_72); +lean_dec(x_1); +x_73 = lean_apply_4(x_12, x_69, x_70, x_71, x_72); +return x_73; +} +case 11: +{ +lean_object* x_74; lean_object* x_75; +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_74 = lean_ctor_get(x_1, 0); +lean_inc(x_74); +lean_dec(x_1); +x_75 = lean_apply_1(x_14, x_74); +return x_75; +} +case 12: +{ +lean_object* x_76; lean_object* x_77; lean_object* x_78; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_76 = lean_ctor_get(x_1, 0); +lean_inc(x_76); +x_77 = lean_ctor_get(x_1, 1); +lean_inc(x_77); +lean_dec(x_1); +x_78 = lean_apply_2(x_13, x_76, x_77); +return x_78; +} +default: +{ +lean_object* x_79; lean_object* x_80; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_79 = lean_box(0); +x_80 = lean_apply_1(x_15, x_79); +return x_80; +} +} +} +} +lean_object* l_Lean_IR_FreeIndices_collectFnBody_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_FreeIndices_collectFnBody_match__1___rarg), 15, 0); +return x_2; +} +} +static lean_object* _init_l_Lean_IR_FreeIndices_collectFnBody___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_IR_FreeIndices_collectFnBody___main), 3, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_IR_FreeIndices_collectFnBody), 3, 0); return x_1; } } -lean_object* l_Lean_IR_FreeIndices_collectFnBody___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_FreeIndices_collectFnBody(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { switch (lean_obj_tag(x_1)) { @@ -1947,7 +3532,7 @@ lean_inc(x_5); x_6 = lean_ctor_get(x_1, 3); lean_inc(x_6); lean_dec(x_1); -x_7 = l___private_Lean_Compiler_IR_FreeVars_25__collectExpr(x_5, x_2, x_3); +x_7 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectExpr(x_5, x_2, x_3); x_8 = lean_box(0); x_9 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_2, x_4, x_8); x_1 = x_6; @@ -1971,7 +3556,7 @@ x_15 = lean_unsigned_to_nat(0u); lean_inc(x_2); x_16 = l_Array_iterateMAux___main___at_Lean_IR_FreeIndices_insertParams___spec__1(x_12, x_12, x_15, x_2); lean_dec(x_12); -x_17 = l_Lean_IR_FreeIndices_collectFnBody___main(x_13, x_16, x_3); +x_17 = l_Lean_IR_FreeIndices_collectFnBody(x_13, x_16, x_3); x_18 = lean_box(0); x_19 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_2, x_11, x_18); x_1 = x_14; @@ -1989,13 +3574,13 @@ lean_inc(x_22); x_23 = lean_ctor_get(x_1, 3); lean_inc(x_23); lean_dec(x_1); -x_24 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_21); +x_24 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_21); if (lean_obj_tag(x_24) == 0) { lean_object* x_25; lean_object* x_26; lean_object* x_27; x_25 = lean_box(0); x_26 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_21, x_25); -x_27 = l___private_Lean_Compiler_IR_FreeVars_22__collectArg(x_22, x_2, x_26); +x_27 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg(x_22, x_2, x_26); x_1 = x_23; x_3 = x_27; goto _start; @@ -2005,7 +3590,7 @@ else lean_object* x_29; lean_dec(x_24); lean_dec(x_21); -x_29 = l___private_Lean_Compiler_IR_FreeVars_22__collectArg(x_22, x_2, x_3); +x_29 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg(x_22, x_2, x_3); x_1 = x_23; x_3 = x_29; goto _start; @@ -2013,7 +3598,7 @@ goto _start; } case 4: { -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_42; x_31 = lean_ctor_get(x_1, 0); lean_inc(x_31); x_32 = lean_ctor_get(x_1, 2); @@ -2021,219 +3606,211 @@ lean_inc(x_32); x_33 = lean_ctor_get(x_1, 3); lean_inc(x_33); lean_dec(x_1); -x_34 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_31); -if (lean_obj_tag(x_34) == 0) +x_42 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_31); +if (lean_obj_tag(x_42) == 0) { -lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_35 = lean_box(0); -x_36 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_31, x_35); -x_37 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_32); -if (lean_obj_tag(x_37) == 0) +lean_object* x_43; lean_object* x_44; +x_43 = lean_box(0); +x_44 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_31, x_43); +lean_inc(x_2); +x_34 = x_44; +x_35 = x_2; +goto block_41; +} +else { -lean_object* x_38; -x_38 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_36, x_32, x_35); +lean_dec(x_42); +lean_dec(x_31); +lean_inc(x_2); +x_34 = x_3; +x_35 = x_2; +goto block_41; +} +block_41: +{ +lean_object* x_36; +x_36 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_35, x_32); +lean_dec(x_35); +if (lean_obj_tag(x_36) == 0) +{ +lean_object* x_37; lean_object* x_38; +x_37 = lean_box(0); +x_38 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_34, x_32, x_37); x_1 = x_33; x_3 = x_38; goto _start; } else { -lean_dec(x_37); -lean_dec(x_32); -x_1 = x_33; -x_3 = x_36; -goto _start; -} -} -else -{ -lean_object* x_41; -lean_dec(x_34); -lean_dec(x_31); -x_41 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_32); -if (lean_obj_tag(x_41) == 0) -{ -lean_object* x_42; lean_object* x_43; -x_42 = lean_box(0); -x_43 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_32, x_42); -x_1 = x_33; -x_3 = x_43; -goto _start; -} -else -{ -lean_dec(x_41); +lean_dec(x_36); lean_dec(x_32); x_1 = x_33; +x_3 = x_34; goto _start; } } } case 5: { -lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -x_46 = lean_ctor_get(x_1, 0); +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_56; +x_45 = lean_ctor_get(x_1, 0); +lean_inc(x_45); +x_46 = lean_ctor_get(x_1, 3); lean_inc(x_46); -x_47 = lean_ctor_get(x_1, 3); +x_47 = lean_ctor_get(x_1, 5); lean_inc(x_47); -x_48 = lean_ctor_get(x_1, 5); -lean_inc(x_48); lean_dec(x_1); -x_49 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_46); -if (lean_obj_tag(x_49) == 0) -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_box(0); -x_51 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_46, x_50); -x_52 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_47); -if (lean_obj_tag(x_52) == 0) -{ -lean_object* x_53; -x_53 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_51, x_47, x_50); -x_1 = x_48; -x_3 = x_53; -goto _start; -} -else -{ -lean_dec(x_52); -lean_dec(x_47); -x_1 = x_48; -x_3 = x_51; -goto _start; -} -} -else -{ -lean_object* x_56; -lean_dec(x_49); -lean_dec(x_46); -x_56 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_47); +x_56 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_45); if (lean_obj_tag(x_56) == 0) { lean_object* x_57; lean_object* x_58; x_57 = lean_box(0); -x_58 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_47, x_57); -x_1 = x_48; -x_3 = x_58; -goto _start; +x_58 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_45, x_57); +lean_inc(x_2); +x_48 = x_58; +x_49 = x_2; +goto block_55; } else { lean_dec(x_56); -lean_dec(x_47); -x_1 = x_48; +lean_dec(x_45); +lean_inc(x_2); +x_48 = x_3; +x_49 = x_2; +goto block_55; +} +block_55: +{ +lean_object* x_50; +x_50 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_49, x_46); +lean_dec(x_49); +if (lean_obj_tag(x_50) == 0) +{ +lean_object* x_51; lean_object* x_52; +x_51 = lean_box(0); +x_52 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_48, x_46, x_51); +x_1 = x_47; +x_3 = x_52; +goto _start; +} +else +{ +lean_dec(x_50); +lean_dec(x_46); +x_1 = x_47; +x_3 = x_48; goto _start; } } } case 8: { -lean_object* x_61; lean_object* x_62; lean_object* x_63; -x_61 = lean_ctor_get(x_1, 0); -lean_inc(x_61); -x_62 = lean_ctor_get(x_1, 1); -lean_inc(x_62); +lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_59 = lean_ctor_get(x_1, 0); +lean_inc(x_59); +x_60 = lean_ctor_get(x_1, 1); +lean_inc(x_60); lean_dec(x_1); -x_63 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_61); -if (lean_obj_tag(x_63) == 0) +x_61 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_59); +if (lean_obj_tag(x_61) == 0) { -lean_object* x_64; lean_object* x_65; -x_64 = lean_box(0); -x_65 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_61, x_64); -x_1 = x_62; -x_3 = x_65; +lean_object* x_62; lean_object* x_63; +x_62 = lean_box(0); +x_63 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_59, x_62); +x_1 = x_60; +x_3 = x_63; goto _start; } else { -lean_dec(x_63); lean_dec(x_61); -x_1 = x_62; +lean_dec(x_59); +x_1 = x_60; goto _start; } } case 9: { -lean_object* x_68; -x_68 = lean_ctor_get(x_1, 1); -lean_inc(x_68); +lean_object* x_66; +x_66 = lean_ctor_get(x_1, 1); +lean_inc(x_66); lean_dec(x_1); -x_1 = x_68; +x_1 = x_66; goto _start; } case 10: { -lean_object* x_70; lean_object* x_71; lean_object* x_72; -x_70 = lean_ctor_get(x_1, 1); -lean_inc(x_70); -x_71 = lean_ctor_get(x_1, 3); -lean_inc(x_71); +lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_68 = lean_ctor_get(x_1, 1); +lean_inc(x_68); +x_69 = lean_ctor_get(x_1, 3); +lean_inc(x_69); lean_dec(x_1); -x_72 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_70); -if (lean_obj_tag(x_72) == 0) +x_70 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_68); +if (lean_obj_tag(x_70) == 0) { -lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; -x_73 = lean_box(0); -x_74 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_70, x_73); -x_75 = l_Lean_IR_FreeIndices_collectFnBody___main___closed__1; -x_76 = lean_unsigned_to_nat(0u); -x_77 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__2(x_75, x_71, x_2, x_71, x_76, x_74); -lean_dec(x_71); -return x_77; +lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_71 = lean_box(0); +x_72 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_68, x_71); +x_73 = l_Lean_IR_FreeIndices_collectFnBody___closed__1; +x_74 = lean_unsigned_to_nat(0u); +x_75 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__2(x_73, x_69, x_2, x_69, x_74, x_72); +lean_dec(x_69); +return x_75; } else { -lean_object* x_78; lean_object* x_79; lean_object* x_80; -lean_dec(x_72); +lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_dec(x_70); -x_78 = l_Lean_IR_FreeIndices_collectFnBody___main___closed__1; -x_79 = lean_unsigned_to_nat(0u); -x_80 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_26__collectAlts___spec__2(x_78, x_71, x_2, x_71, x_79, x_3); -lean_dec(x_71); -return x_80; +lean_dec(x_68); +x_76 = l_Lean_IR_FreeIndices_collectFnBody___closed__1; +x_77 = lean_unsigned_to_nat(0u); +x_78 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectAlts___spec__2(x_76, x_69, x_2, x_69, x_77, x_3); +lean_dec(x_69); +return x_78; } } case 11: { -lean_object* x_81; lean_object* x_82; -x_81 = lean_ctor_get(x_1, 0); -lean_inc(x_81); +lean_object* x_79; lean_object* x_80; +x_79 = lean_ctor_get(x_1, 0); +lean_inc(x_79); lean_dec(x_1); -x_82 = l___private_Lean_Compiler_IR_FreeVars_22__collectArg(x_81, x_2, x_3); +x_80 = l___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArg(x_79, x_2, x_3); lean_dec(x_2); -return x_82; +return x_80; } case 12: { -lean_object* x_83; lean_object* x_84; lean_object* x_85; -x_83 = lean_ctor_get(x_1, 0); -lean_inc(x_83); -x_84 = lean_ctor_get(x_1, 1); -lean_inc(x_84); +lean_object* x_81; lean_object* x_82; lean_object* x_83; +x_81 = lean_ctor_get(x_1, 0); +lean_inc(x_81); +x_82 = lean_ctor_get(x_1, 1); +lean_inc(x_82); lean_dec(x_1); -x_85 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_83); -if (lean_obj_tag(x_85) == 0) +x_83 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_81); +if (lean_obj_tag(x_83) == 0) { -lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_86 = lean_box(0); -x_87 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_83, x_86); -x_88 = lean_unsigned_to_nat(0u); -x_89 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_84, x_2, x_84, x_88, x_87); +lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_84 = lean_box(0); +x_85 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_81, x_84); +x_86 = lean_unsigned_to_nat(0u); +x_87 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_82, x_2, x_82, x_86, x_85); lean_dec(x_2); -lean_dec(x_84); -return x_89; +lean_dec(x_82); +return x_87; } else { -lean_object* x_90; lean_object* x_91; -lean_dec(x_85); +lean_object* x_88; lean_object* x_89; lean_dec(x_83); -x_90 = lean_unsigned_to_nat(0u); -x_91 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_24__collectArgs___spec__2(x_84, x_2, x_84, x_90, x_3); +lean_dec(x_81); +x_88 = lean_unsigned_to_nat(0u); +x_89 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectArgs___spec__2(x_82, x_2, x_82, x_88, x_3); lean_dec(x_2); -lean_dec(x_84); -return x_91; +lean_dec(x_82); +return x_89; } } case 13: @@ -2243,47 +3820,39 @@ return x_3; } default: { -lean_object* x_92; lean_object* x_93; lean_object* x_94; -x_92 = lean_ctor_get(x_1, 0); -lean_inc(x_92); -x_93 = lean_ctor_get(x_1, 2); -lean_inc(x_93); +lean_object* x_90; lean_object* x_91; lean_object* x_92; +x_90 = lean_ctor_get(x_1, 0); +lean_inc(x_90); +x_91 = lean_ctor_get(x_1, 2); +lean_inc(x_91); lean_dec(x_1); -x_94 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_14__collectIndex___spec__1(x_2, x_92); -if (lean_obj_tag(x_94) == 0) +x_92 = l_Std_RBNode_findCore___main___at___private_Lean_Compiler_IR_FreeVars_0__Lean_IR_FreeIndices_collectIndex___spec__1(x_2, x_90); +if (lean_obj_tag(x_92) == 0) { -lean_object* x_95; lean_object* x_96; -x_95 = lean_box(0); -x_96 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_92, x_95); -x_1 = x_93; -x_3 = x_96; +lean_object* x_93; lean_object* x_94; +x_93 = lean_box(0); +x_94 = l_Std_RBNode_insert___at_Lean_IR_mkIndexSet___spec__1(x_3, x_90, x_93); +x_1 = x_91; +x_3 = x_94; goto _start; } else { -lean_dec(x_94); lean_dec(x_92); -x_1 = x_93; +lean_dec(x_90); +x_1 = x_91; goto _start; } } } } } -lean_object* l_Lean_IR_FreeIndices_collectFnBody(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_IR_FreeIndices_collectFnBody___main(x_1, x_2, x_3); -return x_4; -} -} lean_object* l_Lean_IR_FnBody_collectFreeIndices(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; x_3 = lean_box(0); -x_4 = l_Lean_IR_FreeIndices_collectFnBody___main(x_1, x_3, x_2); +x_4 = l_Lean_IR_FreeIndices_collectFnBody(x_1, x_3, x_2); return x_4; } } @@ -2334,6 +3903,36 @@ x_4 = lean_box(x_3); return x_4; } } +lean_object* l_Lean_IR_HasIndex_visitArg_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; +lean_dec(x_2); +x_6 = lean_apply_1(x_3, x_1); +return x_6; +} +} +} +lean_object* l_Lean_IR_HasIndex_visitArg_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_HasIndex_visitArg_match__1___rarg), 3, 0); +return x_2; +} +} uint8_t l_Lean_IR_HasIndex_visitArg(lean_object* x_1, lean_object* x_2) { _start: { @@ -2506,6 +4105,355 @@ x_4 = lean_box(x_3); return x_4; } } +lean_object* l_Lean_IR_HasIndex_visitExpr_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_apply_2(x_2, x_16, x_17); +return x_18; +} +case 1: +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_19 = lean_ctor_get(x_1, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_1, 1); +lean_inc(x_20); +lean_dec(x_1); +x_21 = lean_apply_2(x_3, x_19, x_20); +return x_21; +} +case 2: +{ +lean_object* x_22; lean_object* x_23; uint8_t x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_22 = lean_ctor_get(x_1, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 1); +lean_inc(x_23); +x_24 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_25 = lean_ctor_get(x_1, 2); +lean_inc(x_25); +lean_dec(x_1); +x_26 = lean_box(x_24); +x_27 = lean_apply_4(x_4, x_22, x_23, x_26, x_25); +return x_27; +} +case 3: +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_28 = lean_ctor_get(x_1, 0); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 1); +lean_inc(x_29); +lean_dec(x_1); +x_30 = lean_apply_2(x_5, x_28, x_29); +return x_30; +} +case 4: +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = lean_ctor_get(x_1, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_1, 1); +lean_inc(x_32); +lean_dec(x_1); +x_33 = lean_apply_2(x_6, x_31, x_32); +return x_33; +} +case 5: +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_34 = lean_ctor_get(x_1, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_1, 1); +lean_inc(x_35); +x_36 = lean_ctor_get(x_1, 2); +lean_inc(x_36); +lean_dec(x_1); +x_37 = lean_apply_3(x_7, x_34, x_35, x_36); +return x_37; +} +case 6: +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_38 = lean_ctor_get(x_1, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_1, 1); +lean_inc(x_39); +lean_dec(x_1); +x_40 = lean_apply_2(x_8, x_38, x_39); +return x_40; +} +case 7: +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_41 = lean_ctor_get(x_1, 0); +lean_inc(x_41); +x_42 = lean_ctor_get(x_1, 1); +lean_inc(x_42); +lean_dec(x_1); +x_43 = lean_apply_2(x_9, x_41, x_42); +return x_43; +} +case 8: +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_44 = lean_ctor_get(x_1, 0); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 1); +lean_inc(x_45); +lean_dec(x_1); +x_46 = lean_apply_2(x_10, x_44, x_45); +return x_46; +} +case 9: +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +lean_dec(x_1); +x_49 = lean_apply_2(x_11, x_47, x_48); +return x_49; +} +case 10: +{ +lean_object* x_50; lean_object* x_51; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_50 = lean_ctor_get(x_1, 0); +lean_inc(x_50); +lean_dec(x_1); +x_51 = lean_apply_1(x_12, x_50); +return x_51; +} +case 11: +{ +lean_object* x_52; lean_object* x_53; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); +lean_dec(x_1); +x_53 = lean_apply_1(x_13, x_52); +return x_53; +} +case 12: +{ +lean_object* x_54; lean_object* x_55; +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_54 = lean_ctor_get(x_1, 0); +lean_inc(x_54); +lean_dec(x_1); +x_55 = lean_apply_1(x_14, x_54); +return x_55; +} +default: +{ +lean_object* x_56; lean_object* x_57; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_56 = lean_ctor_get(x_1, 0); +lean_inc(x_56); +lean_dec(x_1); +x_57 = lean_apply_1(x_15, x_56); +return x_57; +} +} +} +} +lean_object* l_Lean_IR_HasIndex_visitExpr_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_HasIndex_visitExpr_match__1___rarg), 15, 0); +return x_2; +} +} uint8_t l_Lean_IR_HasIndex_visitExpr(lean_object* x_1, lean_object* x_2) { _start: { @@ -2624,7 +4572,394 @@ x_4 = lean_box(x_3); return x_4; } } -uint8_t l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Lean_IR_HasIndex_visitFnBody_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +x_18 = lean_ctor_get(x_1, 2); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 3); +lean_inc(x_19); +lean_dec(x_1); +x_20 = lean_apply_4(x_2, x_16, x_17, x_18, x_19); +return x_20; +} +case 1: +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_21 = lean_ctor_get(x_1, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_1, 1); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 2); +lean_inc(x_23); +x_24 = lean_ctor_get(x_1, 3); +lean_inc(x_24); +lean_dec(x_1); +x_25 = lean_apply_4(x_3, x_21, x_22, x_23, x_24); +return x_25; +} +case 2: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_26 = lean_ctor_get(x_1, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_1, 1); +lean_inc(x_27); +x_28 = lean_ctor_get(x_1, 2); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 3); +lean_inc(x_29); +lean_dec(x_1); +x_30 = lean_apply_4(x_4, x_26, x_27, x_28, x_29); +return x_30; +} +case 3: +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = lean_ctor_get(x_1, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_1, 1); +lean_inc(x_32); +x_33 = lean_ctor_get(x_1, 2); +lean_inc(x_33); +lean_dec(x_1); +x_34 = lean_apply_3(x_7, x_31, x_32, x_33); +return x_34; +} +case 4: +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_35 = lean_ctor_get(x_1, 0); +lean_inc(x_35); +x_36 = lean_ctor_get(x_1, 1); +lean_inc(x_36); +x_37 = lean_ctor_get(x_1, 2); +lean_inc(x_37); +x_38 = lean_ctor_get(x_1, 3); +lean_inc(x_38); +lean_dec(x_1); +x_39 = lean_apply_4(x_5, x_35, x_36, x_37, x_38); +return x_39; +} +case 5: +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_40 = lean_ctor_get(x_1, 0); +lean_inc(x_40); +x_41 = lean_ctor_get(x_1, 1); +lean_inc(x_41); +x_42 = lean_ctor_get(x_1, 2); +lean_inc(x_42); +x_43 = lean_ctor_get(x_1, 3); +lean_inc(x_43); +x_44 = lean_ctor_get(x_1, 4); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 5); +lean_inc(x_45); +lean_dec(x_1); +x_46 = lean_apply_6(x_6, x_40, x_41, x_42, x_43, x_44, x_45); +return x_46; +} +case 6: +{ +lean_object* x_47; lean_object* x_48; uint8_t x_49; uint8_t x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +x_49 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_50 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_51 = lean_ctor_get(x_1, 2); +lean_inc(x_51); +lean_dec(x_1); +x_52 = lean_box(x_49); +x_53 = lean_box(x_50); +x_54 = lean_apply_5(x_8, x_47, x_48, x_52, x_53, x_51); +return x_54; +} +case 7: +{ +lean_object* x_55; lean_object* x_56; uint8_t x_57; uint8_t x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_55 = lean_ctor_get(x_1, 0); +lean_inc(x_55); +x_56 = lean_ctor_get(x_1, 1); +lean_inc(x_56); +x_57 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_58 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_59 = lean_ctor_get(x_1, 2); +lean_inc(x_59); +lean_dec(x_1); +x_60 = lean_box(x_57); +x_61 = lean_box(x_58); +x_62 = lean_apply_5(x_9, x_55, x_56, x_60, x_61, x_59); +return x_62; +} +case 8: +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_63 = lean_ctor_get(x_1, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_1, 1); +lean_inc(x_64); +lean_dec(x_1); +x_65 = lean_apply_2(x_10, x_63, x_64); +return x_65; +} +case 9: +{ +lean_object* x_66; lean_object* x_67; lean_object* x_68; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_66 = lean_ctor_get(x_1, 0); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 1); +lean_inc(x_67); +lean_dec(x_1); +x_68 = lean_apply_2(x_11, x_66, x_67); +return x_68; +} +case 10: +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_69 = lean_ctor_get(x_1, 0); +lean_inc(x_69); +x_70 = lean_ctor_get(x_1, 1); +lean_inc(x_70); +x_71 = lean_ctor_get(x_1, 2); +lean_inc(x_71); +x_72 = lean_ctor_get(x_1, 3); +lean_inc(x_72); +lean_dec(x_1); +x_73 = lean_apply_4(x_14, x_69, x_70, x_71, x_72); +return x_73; +} +case 11: +{ +lean_object* x_74; lean_object* x_75; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_74 = lean_ctor_get(x_1, 0); +lean_inc(x_74); +lean_dec(x_1); +x_75 = lean_apply_1(x_13, x_74); +return x_75; +} +case 12: +{ +lean_object* x_76; lean_object* x_77; lean_object* x_78; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_76 = lean_ctor_get(x_1, 0); +lean_inc(x_76); +x_77 = lean_ctor_get(x_1, 1); +lean_inc(x_77); +lean_dec(x_1); +x_78 = lean_apply_2(x_12, x_76, x_77); +return x_78; +} +default: +{ +lean_object* x_79; lean_object* x_80; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_79 = lean_box(0); +x_80 = lean_apply_1(x_15, x_79); +return x_80; +} +} +} +} +lean_object* l_Lean_IR_HasIndex_visitFnBody_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_HasIndex_visitFnBody_match__1___rarg), 15, 0); +return x_2; +} +} +uint8_t l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { uint8_t x_6; @@ -2642,7 +4977,7 @@ lean_object* x_8; lean_object* x_9; uint8_t x_10; x_8 = lean_array_fget(x_3, x_5); x_9 = l_Lean_IR_AltCore_body(x_8); lean_dec(x_8); -x_10 = l_Lean_IR_HasIndex_visitFnBody___main(x_1, x_9); +x_10 = l_Lean_IR_HasIndex_visitFnBody(x_1, x_9); lean_dec(x_9); if (x_10 == 0) { @@ -2661,7 +4996,7 @@ return x_10; } } } -uint8_t l_Lean_IR_HasIndex_visitFnBody___main(lean_object* x_1, lean_object* x_2) { +uint8_t l_Lean_IR_HasIndex_visitFnBody(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_2)) { @@ -2688,7 +5023,7 @@ case 1: lean_object* x_8; lean_object* x_9; uint8_t x_10; x_8 = lean_ctor_get(x_2, 2); x_9 = lean_ctor_get(x_2, 3); -x_10 = l_Lean_IR_HasIndex_visitFnBody___main(x_1, x_8); +x_10 = l_Lean_IR_HasIndex_visitFnBody(x_1, x_8); if (x_10 == 0) { x_2 = x_9; @@ -2827,7 +5162,7 @@ if (x_46 == 0) lean_object* x_47; lean_object* x_48; uint8_t x_49; x_47 = lean_array_get_size(x_45); x_48 = lean_unsigned_to_nat(0u); -x_49 = l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___main___spec__1(x_1, x_45, x_45, x_47, x_48); +x_49 = l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___spec__1(x_1, x_45, x_45, x_47, x_48); lean_dec(x_47); return x_49; } @@ -2891,11 +5226,11 @@ return x_63; } } } -lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { uint8_t x_6; lean_object* x_7; -x_6 = l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___main___spec__1(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Array_anyRangeMAux___main___at_Lean_IR_HasIndex_visitFnBody___spec__1(x_1, x_2, x_3, x_4, x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); @@ -2904,25 +5239,6 @@ x_7 = lean_box(x_6); return x_7; } } -lean_object* l_Lean_IR_HasIndex_visitFnBody___main___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_Lean_IR_HasIndex_visitFnBody___main(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -x_4 = lean_box(x_3); -return x_4; -} -} -uint8_t l_Lean_IR_HasIndex_visitFnBody(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; -x_3 = l_Lean_IR_HasIndex_visitFnBody___main(x_1, x_2); -return x_3; -} -} lean_object* l_Lean_IR_HasIndex_visitFnBody___boxed(lean_object* x_1, lean_object* x_2) { _start: { @@ -2976,7 +5292,7 @@ uint8_t l_Lean_IR_FnBody_hasFreeVar(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; -x_3 = l_Lean_IR_HasIndex_visitFnBody___main(x_2, x_1); +x_3 = l_Lean_IR_HasIndex_visitFnBody(x_2, x_1); return x_3; } } @@ -3004,18 +5320,18 @@ lean_dec_ref(res); res = initialize_Lean_Compiler_IR_Basic(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_IR_MaxIndex_HasAndthen___closed__1 = _init_l_Lean_IR_MaxIndex_HasAndthen___closed__1(); -lean_mark_persistent(l_Lean_IR_MaxIndex_HasAndthen___closed__1); -l_Lean_IR_MaxIndex_HasAndthen = _init_l_Lean_IR_MaxIndex_HasAndthen(); -lean_mark_persistent(l_Lean_IR_MaxIndex_HasAndthen); -l_Lean_IR_MaxIndex_collectFnBody___main___closed__1 = _init_l_Lean_IR_MaxIndex_collectFnBody___main___closed__1(); -lean_mark_persistent(l_Lean_IR_MaxIndex_collectFnBody___main___closed__1); -l_Lean_IR_FreeIndices_HasAndthen___closed__1 = _init_l_Lean_IR_FreeIndices_HasAndthen___closed__1(); -lean_mark_persistent(l_Lean_IR_FreeIndices_HasAndthen___closed__1); -l_Lean_IR_FreeIndices_HasAndthen = _init_l_Lean_IR_FreeIndices_HasAndthen(); -lean_mark_persistent(l_Lean_IR_FreeIndices_HasAndthen); -l_Lean_IR_FreeIndices_collectFnBody___main___closed__1 = _init_l_Lean_IR_FreeIndices_collectFnBody___main___closed__1(); -lean_mark_persistent(l_Lean_IR_FreeIndices_collectFnBody___main___closed__1); +l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1___closed__1 = _init_l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1___closed__1(); +lean_mark_persistent(l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1___closed__1); +l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1 = _init_l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1(); +lean_mark_persistent(l_Lean_IR_MaxIndex_Lean_Compiler_IR_FreeVars___instance__1); +l_Lean_IR_MaxIndex_collectFnBody___closed__1 = _init_l_Lean_IR_MaxIndex_collectFnBody___closed__1(); +lean_mark_persistent(l_Lean_IR_MaxIndex_collectFnBody___closed__1); +l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2___closed__1 = _init_l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2___closed__1(); +lean_mark_persistent(l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2___closed__1); +l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2 = _init_l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2(); +lean_mark_persistent(l_Lean_IR_FreeIndices_Lean_Compiler_IR_FreeVars___instance__2); +l_Lean_IR_FreeIndices_collectFnBody___closed__1 = _init_l_Lean_IR_FreeIndices_collectFnBody___closed__1(); +lean_mark_persistent(l_Lean_IR_FreeIndices_collectFnBody___closed__1); return lean_io_result_mk_ok(lean_box(0)); } #ifdef __cplusplus diff --git a/stage0/stdlib/Lean/Compiler/IR/LiveVars.c b/stage0/stdlib/Lean/Compiler/IR/LiveVars.c index a15d20d32e..830578c906 100644 --- a/stage0/stdlib/Lean/Compiler/IR/LiveVars.c +++ b/stage0/stdlib/Lean/Compiler/IR/LiveVars.c @@ -13,91 +13,100 @@ #ifdef __cplusplus extern "C" { #endif -lean_object* l___private_Lean_Compiler_IR_LiveVars_1__skip___boxed(lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectVar(lean_object*, lean_object*); +lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitArg___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_6__accumulate___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitFnBody___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_LiveVars_collectExpr(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitExpr___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__1(lean_object*, lean_object*); lean_object* l_Lean_IR_LiveVars_collectFnBody(lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitJP(lean_object*, lean_object*, lean_object*); +lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___spec__1___boxed(lean_object*, lean_object*); uint8_t l_Lean_IR_HasIndex_visitExpr(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_8__bindVar___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_8__bindVar(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_5__collectArgs___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP_match__1(lean_object*); +lean_object* l_Lean_IR_LiveVars_collectFnBody_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar(lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitExpr(lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_7__collectJP___spec__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at_Lean_IR_LiveVars_collectFnBody___spec__3___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); -lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_5__collectArgs(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg(lean_object*, lean_object*); +lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate___spec__1(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_AltCore_body(lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___spec__1(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__1(lean_object*, lean_object*); lean_object* l_Std_RBNode_setBlack___rarg(lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_7__collectJP___boxed(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_IR_collectLiveVars(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitArg(lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(lean_object*, lean_object*); -lean_object* l_Lean_IR_LiveVars_collectFnBody___main(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_9__bindParams(lean_object*, lean_object*); +lean_object* l_Lean_IR_IsLive_visitFnBody_match__1(lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_forM___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at_Lean_IR_LiveVars_collectFnBody___main___spec__3(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_1__skip(lean_object*); -lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_7__collectJP___spec__1(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_9__bindParams___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_IR_IsLive_visitFnBody_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Std_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitJP___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_2__collectVar(lean_object*, lean_object*); lean_object* l_Std_RBNode_balRight___rarg(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Std_RBNode_isBlack___rarg(lean_object*); lean_object* l_Array_iterateMAux___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_LiveVars_updateJPLiveVarMap___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_RBNode_erase___at_Lean_IR_LocalContext_eraseJoinPointDecl___spec__1(lean_object*, lean_object*); -lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___boxed(lean_object*, lean_object*); +lean_object* l_Lean_IR_IsLive_visitFnBody_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Std_RBNode_ins___main___at_Lean_IR_mkLiveVarSet___spec__2(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_IsLive_visitFnBody___main___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_6__accumulate___spec__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_IsLive_visitFnBody_match__2(lean_object*); lean_object* l_Std_RBNode_balLeft___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_RBNode_appendTrees___main___rarg(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at_Lean_IR_LiveVars_collectFnBody___main___spec__3___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at_Lean_IR_LiveVars_collectFnBody___spec__3(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_LiveVars_collectFnBody_match__1(lean_object*); extern lean_object* l_Id_Monad; -lean_object* l___private_Lean_Compiler_IR_LiveVars_3__collectArg(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate(lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitFnBody(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_IR_LiveVars_collectExpr_match__1(lean_object*); +lean_object* l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitArgs___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg_match__1___rarg(lean_object*, lean_object*, lean_object*); uint8_t l_Std_RBNode_isRed___rarg(lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray(lean_object*); +lean_object* l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitArgs(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg_match__1(lean_object*); lean_object* l_Lean_IR_updateLiveVars(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_hasLiveVar(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_IR_HasIndex_visitArg(lean_object*, lean_object*); +lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(lean_object*, lean_object*); uint8_t l_Lean_IR_HasIndex_visitArgs(lean_object*, lean_object*); lean_object* l_Lean_IR_LiveVarSet_inhabited; +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_mkLiveVarSet(lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_9__bindParams___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams(lean_object*, lean_object*); lean_object* l_Lean_IR_LocalContext_getJPBody(lean_object*, lean_object*); -lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_7__collectJP(lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___main___spec__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_LiveVars_collectExpr_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitVar___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_9__bindParams___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_hasLiveVar___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray(lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_skip___boxed(lean_object*); lean_object* l_Lean_IR_IsLive_visitVar(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_IR_IsLive_visitFnBody___main(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_skip(lean_object*); extern lean_object* l_Lean_Position_lt___closed__2; lean_object* l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Compiler_IR_LiveVars_6__accumulate(lean_object*, lean_object*); lean_object* l_Lean_IR_LiveVars_updateJPLiveVarMap(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_IsLive_visitVar(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -208,7 +217,425 @@ lean_dec(x_1); return x_4; } } -lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Lean_IR_IsLive_visitFnBody_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_2); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_3, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_2, x_6); +return x_7; +} +} +} +lean_object* l_Lean_IR_IsLive_visitFnBody_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_IsLive_visitFnBody_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_IR_IsLive_visitFnBody_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +x_18 = lean_ctor_get(x_1, 2); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 3); +lean_inc(x_19); +lean_dec(x_1); +x_20 = lean_apply_4(x_2, x_16, x_17, x_18, x_19); +return x_20; +} +case 1: +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_21 = lean_ctor_get(x_1, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_1, 1); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 2); +lean_inc(x_23); +x_24 = lean_ctor_get(x_1, 3); +lean_inc(x_24); +lean_dec(x_1); +x_25 = lean_apply_4(x_3, x_21, x_22, x_23, x_24); +return x_25; +} +case 2: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_26 = lean_ctor_get(x_1, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_1, 1); +lean_inc(x_27); +x_28 = lean_ctor_get(x_1, 2); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 3); +lean_inc(x_29); +lean_dec(x_1); +x_30 = lean_apply_4(x_4, x_26, x_27, x_28, x_29); +return x_30; +} +case 3: +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = lean_ctor_get(x_1, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_1, 1); +lean_inc(x_32); +x_33 = lean_ctor_get(x_1, 2); +lean_inc(x_33); +lean_dec(x_1); +x_34 = lean_apply_3(x_7, x_31, x_32, x_33); +return x_34; +} +case 4: +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_35 = lean_ctor_get(x_1, 0); +lean_inc(x_35); +x_36 = lean_ctor_get(x_1, 1); +lean_inc(x_36); +x_37 = lean_ctor_get(x_1, 2); +lean_inc(x_37); +x_38 = lean_ctor_get(x_1, 3); +lean_inc(x_38); +lean_dec(x_1); +x_39 = lean_apply_4(x_5, x_35, x_36, x_37, x_38); +return x_39; +} +case 5: +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_40 = lean_ctor_get(x_1, 0); +lean_inc(x_40); +x_41 = lean_ctor_get(x_1, 1); +lean_inc(x_41); +x_42 = lean_ctor_get(x_1, 2); +lean_inc(x_42); +x_43 = lean_ctor_get(x_1, 3); +lean_inc(x_43); +x_44 = lean_ctor_get(x_1, 4); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 5); +lean_inc(x_45); +lean_dec(x_1); +x_46 = lean_apply_6(x_6, x_40, x_41, x_42, x_43, x_44, x_45); +return x_46; +} +case 6: +{ +lean_object* x_47; lean_object* x_48; uint8_t x_49; uint8_t x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +x_49 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_50 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_51 = lean_ctor_get(x_1, 2); +lean_inc(x_51); +lean_dec(x_1); +x_52 = lean_box(x_49); +x_53 = lean_box(x_50); +x_54 = lean_apply_5(x_8, x_47, x_48, x_52, x_53, x_51); +return x_54; +} +case 7: +{ +lean_object* x_55; lean_object* x_56; uint8_t x_57; uint8_t x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_55 = lean_ctor_get(x_1, 0); +lean_inc(x_55); +x_56 = lean_ctor_get(x_1, 1); +lean_inc(x_56); +x_57 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_58 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_59 = lean_ctor_get(x_1, 2); +lean_inc(x_59); +lean_dec(x_1); +x_60 = lean_box(x_57); +x_61 = lean_box(x_58); +x_62 = lean_apply_5(x_9, x_55, x_56, x_60, x_61, x_59); +return x_62; +} +case 8: +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_63 = lean_ctor_get(x_1, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_1, 1); +lean_inc(x_64); +lean_dec(x_1); +x_65 = lean_apply_2(x_10, x_63, x_64); +return x_65; +} +case 9: +{ +lean_object* x_66; lean_object* x_67; lean_object* x_68; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_66 = lean_ctor_get(x_1, 0); +lean_inc(x_66); +x_67 = lean_ctor_get(x_1, 1); +lean_inc(x_67); +lean_dec(x_1); +x_68 = lean_apply_2(x_11, x_66, x_67); +return x_68; +} +case 10: +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_69 = lean_ctor_get(x_1, 0); +lean_inc(x_69); +x_70 = lean_ctor_get(x_1, 1); +lean_inc(x_70); +x_71 = lean_ctor_get(x_1, 2); +lean_inc(x_71); +x_72 = lean_ctor_get(x_1, 3); +lean_inc(x_72); +lean_dec(x_1); +x_73 = lean_apply_4(x_14, x_69, x_70, x_71, x_72); +return x_73; +} +case 11: +{ +lean_object* x_74; lean_object* x_75; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_74 = lean_ctor_get(x_1, 0); +lean_inc(x_74); +lean_dec(x_1); +x_75 = lean_apply_1(x_13, x_74); +return x_75; +} +case 12: +{ +lean_object* x_76; lean_object* x_77; lean_object* x_78; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_76 = lean_ctor_get(x_1, 0); +lean_inc(x_76); +x_77 = lean_ctor_get(x_1, 1); +lean_inc(x_77); +lean_dec(x_1); +x_78 = lean_apply_2(x_12, x_76, x_77); +return x_78; +} +default: +{ +lean_object* x_79; lean_object* x_80; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_79 = lean_box(0); +x_80 = lean_apply_1(x_15, x_79); +return x_80; +} +} +} +} +lean_object* l_Lean_IR_IsLive_visitFnBody_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_IsLive_visitFnBody_match__2___rarg), 15, 0); +return x_2; +} +} +lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { uint8_t x_7; @@ -230,7 +657,7 @@ lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint x_11 = lean_array_fget(x_3, x_5); x_12 = l_Lean_IR_AltCore_body(x_11); lean_dec(x_11); -x_13 = l_Lean_IR_IsLive_visitFnBody___main(x_1, x_12, x_6); +x_13 = l_Lean_IR_IsLive_visitFnBody(x_1, x_12, x_6); x_14 = lean_ctor_get(x_13, 0); lean_inc(x_14); x_15 = lean_unbox(x_14); @@ -275,7 +702,7 @@ return x_23; } } } -lean_object* l_Lean_IR_IsLive_visitFnBody___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_IsLive_visitFnBody(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { switch (lean_obj_tag(x_2)) { @@ -313,7 +740,7 @@ lean_inc(x_10); x_11 = lean_ctor_get(x_2, 3); lean_inc(x_11); lean_dec(x_2); -x_12 = l_Lean_IR_IsLive_visitFnBody___main(x_1, x_10, x_3); +x_12 = l_Lean_IR_IsLive_visitFnBody(x_1, x_10, x_3); x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); x_14 = lean_unbox(x_13); @@ -538,7 +965,7 @@ if (x_61 == 0) lean_object* x_62; lean_object* x_63; lean_object* x_64; x_62 = lean_array_get_size(x_60); x_63 = lean_unsigned_to_nat(0u); -x_64 = l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___main___spec__1(x_1, x_60, x_60, x_62, x_63, x_3); +x_64 = l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___spec__1(x_1, x_60, x_60, x_62, x_63, x_3); lean_dec(x_62); lean_dec(x_60); return x_64; @@ -655,11 +1082,11 @@ return x_90; } } } -lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; -x_7 = l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Array_anyRangeMAux___main___at_Lean_IR_IsLive_visitFnBody___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); @@ -667,23 +1094,6 @@ lean_dec(x_1); return x_7; } } -lean_object* l_Lean_IR_IsLive_visitFnBody___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_IR_IsLive_visitFnBody___main(x_1, x_2, x_3); -lean_dec(x_1); -return x_4; -} -} -lean_object* l_Lean_IR_IsLive_visitFnBody(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_IR_IsLive_visitFnBody___main(x_1, x_2, x_3); -return x_4; -} -} lean_object* l_Lean_IR_IsLive_visitFnBody___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -697,7 +1107,7 @@ lean_object* l_Lean_IR_FnBody_hasLiveVar(lean_object* x_1, lean_object* x_2, lea _start: { lean_object* x_4; lean_object* x_5; -x_4 = l_Lean_IR_IsLive_visitFnBody___main(x_3, x_1, x_2); +x_4 = l_Lean_IR_IsLive_visitFnBody(x_3, x_1, x_2); x_5 = lean_ctor_get(x_4, 0); lean_inc(x_5); lean_dec(x_4); @@ -3136,23 +3546,23 @@ x_4 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_2, x_1, x_3); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_1__skip(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_skip(lean_object* x_1) { _start: { lean_inc(x_1); return x_1; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_1__skip___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_skip___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l___private_Lean_Compiler_IR_LiveVars_1__skip(x_1); +x_2 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_skip(x_1); lean_dec(x_1); return x_2; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_2__collectVar(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectVar(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; @@ -3161,7 +3571,37 @@ x_4 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_2, x_1, x_3); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_3__collectArg(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; +lean_dec(x_2); +x_6 = lean_apply_1(x_3, x_1); +return x_6; +} +} +} +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -3180,7 +3620,7 @@ return x_2; } } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; @@ -3192,15 +3632,15 @@ x_7 = l_Array_iterateMAux___main___rarg(x_5, lean_box(0), x_1, x_4, x_6, x_3); return x_7; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray(lean_object* x_1) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_LiveVars_4__collectArray___rarg), 3, 0); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___rarg), 3, 0); return x_2; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; uint8_t x_6; @@ -3216,7 +3656,7 @@ else { lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; x_7 = lean_array_fget(x_2, x_3); -x_8 = l___private_Lean_Compiler_IR_LiveVars_3__collectArg(x_7, x_4); +x_8 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg(x_7, x_4); x_9 = lean_unsigned_to_nat(1u); x_10 = lean_nat_add(x_3, x_9); lean_dec(x_3); @@ -3226,53 +3666,53 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; x_3 = lean_unsigned_to_nat(0u); -x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(x_1, x_1, x_3, x_2); +x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(x_1, x_1, x_3, x_2); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_5__collectArgs(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; x_3 = lean_unsigned_to_nat(0u); -x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(x_1, x_1, x_3, x_2); +x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(x_1, x_1, x_3, x_2); return x_4; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(x_1, x_2, x_3, x_4); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(x_1, x_2, x_3, x_4); lean_dec(x_2); lean_dec(x_1); return x_5; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__1(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__1(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_5__collectArgs___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_LiveVars_5__collectArgs(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_6__accumulate___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -3289,7 +3729,7 @@ lean_inc(x_5); x_6 = lean_ctor_get(x_3, 3); lean_inc(x_6); lean_dec(x_3); -x_7 = l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_6__accumulate___spec__1(x_1, x_2, x_4); +x_7 = l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate___spec__1(x_1, x_2, x_4); x_8 = lean_box(0); x_9 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_7, x_5, x_8); x_2 = x_9; @@ -3298,25 +3738,56 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_6__accumulate(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; x_3 = l_Lean_Position_lt___closed__2; -x_4 = l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_6__accumulate___spec__1(x_3, x_2, x_1); +x_4 = l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate___spec__1(x_3, x_2, x_1); return x_4; } } -lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_6__accumulate___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_6__accumulate___spec__1(x_1, x_2, x_3); +x_4 = l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate___spec__1(x_1, x_2, x_3); lean_dec(x_1); return x_4; } } -lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_7__collectJP___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_2); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_3, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_2, x_6); +return x_7; +} +} +} +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -3359,11 +3830,11 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_7__collectJP(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_7__collectJP___spec__1(x_1, x_2); +x_4 = l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___spec__1(x_1, x_2); if (lean_obj_tag(x_4) == 0) { return x_3; @@ -3375,32 +3846,32 @@ x_5 = lean_ctor_get(x_4, 0); lean_inc(x_5); lean_dec(x_4); x_6 = l_Lean_Position_lt___closed__2; -x_7 = l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_6__accumulate___spec__1(x_6, x_3, x_5); +x_7 = l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_accumulate___spec__1(x_6, x_3, x_5); return x_7; } } } -lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_7__collectJP___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_7__collectJP___spec__1(x_1, x_2); +x_3 = l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___spec__1(x_1, x_2); lean_dec(x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_7__collectJP___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_LiveVars_7__collectJP(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(lean_object* x_1, lean_object* x_2) { +lean_object* l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -3439,7 +3910,7 @@ x_11 = l_Std_RBNode_isBlack___rarg(x_7); if (x_11 == 0) { lean_object* x_12; uint8_t x_13; -x_12 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_7); +x_12 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_7); x_13 = 0; lean_ctor_set(x_2, 3, x_12); lean_ctor_set_uint8(x_2, sizeof(void*)*4, x_13); @@ -3449,7 +3920,7 @@ else { lean_object* x_14; lean_object* x_15; lean_free_object(x_2); -x_14 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_7); +x_14 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_7); x_15 = l_Std_RBNode_balRight___rarg(x_4, x_5, x_6, x_14); return x_15; } @@ -3462,7 +3933,7 @@ x_16 = l_Std_RBNode_isBlack___rarg(x_4); if (x_16 == 0) { lean_object* x_17; uint8_t x_18; -x_17 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_4); +x_17 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_4); x_18 = 0; lean_ctor_set(x_2, 0, x_17); lean_ctor_set_uint8(x_2, sizeof(void*)*4, x_18); @@ -3472,7 +3943,7 @@ else { lean_object* x_19; lean_object* x_20; lean_free_object(x_2); -x_19 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_4); +x_19 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_4); x_20 = l_Std_RBNode_balLeft___rarg(x_19, x_5, x_6, x_7); return x_20; } @@ -3510,7 +3981,7 @@ x_28 = l_Std_RBNode_isBlack___rarg(x_24); if (x_28 == 0) { lean_object* x_29; uint8_t x_30; lean_object* x_31; -x_29 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_24); +x_29 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_24); x_30 = 0; x_31 = lean_alloc_ctor(1, 4, 1); lean_ctor_set(x_31, 0, x_21); @@ -3523,7 +3994,7 @@ return x_31; else { lean_object* x_32; lean_object* x_33; -x_32 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_24); +x_32 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_24); x_33 = l_Std_RBNode_balRight___rarg(x_21, x_22, x_23, x_32); return x_33; } @@ -3536,7 +4007,7 @@ x_34 = l_Std_RBNode_isBlack___rarg(x_21); if (x_34 == 0) { lean_object* x_35; uint8_t x_36; lean_object* x_37; -x_35 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_21); +x_35 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_21); x_36 = 0; x_37 = lean_alloc_ctor(1, 4, 1); lean_ctor_set(x_37, 0, x_35); @@ -3549,7 +4020,7 @@ return x_37; else { lean_object* x_38; lean_object* x_39; -x_38 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_21); +x_38 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_21); x_39 = l_Std_RBNode_balLeft___rarg(x_38, x_22, x_23, x_24); return x_39; } @@ -3558,51 +4029,51 @@ return x_39; } } } -lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; -x_3 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_2); +x_3 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_2); x_4 = l_Std_RBNode_setBlack___rarg(x_3); return x_4; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_8__bindVar(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_1, x_2); +x_3 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_1, x_2); return x_3; } } -lean_object* l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__2(x_1, x_2); +x_3 = l_Std_RBNode_del___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__2(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_1, x_2); +x_3 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_8__bindVar___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_LiveVars_8__bindVar(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_9__bindParams___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; uint8_t x_6; @@ -3624,7 +4095,7 @@ lean_dec(x_7); x_9 = lean_unsigned_to_nat(1u); x_10 = lean_nat_add(x_3, x_9); lean_dec(x_3); -x_11 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_8, x_4); +x_11 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_8, x_4); lean_dec(x_8); x_3 = x_10; x_4 = x_11; @@ -3632,34 +4103,383 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_9__bindParams(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; x_3 = lean_unsigned_to_nat(0u); -x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_9__bindParams___spec__1(x_1, x_1, x_3, x_2); +x_4 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___spec__1(x_1, x_1, x_3, x_2); return x_4; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_9__bindParams___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_9__bindParams___spec__1(x_1, x_2, x_3, x_4); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___spec__1(x_1, x_2, x_3, x_4); lean_dec(x_2); lean_dec(x_1); return x_5; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_9__bindParams___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Lean_Compiler_IR_LiveVars_9__bindParams(x_1, x_2); +x_3 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams(x_1, x_2); lean_dec(x_1); return x_3; } } +lean_object* l_Lean_IR_LiveVars_collectExpr_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_apply_2(x_2, x_16, x_17); +return x_18; +} +case 1: +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_19 = lean_ctor_get(x_1, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_1, 1); +lean_inc(x_20); +lean_dec(x_1); +x_21 = lean_apply_2(x_3, x_19, x_20); +return x_21; +} +case 2: +{ +lean_object* x_22; lean_object* x_23; uint8_t x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_22 = lean_ctor_get(x_1, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 1); +lean_inc(x_23); +x_24 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_25 = lean_ctor_get(x_1, 2); +lean_inc(x_25); +lean_dec(x_1); +x_26 = lean_box(x_24); +x_27 = lean_apply_4(x_4, x_22, x_23, x_26, x_25); +return x_27; +} +case 3: +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_28 = lean_ctor_get(x_1, 0); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 1); +lean_inc(x_29); +lean_dec(x_1); +x_30 = lean_apply_2(x_5, x_28, x_29); +return x_30; +} +case 4: +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = lean_ctor_get(x_1, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_1, 1); +lean_inc(x_32); +lean_dec(x_1); +x_33 = lean_apply_2(x_6, x_31, x_32); +return x_33; +} +case 5: +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_34 = lean_ctor_get(x_1, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_1, 1); +lean_inc(x_35); +x_36 = lean_ctor_get(x_1, 2); +lean_inc(x_36); +lean_dec(x_1); +x_37 = lean_apply_3(x_7, x_34, x_35, x_36); +return x_37; +} +case 6: +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_38 = lean_ctor_get(x_1, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_1, 1); +lean_inc(x_39); +lean_dec(x_1); +x_40 = lean_apply_2(x_8, x_38, x_39); +return x_40; +} +case 7: +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_41 = lean_ctor_get(x_1, 0); +lean_inc(x_41); +x_42 = lean_ctor_get(x_1, 1); +lean_inc(x_42); +lean_dec(x_1); +x_43 = lean_apply_2(x_9, x_41, x_42); +return x_43; +} +case 8: +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_44 = lean_ctor_get(x_1, 0); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 1); +lean_inc(x_45); +lean_dec(x_1); +x_46 = lean_apply_2(x_10, x_44, x_45); +return x_46; +} +case 9: +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +lean_dec(x_1); +x_49 = lean_apply_2(x_11, x_47, x_48); +return x_49; +} +case 10: +{ +lean_object* x_50; lean_object* x_51; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_50 = lean_ctor_get(x_1, 0); +lean_inc(x_50); +lean_dec(x_1); +x_51 = lean_apply_1(x_12, x_50); +return x_51; +} +case 11: +{ +lean_object* x_52; lean_object* x_53; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); +lean_dec(x_1); +x_53 = lean_apply_1(x_13, x_52); +return x_53; +} +case 12: +{ +lean_object* x_54; lean_object* x_55; +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_54 = lean_ctor_get(x_1, 0); +lean_inc(x_54); +lean_dec(x_1); +x_55 = lean_apply_1(x_14, x_54); +return x_55; +} +default: +{ +lean_object* x_56; lean_object* x_57; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_56 = lean_ctor_get(x_1, 0); +lean_inc(x_56); +lean_dec(x_1); +x_57 = lean_apply_1(x_15, x_56); +return x_57; +} +} +} +} +lean_object* l_Lean_IR_LiveVars_collectExpr_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_LiveVars_collectExpr_match__1___rarg), 15, 0); +return x_2; +} +} lean_object* l_Lean_IR_LiveVars_collectExpr(lean_object* x_1, lean_object* x_2) { _start: { @@ -3671,7 +4491,7 @@ x_3 = lean_ctor_get(x_1, 1); lean_inc(x_3); lean_dec(x_1); x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(x_3, x_3, x_4, x_2); +x_5 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(x_3, x_3, x_4, x_2); lean_dec(x_3); return x_5; } @@ -3684,7 +4504,7 @@ x_7 = lean_ctor_get(x_1, 2); lean_inc(x_7); lean_dec(x_1); x_8 = lean_unsigned_to_nat(0u); -x_9 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(x_7, x_7, x_8, x_2); +x_9 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(x_7, x_7, x_8, x_2); lean_dec(x_7); x_10 = lean_box(0); x_11 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_9, x_6, x_10); @@ -3707,7 +4527,7 @@ x_15 = lean_ctor_get(x_1, 1); lean_inc(x_15); lean_dec(x_1); x_16 = lean_unsigned_to_nat(0u); -x_17 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(x_15, x_15, x_16, x_2); +x_17 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(x_15, x_15, x_16, x_2); lean_dec(x_15); return x_17; } @@ -3718,7 +4538,7 @@ x_18 = lean_ctor_get(x_1, 1); lean_inc(x_18); lean_dec(x_1); x_19 = lean_unsigned_to_nat(0u); -x_20 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(x_18, x_18, x_19, x_2); +x_20 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(x_18, x_18, x_19, x_2); lean_dec(x_18); return x_20; } @@ -3731,7 +4551,7 @@ x_22 = lean_ctor_get(x_1, 1); lean_inc(x_22); lean_dec(x_1); x_23 = lean_unsigned_to_nat(0u); -x_24 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(x_22, x_22, x_23, x_2); +x_24 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(x_22, x_22, x_23, x_2); lean_dec(x_22); x_25 = lean_box(0); x_26 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_24, x_21, x_25); @@ -3785,7 +4605,393 @@ return x_38; } } } -lean_object* l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_LiveVars_collectFnBody_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_17 = lean_ctor_get(x_1, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_1, 1); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 2); +lean_inc(x_19); +x_20 = lean_ctor_get(x_1, 3); +lean_inc(x_20); +lean_dec(x_1); +x_21 = lean_apply_5(x_3, x_17, x_18, x_19, x_20, x_2); +return x_21; +} +case 1: +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +x_22 = lean_ctor_get(x_1, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 1); +lean_inc(x_23); +x_24 = lean_ctor_get(x_1, 2); +lean_inc(x_24); +x_25 = lean_ctor_get(x_1, 3); +lean_inc(x_25); +lean_dec(x_1); +x_26 = lean_apply_5(x_4, x_22, x_23, x_24, x_25, x_2); +return x_26; +} +case 2: +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +x_27 = lean_ctor_get(x_1, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_1, 1); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 2); +lean_inc(x_29); +x_30 = lean_ctor_get(x_1, 3); +lean_inc(x_30); +lean_dec(x_1); +x_31 = lean_apply_5(x_5, x_27, x_28, x_29, x_30, x_2); +return x_31; +} +case 3: +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_32 = lean_ctor_get(x_1, 0); +lean_inc(x_32); +x_33 = lean_ctor_get(x_1, 1); +lean_inc(x_33); +x_34 = lean_ctor_get(x_1, 2); +lean_inc(x_34); +lean_dec(x_1); +x_35 = lean_apply_4(x_6, x_32, x_33, x_34, x_2); +return x_35; +} +case 4: +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_36 = lean_ctor_get(x_1, 0); +lean_inc(x_36); +x_37 = lean_ctor_get(x_1, 1); +lean_inc(x_37); +x_38 = lean_ctor_get(x_1, 2); +lean_inc(x_38); +x_39 = lean_ctor_get(x_1, 3); +lean_inc(x_39); +lean_dec(x_1); +x_40 = lean_apply_5(x_7, x_36, x_37, x_38, x_39, x_2); +return x_40; +} +case 5: +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_41 = lean_ctor_get(x_1, 0); +lean_inc(x_41); +x_42 = lean_ctor_get(x_1, 1); +lean_inc(x_42); +x_43 = lean_ctor_get(x_1, 2); +lean_inc(x_43); +x_44 = lean_ctor_get(x_1, 3); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 4); +lean_inc(x_45); +x_46 = lean_ctor_get(x_1, 5); +lean_inc(x_46); +lean_dec(x_1); +x_47 = lean_apply_7(x_8, x_41, x_42, x_43, x_44, x_45, x_46, x_2); +return x_47; +} +case 6: +{ +lean_object* x_48; lean_object* x_49; uint8_t x_50; uint8_t x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_48 = lean_ctor_get(x_1, 0); +lean_inc(x_48); +x_49 = lean_ctor_get(x_1, 1); +lean_inc(x_49); +x_50 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_51 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_52 = lean_ctor_get(x_1, 2); +lean_inc(x_52); +lean_dec(x_1); +x_53 = lean_box(x_50); +x_54 = lean_box(x_51); +x_55 = lean_apply_6(x_9, x_48, x_49, x_53, x_54, x_52, x_2); +return x_55; +} +case 7: +{ +lean_object* x_56; lean_object* x_57; uint8_t x_58; uint8_t x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_56 = lean_ctor_get(x_1, 0); +lean_inc(x_56); +x_57 = lean_ctor_get(x_1, 1); +lean_inc(x_57); +x_58 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +x_59 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 1); +x_60 = lean_ctor_get(x_1, 2); +lean_inc(x_60); +lean_dec(x_1); +x_61 = lean_box(x_58); +x_62 = lean_box(x_59); +x_63 = lean_apply_6(x_10, x_56, x_57, x_61, x_62, x_60, x_2); +return x_63; +} +case 8: +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_64 = lean_ctor_get(x_1, 0); +lean_inc(x_64); +x_65 = lean_ctor_get(x_1, 1); +lean_inc(x_65); +lean_dec(x_1); +x_66 = lean_apply_3(x_11, x_64, x_65, x_2); +return x_66; +} +case 9: +{ +lean_object* x_67; lean_object* x_68; lean_object* x_69; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_67 = lean_ctor_get(x_1, 0); +lean_inc(x_67); +x_68 = lean_ctor_get(x_1, 1); +lean_inc(x_68); +lean_dec(x_1); +x_69 = lean_apply_3(x_12, x_67, x_68, x_2); +return x_69; +} +case 10: +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_70 = lean_ctor_get(x_1, 0); +lean_inc(x_70); +x_71 = lean_ctor_get(x_1, 1); +lean_inc(x_71); +x_72 = lean_ctor_get(x_1, 2); +lean_inc(x_72); +x_73 = lean_ctor_get(x_1, 3); +lean_inc(x_73); +lean_dec(x_1); +x_74 = lean_apply_5(x_14, x_70, x_71, x_72, x_73, x_2); +return x_74; +} +case 11: +{ +lean_object* x_75; lean_object* x_76; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_75 = lean_ctor_get(x_1, 0); +lean_inc(x_75); +lean_dec(x_1); +x_76 = lean_apply_2(x_13, x_75, x_2); +return x_76; +} +case 12: +{ +lean_object* x_77; lean_object* x_78; lean_object* x_79; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_77 = lean_ctor_get(x_1, 0); +lean_inc(x_77); +x_78 = lean_ctor_get(x_1, 1); +lean_inc(x_78); +lean_dec(x_1); +x_79 = lean_apply_3(x_16, x_77, x_78, x_2); +return x_79; +} +default: +{ +lean_object* x_80; +lean_dec(x_16); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_80 = lean_apply_1(x_15, x_2); +return x_80; +} +} +} +} +lean_object* l_Lean_IR_LiveVars_collectFnBody_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_IR_LiveVars_collectFnBody_match__1___rarg), 16, 0); +return x_2; +} +} +lean_object* l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -3831,7 +5037,7 @@ return x_1; else { lean_object* x_14; -x_14 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_11, x_2, x_3); +x_14 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_11, x_2, x_3); lean_ctor_set(x_1, 3, x_14); return x_1; } @@ -3839,7 +5045,7 @@ return x_1; else { lean_object* x_15; -x_15 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_8, x_2, x_3); +x_15 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_8, x_2, x_3); lean_ctor_set(x_1, 0, x_15); return x_1; } @@ -3877,7 +5083,7 @@ return x_22; else { lean_object* x_23; lean_object* x_24; -x_23 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_19, x_2, x_3); +x_23 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_19, x_2, x_3); x_24 = lean_alloc_ctor(1, 4, 1); lean_ctor_set(x_24, 0, x_16); lean_ctor_set(x_24, 1, x_17); @@ -3890,7 +5096,7 @@ return x_24; else { lean_object* x_25; lean_object* x_26; -x_25 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_16, x_2, x_3); +x_25 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_16, x_2, x_3); x_26 = lean_alloc_ctor(1, 4, 1); lean_ctor_set(x_26, 0, x_25); lean_ctor_set(x_26, 1, x_17); @@ -3932,14 +5138,14 @@ x_34 = l_Std_RBNode_isRed___rarg(x_31); if (x_34 == 0) { lean_object* x_35; -x_35 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_31, x_2, x_3); +x_35 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_31, x_2, x_3); lean_ctor_set(x_1, 3, x_35); return x_1; } else { lean_object* x_36; lean_object* x_37; -x_36 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_31, x_2, x_3); +x_36 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_31, x_2, x_3); x_37 = lean_ctor_get(x_36, 0); lean_inc(x_37); if (lean_obj_tag(x_37) == 0) @@ -4600,14 +5806,14 @@ x_174 = l_Std_RBNode_isRed___rarg(x_28); if (x_174 == 0) { lean_object* x_175; -x_175 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_28, x_2, x_3); +x_175 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_28, x_2, x_3); lean_ctor_set(x_1, 0, x_175); return x_1; } else { lean_object* x_176; lean_object* x_177; -x_176 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_28, x_2, x_3); +x_176 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_28, x_2, x_3); x_177 = lean_ctor_get(x_176, 0); lean_inc(x_177); if (lean_obj_tag(x_177) == 0) @@ -5307,7 +6513,7 @@ x_322 = l_Std_RBNode_isRed___rarg(x_318); if (x_322 == 0) { lean_object* x_323; lean_object* x_324; -x_323 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_318, x_2, x_3); +x_323 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_318, x_2, x_3); x_324 = lean_alloc_ctor(1, 4, 1); lean_ctor_set(x_324, 0, x_315); lean_ctor_set(x_324, 1, x_316); @@ -5319,7 +6525,7 @@ return x_324; else { lean_object* x_325; lean_object* x_326; -x_325 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_318, x_2, x_3); +x_325 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_318, x_2, x_3); x_326 = lean_ctor_get(x_325, 0); lean_inc(x_326); if (lean_obj_tag(x_326) == 0) @@ -5740,7 +6946,7 @@ x_400 = l_Std_RBNode_isRed___rarg(x_315); if (x_400 == 0) { lean_object* x_401; lean_object* x_402; -x_401 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_315, x_2, x_3); +x_401 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_315, x_2, x_3); x_402 = lean_alloc_ctor(1, 4, 1); lean_ctor_set(x_402, 0, x_401); lean_ctor_set(x_402, 1, x_316); @@ -5752,7 +6958,7 @@ return x_402; else { lean_object* x_403; lean_object* x_404; -x_403 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_315, x_2, x_3); +x_403 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_315, x_2, x_3); x_404 = lean_ctor_get(x_403, 0); lean_inc(x_404); if (lean_obj_tag(x_404) == 0) @@ -6170,7 +7376,7 @@ return x_477; } } } -lean_object* l_Std_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Std_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; @@ -6178,19 +7384,19 @@ x_4 = l_Std_RBNode_isRed___rarg(x_1); if (x_4 == 0) { lean_object* x_5; -x_5 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_1, x_2, x_3); +x_5 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_1, x_2, x_3); return x_5; } else { lean_object* x_6; lean_object* x_7; -x_6 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__2(x_1, x_2, x_3); +x_6 = l_Std_RBNode_ins___main___at_Lean_IR_LiveVars_collectFnBody___spec__2(x_1, x_2, x_3); x_7 = l_Std_RBNode_setBlack___rarg(x_6); return x_7; } } } -lean_object* l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; uint8_t x_7; @@ -6210,7 +7416,7 @@ x_8 = lean_array_fget(x_3, x_4); x_9 = l_Lean_IR_AltCore_body(x_8); lean_dec(x_8); lean_inc(x_1); -x_10 = l_Lean_IR_LiveVars_collectFnBody___main(x_9, x_1, x_5); +x_10 = l_Lean_IR_LiveVars_collectFnBody(x_9, x_1, x_5); x_11 = lean_unsigned_to_nat(1u); x_12 = lean_nat_add(x_4, x_11); lean_dec(x_4); @@ -6220,16 +7426,16 @@ goto _start; } } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at_Lean_IR_LiveVars_collectFnBody___main___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at_Lean_IR_LiveVars_collectFnBody___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__4(x_1, x_2, x_2, x_4, x_3); +x_5 = l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___spec__4(x_1, x_2, x_2, x_4, x_3); return x_5; } } -lean_object* l_Lean_IR_LiveVars_collectFnBody___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_IR_LiveVars_collectFnBody(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { switch (lean_obj_tag(x_1)) { @@ -6243,8 +7449,8 @@ lean_inc(x_5); x_6 = lean_ctor_get(x_1, 3); lean_inc(x_6); lean_dec(x_1); -x_7 = l_Lean_IR_LiveVars_collectFnBody___main(x_6, x_2, x_3); -x_8 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_4, x_7); +x_7 = l_Lean_IR_LiveVars_collectFnBody(x_6, x_2, x_3); +x_8 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_4, x_7); lean_dec(x_4); x_9 = l_Lean_IR_LiveVars_collectExpr(x_5, x_8); return x_9; @@ -6263,11 +7469,11 @@ lean_inc(x_13); lean_dec(x_1); x_14 = lean_box(0); lean_inc(x_2); -x_15 = l_Lean_IR_LiveVars_collectFnBody___main(x_12, x_2, x_14); +x_15 = l_Lean_IR_LiveVars_collectFnBody(x_12, x_2, x_14); x_16 = lean_unsigned_to_nat(0u); -x_17 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_9__bindParams___spec__1(x_11, x_11, x_16, x_15); +x_17 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___spec__1(x_11, x_11, x_16, x_15); lean_dec(x_11); -x_18 = l_Std_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___main___spec__1(x_2, x_10, x_17); +x_18 = l_Std_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___spec__1(x_2, x_10, x_17); x_1 = x_13; x_2 = x_18; goto _start; @@ -6282,8 +7488,8 @@ lean_inc(x_21); x_22 = lean_ctor_get(x_1, 3); lean_inc(x_22); lean_dec(x_1); -x_23 = l_Lean_IR_LiveVars_collectFnBody___main(x_22, x_2, x_3); -x_24 = l___private_Lean_Compiler_IR_LiveVars_3__collectArg(x_21, x_23); +x_23 = l_Lean_IR_LiveVars_collectFnBody(x_22, x_2, x_3); +x_24 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg(x_21, x_23); x_25 = lean_box(0); x_26 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_24, x_20, x_25); return x_26; @@ -6298,7 +7504,7 @@ lean_inc(x_28); x_29 = lean_ctor_get(x_1, 3); lean_inc(x_29); lean_dec(x_1); -x_30 = l_Lean_IR_LiveVars_collectFnBody___main(x_29, x_2, x_3); +x_30 = l_Lean_IR_LiveVars_collectFnBody(x_29, x_2, x_3); x_31 = lean_box(0); x_32 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_30, x_28, x_31); x_33 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_32, x_27, x_31); @@ -6314,7 +7520,7 @@ lean_inc(x_35); x_36 = lean_ctor_get(x_1, 5); lean_inc(x_36); lean_dec(x_1); -x_37 = l_Lean_IR_LiveVars_collectFnBody___main(x_36, x_2, x_3); +x_37 = l_Lean_IR_LiveVars_collectFnBody(x_36, x_2, x_3); x_38 = lean_box(0); x_39 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_37, x_35, x_38); x_40 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_39, x_34, x_38); @@ -6328,7 +7534,7 @@ lean_inc(x_41); x_42 = lean_ctor_get(x_1, 1); lean_inc(x_42); lean_dec(x_1); -x_43 = l_Lean_IR_LiveVars_collectFnBody___main(x_42, x_2, x_3); +x_43 = l_Lean_IR_LiveVars_collectFnBody(x_42, x_2, x_3); x_44 = lean_box(0); x_45 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_43, x_41, x_44); return x_45; @@ -6351,7 +7557,7 @@ x_49 = lean_ctor_get(x_1, 3); lean_inc(x_49); lean_dec(x_1); x_50 = lean_unsigned_to_nat(0u); -x_51 = l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__4(x_2, x_49, x_49, x_50, x_3); +x_51 = l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___spec__4(x_2, x_49, x_49, x_50, x_3); lean_dec(x_49); x_52 = lean_box(0); x_53 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_51, x_48, x_52); @@ -6364,7 +7570,7 @@ lean_dec(x_2); x_54 = lean_ctor_get(x_1, 0); lean_inc(x_54); lean_dec(x_1); -x_55 = l___private_Lean_Compiler_IR_LiveVars_3__collectArg(x_54, x_3); +x_55 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArg(x_54, x_3); return x_55; } case 12: @@ -6376,9 +7582,9 @@ x_57 = lean_ctor_get(x_1, 1); lean_inc(x_57); lean_dec(x_1); x_58 = lean_unsigned_to_nat(0u); -x_59 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_5__collectArgs___spec__2(x_57, x_57, x_58, x_3); +x_59 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArgs___spec__2(x_57, x_57, x_58, x_3); lean_dec(x_57); -x_60 = l___private_Lean_Compiler_IR_LiveVars_7__collectJP(x_2, x_56, x_59); +x_60 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP(x_2, x_56, x_59); lean_dec(x_56); lean_dec(x_2); return x_60; @@ -6396,7 +7602,7 @@ lean_inc(x_61); x_62 = lean_ctor_get(x_1, 2); lean_inc(x_62); lean_dec(x_1); -x_63 = l_Lean_IR_LiveVars_collectFnBody___main(x_62, x_2, x_3); +x_63 = l_Lean_IR_LiveVars_collectFnBody(x_62, x_2, x_3); x_64 = lean_box(0); x_65 = l_Std_RBNode_insert___at_Lean_IR_mkLiveVarSet___spec__1(x_63, x_61, x_64); return x_65; @@ -6404,43 +7610,35 @@ return x_65; } } } -lean_object* l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___main___spec__4(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Array_iterateMAux___main___at_Lean_IR_LiveVars_collectFnBody___spec__4(x_1, x_2, x_3, x_4, x_5); lean_dec(x_3); lean_dec(x_2); return x_6; } } -lean_object* l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at_Lean_IR_LiveVars_collectFnBody___main___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at_Lean_IR_LiveVars_collectFnBody___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Lean_Compiler_IR_LiveVars_4__collectArray___at_Lean_IR_LiveVars_collectFnBody___main___spec__3(x_1, x_2, x_3); +x_4 = l___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectArray___at_Lean_IR_LiveVars_collectFnBody___spec__3(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l_Lean_IR_LiveVars_collectFnBody(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_IR_LiveVars_collectFnBody___main(x_1, x_2, x_3); -return x_4; -} -} lean_object* l_Lean_IR_LiveVars_updateJPLiveVarMap(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _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); lean_inc(x_4); -x_6 = l_Lean_IR_LiveVars_collectFnBody___main(x_3, x_4, x_5); +x_6 = l_Lean_IR_LiveVars_collectFnBody(x_3, x_4, x_5); x_7 = lean_unsigned_to_nat(0u); -x_8 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_9__bindParams___spec__1(x_2, x_2, x_7, x_6); -x_9 = l_Std_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___main___spec__1(x_4, x_1, x_8); +x_8 = l_Array_iterateMAux___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindParams___spec__1(x_2, x_2, x_7, x_6); +x_9 = l_Std_RBNode_insert___at_Lean_IR_LiveVars_collectFnBody___spec__1(x_4, x_1, x_8); return x_9; } } @@ -6465,7 +7663,7 @@ lean_object* l_Lean_IR_collectLiveVars(lean_object* x_1, lean_object* x_2, lean_ _start: { lean_object* x_4; -x_4 = l_Lean_IR_LiveVars_collectFnBody___main(x_1, x_2, x_3); +x_4 = l_Lean_IR_LiveVars_collectFnBody(x_1, x_2, x_3); return x_4; } } diff --git a/stage0/stdlib/Lean/Compiler/IR/RC.c b/stage0/stdlib/Lean/Compiler/IR/RC.c index 52a1fc7c27..b927ee0437 100644 --- a/stage0/stdlib/Lean/Compiler/IR/RC.c +++ b/stage0/stdlib/Lean/Compiler/IR/RC.c @@ -43,6 +43,7 @@ lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_updateRefUsin lean_object* l_Array_iterateMAux___main___at_Lean_IR_ExplicitRC_updateVarInfoWithParams___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_ExplicitRC_visitFnBody_match__8(lean_object*); lean_object* l_Lean_IR_ExplicitRC_getDecl_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_IR_LiveVars_collectFnBody(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addDecAfterFullApp___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_getNumConsumptions___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBefore___spec__2___lambda__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_ExplicitRC_visitFnBody_match__2___rarg(lean_object*, lean_object*); @@ -84,6 +85,7 @@ lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBefore( lean_object* l_Lean_IR_ExplicitRC_getVarInfo___closed__1; lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addDecForAlt___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_ExplicitRC_getJPLiveVars_match__1(lean_object*); +lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___spec__1(lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_isBorrowParamAux___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_RBNode_setBlack___rarg(lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); @@ -105,16 +107,13 @@ uint8_t l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_isBorrowParamAux(l lean_object* l_Lean_IR_ExplicitRC_getJPParams(lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_isScalarBoxedInTaggedPtr_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_ExplicitRC_visitFnBody_match__11(lean_object*); -lean_object* l_Lean_IR_LiveVars_collectFnBody___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_ExplicitRC_visitFnBody_match__4___rarg(lean_object*, lean_object*); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); lean_object* l_Std_RBNode_fold___main___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addDecForAlt___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addDecForDeadParams___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_7__collectJP___spec__1(lean_object*, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); uint8_t l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_getNumConsumptions___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBefore___spec__2___lambda__1(lean_object*, lean_object*); lean_object* l_Lean_IR_ExplicitRC_Context_jpLiveVarMap___default; -lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_isBorrowParamAux___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeConsumeAll___spec__4___rarg___boxed(lean_object*); lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_isBorrowParamAux___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeConsumeAll___spec__4(lean_object*); lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeAux___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -168,6 +167,7 @@ uint8_t l_Std_RBNode_isRed___rarg(lean_object*); lean_object* l_Lean_IR_ExplicitRC_visitFnBody___closed__1; lean_object* l_Lean_IR_ExplicitRC_addInc___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_isPersistent_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(lean_object*, lean_object*); lean_object* l_Lean_IR_ExplicitRC_visitFnBody_match__10(lean_object*); lean_object* l_Lean_IR_ExplicitRC_getDecl(lean_object*, lean_object*); uint8_t l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_consumeExpr(lean_object*, lean_object*); @@ -564,7 +564,7 @@ _start: { lean_object* x_3; lean_object* x_4; x_3 = lean_ctor_get(x_1, 3); -x_4 = l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_7__collectJP___spec__1(x_3, x_2); +x_4 = l_Std_RBNode_find___main___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_collectJP___spec__1(x_3, x_2); if (lean_obj_tag(x_4) == 0) { lean_object* x_5; @@ -6057,7 +6057,7 @@ lean_ctor_set(x_9, 3, x_5); x_10 = l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeAux___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeConsumeAll___spec__1(x_1, x_8, x_9, x_6); lean_dec(x_6); lean_dec(x_8); -x_11 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_11 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_12 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_12, 0, x_10); @@ -6078,7 +6078,7 @@ lean_ctor_set(x_14, 3, x_5); x_15 = l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeAux___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeConsumeAll___spec__1(x_1, x_13, x_14, x_6); lean_dec(x_6); lean_dec(x_13); -x_16 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_16 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_17 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_17, 0, x_15); @@ -6106,7 +6106,7 @@ lean_ctor_set(x_22, 0, x_2); lean_ctor_set(x_22, 1, x_3); lean_ctor_set(x_22, 2, x_4); lean_ctor_set(x_22, 3, x_19); -x_23 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_23 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_24 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_24, 0, x_22); @@ -6134,7 +6134,7 @@ lean_ctor_set(x_30, 0, x_2); lean_ctor_set(x_30, 1, x_3); lean_ctor_set(x_30, 2, x_4); lean_ctor_set(x_30, 3, x_29); -x_31 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_31 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_32 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_32, 0, x_30); @@ -6155,7 +6155,7 @@ lean_ctor_set(x_35, 0, x_2); lean_ctor_set(x_35, 1, x_3); lean_ctor_set(x_35, 2, x_4); lean_ctor_set(x_35, 3, x_34); -x_36 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_36 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_37 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_37, 0, x_35); @@ -6175,7 +6175,7 @@ lean_ctor_set(x_40, 0, x_2); lean_ctor_set(x_40, 1, x_3); lean_ctor_set(x_40, 2, x_4); lean_ctor_set(x_40, 3, x_39); -x_41 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_41 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_42 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_42, 0, x_40); @@ -6203,7 +6203,7 @@ lean_ctor_set(x_48, 3, x_47); x_49 = l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeAux___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBefore___spec__1(x_46, x_1, x_44, x_48, x_6); lean_dec(x_6); lean_dec(x_44); -x_50 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_50 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_51 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_51, 0, x_49); @@ -6224,7 +6224,7 @@ lean_ctor_set(x_53, 3, x_5); x_54 = l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeAux___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeConsumeAll___spec__1(x_1, x_52, x_53, x_6); lean_dec(x_6); lean_dec(x_52); -x_55 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_55 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_56 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_56, 0, x_54); @@ -6250,7 +6250,7 @@ lean_ctor_set(x_61, 3, x_5); x_62 = l___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeAux___at___private_Lean_Compiler_IR_RC_0__Lean_IR_ExplicitRC_addIncBeforeConsumeAll___spec__1(x_1, x_60, x_61, x_6); lean_dec(x_6); lean_dec(x_60); -x_63 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_63 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_64 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_64, 0, x_62); @@ -6270,7 +6270,7 @@ lean_ctor_set(x_67, 0, x_2); lean_ctor_set(x_67, 1, x_3); lean_ctor_set(x_67, 2, x_4); lean_ctor_set(x_67, 3, x_66); -x_68 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_68 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_69 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_69, 0, x_67); @@ -6287,7 +6287,7 @@ lean_ctor_set(x_70, 0, x_2); lean_ctor_set(x_70, 1, x_3); lean_ctor_set(x_70, 2, x_4); lean_ctor_set(x_70, 3, x_5); -x_71 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_8__bindVar___spec__1(x_2, x_7); +x_71 = l_Std_RBNode_erase___at___private_Lean_Compiler_IR_LiveVars_0__Lean_IR_LiveVars_bindVar___spec__1(x_2, x_7); lean_dec(x_2); x_72 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_72, 0, x_70); @@ -7513,7 +7513,7 @@ x_142 = lean_ctor_get(x_2, 3); lean_inc(x_142); x_143 = lean_box(0); lean_inc(x_1); -x_144 = l_Lean_IR_LiveVars_collectFnBody___main(x_1, x_142, x_143); +x_144 = l_Lean_IR_LiveVars_collectFnBody(x_1, x_142, x_143); x_145 = !lean_is_exclusive(x_1); if (x_145 == 0) { @@ -7658,7 +7658,7 @@ lean_inc(x_185); lean_dec(x_2); x_186 = lean_box(0); lean_inc(x_184); -x_187 = l_Lean_IR_LiveVars_collectFnBody___main(x_184, x_185, x_186); +x_187 = l_Lean_IR_LiveVars_collectFnBody(x_184, x_185, x_186); x_188 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_188, 0, x_184); lean_ctor_set(x_188, 1, x_187); diff --git a/stage0/stdlib/Lean/Compiler/IR/ResetReuse.c b/stage0/stdlib/Lean/Compiler/IR/ResetReuse.c index 7dec54bdd1..332f307107 100644 --- a/stage0/stdlib/Lean/Compiler/IR/ResetReuse.c +++ b/stage0/stdlib/Lean/Compiler/IR/ResetReuse.c @@ -24,7 +24,6 @@ uint8_t lean_name_eq(lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_ResetReuse_0__Lean_IR_ResetReuse_Dfinalize___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_ResetReuse_0__Lean_IR_ResetReuse_Dfinalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_ResetReuse_R_match__1(lean_object*); -uint8_t l_Lean_IR_HasIndex_visitFnBody___main(lean_object*, lean_object*); uint8_t l_Lean_IR_CtorInfo_isScalar(lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l___private_Lean_Compiler_IR_ResetReuse_0__Lean_IR_ResetReuse_Dfinalize_match__1___rarg(lean_object*, lean_object*, lean_object*); @@ -70,6 +69,7 @@ lean_object* l___private_Lean_Compiler_IR_ResetReuse_0__Lean_IR_ResetReuse_mayRe lean_object* l___private_Lean_Compiler_IR_ResetReuse_0__Lean_IR_ResetReuse_argsContainsVar___boxed(lean_object*, lean_object*); lean_object* l_Lean_IR_FnBody_hasLiveVar(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_IR_ResetReuse_R_match__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_IR_HasIndex_visitFnBody(lean_object*, lean_object*); lean_object* l_Lean_Name_getPrefix(lean_object*); lean_object* l_Lean_IR_ResetReuse_R(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_IR_ResetReuse_0__Lean_IR_ResetReuse_argsContainsVar_match__1___rarg(lean_object*, lean_object*, lean_object*); @@ -1785,7 +1785,7 @@ lean_object* x_108; lean_object* x_109; uint8_t x_110; x_108 = lean_ctor_get(x_101, 0); x_109 = lean_ctor_get(x_101, 1); lean_dec(x_109); -x_110 = l_Lean_IR_HasIndex_visitFnBody___main(x_1, x_98); +x_110 = l_Lean_IR_HasIndex_visitFnBody(x_1, x_98); if (x_110 == 0) { lean_object* x_111; @@ -1845,7 +1845,7 @@ lean_object* x_125; uint8_t x_126; x_125 = lean_ctor_get(x_101, 0); lean_inc(x_125); lean_dec(x_101); -x_126 = l_Lean_IR_HasIndex_visitFnBody___main(x_1, x_98); +x_126 = l_Lean_IR_HasIndex_visitFnBody(x_1, x_98); if (x_126 == 0) { lean_object* x_127; lean_object* x_128; @@ -1912,7 +1912,7 @@ if (lean_is_exclusive(x_101)) { lean_dec_ref(x_101); x_140 = lean_box(0); } -x_141 = l_Lean_IR_HasIndex_visitFnBody___main(x_1, x_98); +x_141 = l_Lean_IR_HasIndex_visitFnBody(x_1, x_98); if (x_141 == 0) { lean_object* x_142; lean_object* x_143; lean_object* x_144;