========== test/test_case/functional/05_arr_defn4.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckConstDef: a base_type: int is_array: 1 dim_count: 2
[DEBUG]   dim[0] = 4
[DEBUG]   dim[1] = 2
[DEBUG]   创建数组类型完成，IsArray: 1
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG] visitUnaryExp: 7
[DEBUG] visitPrimaryExp: 7
[SymbolTable Debug] 进入花括号初始化列表: { ... }
[SymbolTable Debug] 进入花括号初始化列表: { ... }
[SymbolTable Debug] 处理常量表达式: 1 类型=INT 值=1 目标类型=Int32
[SymbolTable Debug] 处理常量表达式: 2 类型=INT 值=2 目标类型=Int32
[SymbolTable Debug] 退出花括号初始化列表
[SymbolTable Debug] 进入花括号初始化列表: { ... }
[SymbolTable Debug] 处理常量表达式: 3 类型=INT 值=3 目标类型=Int32
[SymbolTable Debug] 处理常量表达式: 4 类型=INT 值=4 目标类型=Int32
[SymbolTable Debug] 退出花括号初始化列表
[SymbolTable Debug] 进入花括号初始化列表: { ... }
[SymbolTable Debug] 退出花括号初始化列表
[SymbolTable Debug] 处理常量表达式: 7 类型=INT 值=7 目标类型=Int32
[SymbolTable Debug] 退出花括号初始化列表
[DEBUG]   初始化值数量: 8
[DEBUG]   期望元素数量: 8
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: a, ctx: 0x55aa3d9d1b00
[DEBUG]   数组常量，不存储单个常量值
SymbolTable::addSymbol: stored a with kind=3, const_def_ctx=0x55aa3d9d1b00
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found a in scope level 3, kind=3, const_def_ctx=0x55aa3d9d1b00
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55aa3d9d1b00
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: N base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: N, ctx: 0x55aa3d9dc2c0
SymbolTable::addSymbol: stored N with kind=3, const_def_ctx=0x55aa3d9dc2c0
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55aa3d9dc2c0
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55aa3d9dc2c0
[DEBUG]   常量符号添加完成
[DEBUG] CheckVarDef: b base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG]   dim[0] = 4
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG]   dim[1] = 2
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 4 2 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: c base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG]   dim[0] = 4
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG]   dim[1] = 2
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 4 2 
[DEBUG]   Element type: int
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] CheckExp: 4
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG] CheckExp: 5
[DEBUG] visitUnaryExp: 5
[DEBUG] visitPrimaryExp: 5
[DEBUG] CheckExp: 6
[DEBUG] visitUnaryExp: 6
[DEBUG] visitPrimaryExp: 6
[DEBUG] CheckExp: 7
[DEBUG] visitUnaryExp: 7
[DEBUG] visitPrimaryExp: 7
[DEBUG] CheckExp: 8
[DEBUG] visitUnaryExp: 8
[DEBUG] visitPrimaryExp: 8
SymbolTable::addSymbol: stored c with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: c type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: d base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55aa3d9dc2c0
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55aa3d9dc2c0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55aa3d9dc2c0
[DEBUG]   dim[0] = 4
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG]   dim[1] = 2
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 4 2 
[DEBUG]   Element type: int
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] CheckExp: 5
[DEBUG] visitUnaryExp: 5
[DEBUG] visitPrimaryExp: 5
[DEBUG] CheckExp: a[3][0]
[DEBUG] visitUnaryExp: a[3][0]
[DEBUG] visitPrimaryExp: a[3][0]
SymbolTable::lookup: found a in scope level 3, kind=3, const_def_ctx=0x55aa3d9d1b00
CheckLValue: found sym->name = a, sym->kind = 3
绑定常量: a -> ConstDefContext
CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55aa3d9d1b00
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 8
[DEBUG] visitUnaryExp: 8
[DEBUG] visitPrimaryExp: 8
SymbolTable::addSymbol: stored d with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: d type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: e base_type: int is_array: 1 dim_count: 3
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG]   dim[0] = 4
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG]   dim[1] = 2
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG]   dim[2] = 1
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 4 2 1 
[DEBUG]   Element type: int
[DEBUG] CheckExp: d[2][1]
[DEBUG] visitUnaryExp: d[2][1]
[DEBUG] visitPrimaryExp: d[2][1]
SymbolTable::lookup: found d in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9e2a40, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] CheckExp: c[2][1]
[DEBUG] visitUnaryExp: c[2][1]
[DEBUG] visitPrimaryExp: c[2][1]
SymbolTable::lookup: found c in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = c, sym->kind = 0
绑定变量: c -> VarDefContext
CheckLValue 绑定变量: c, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9def60, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] CheckExp: 4
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG] CheckExp: 5
[DEBUG] visitUnaryExp: 5
[DEBUG] visitPrimaryExp: 5
[DEBUG] CheckExp: 6
[DEBUG] visitUnaryExp: 6
[DEBUG] visitPrimaryExp: 6
[DEBUG] CheckExp: 7
[DEBUG] visitUnaryExp: 7
[DEBUG] visitPrimaryExp: 7
[DEBUG] CheckExp: 8
[DEBUG] visitUnaryExp: 8
[DEBUG] visitPrimaryExp: 8
SymbolTable::addSymbol: stored e with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: e type_kind: 6 is_array: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: e[3][1][0]+e[0][0][0]+e[0][1][0]+d[3][0]
[DEBUG] visitUnaryExp: e[3][1][0]
[DEBUG] visitPrimaryExp: e[3][1][0]
SymbolTable::lookup: found e in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = e, sym->kind = 0
绑定变量: e -> VarDefContext
CheckLValue 绑定变量: e, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9eb470, sym->const_def_ctx: 0
dim_count: 3, subscript_count: 3
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: e[0][0][0]
[DEBUG] visitPrimaryExp: e[0][0][0]
SymbolTable::lookup: found e in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = e, sym->kind = 0
绑定变量: e -> VarDefContext
CheckLValue 绑定变量: e, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9eb470, sym->const_def_ctx: 0
dim_count: 3, subscript_count: 3
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: e[0][1][0]
[DEBUG] visitPrimaryExp: e[0][1][0]
SymbolTable::lookup: found e in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = e, sym->kind = 0
绑定变量: e -> VarDefContext
CheckLValue 绑定变量: e, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9eb470, sym->const_def_ctx: 0
dim_count: 3, subscript_count: 3
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: d[3][0]
[DEBUG] visitPrimaryExp: d[3][0]
SymbolTable::lookup: found d in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9e2a40, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x55aa3da01cd0
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {constinta[4][2]={{1,2},{3,4},{},7};constintN=3;intb[4][2]={};intc[4][2]={1,2,3,4,5,6,7,8};intd[N+1][2]={1,2,{3},{5},a[3][0],8};inte[4][2][1]={{d[2][1],{c[2][1]}},{3,4},{5,6},{7,8}};returne[3][1][0]+e[0][0][0]+e[0][1][0]+d[3][0];}
[DEBUG IRGEN] visitBlockItem: constinta[4][2]={{1,2},{3,4},{},7};
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x55aa3da02190
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55aa3da02210
[DEBUG IRGEN] visitAddExp: 3
[DEBUG IRGEN] visitMulExp: 3
[DEBUG IRGEN] visitPrimaryExp: 3
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 3 created as 0x55aa3da02360
[DEBUG IRGEN] visitAddExp: 4
[DEBUG IRGEN] visitMulExp: 4
[DEBUG IRGEN] visitPrimaryExp: 4
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 4 created as 0x55aa3da023c0
[DEBUG IRGEN] visitAddExp: 7
[DEBUG IRGEN] visitMulExp: 7
[DEBUG IRGEN] visitPrimaryExp: 7
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 7 created as 0x55aa3da02460
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: constintN=3;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intb[4][2]={};
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 b
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 空初始化列表
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intc[4][2]={1,2,3,4,5,6,7,8};
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: c
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 c
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理聚合初始化
[DEBUG] ProcessNestedInitVals: 开始处理嵌套初始化值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x55aa3da02190
[DEBUG] EvalExpr: success, result = 0x55aa3da02190
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 2
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55aa3da02210
[DEBUG] EvalExpr: success, result = 0x55aa3da02210
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 3
[DEBUG IRGEN] visitAddExp: 3
[DEBUG IRGEN] visitMulExp: 3
[DEBUG IRGEN] visitPrimaryExp: 3
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 3 created as 0x55aa3da02360
[DEBUG] EvalExpr: success, result = 0x55aa3da02360
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 4
[DEBUG IRGEN] visitAddExp: 4
[DEBUG IRGEN] visitMulExp: 4
[DEBUG IRGEN] visitPrimaryExp: 4
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 4 created as 0x55aa3da023c0
[DEBUG] EvalExpr: success, result = 0x55aa3da023c0
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 5
[DEBUG IRGEN] visitAddExp: 5
[DEBUG IRGEN] visitMulExp: 5
[DEBUG IRGEN] visitPrimaryExp: 5
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 5 created as 0x55aa3da036a0
[DEBUG] EvalExpr: success, result = 0x55aa3da036a0
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 6
[DEBUG IRGEN] visitAddExp: 6
[DEBUG IRGEN] visitMulExp: 6
[DEBUG IRGEN] visitPrimaryExp: 6
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 6 created as 0x55aa3da03750
[DEBUG] EvalExpr: success, result = 0x55aa3da03750
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 7
[DEBUG IRGEN] visitAddExp: 7
[DEBUG IRGEN] visitMulExp: 7
[DEBUG IRGEN] visitPrimaryExp: 7
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 7 created as 0x55aa3da02460
[DEBUG] EvalExpr: success, result = 0x55aa3da02460
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 8
[DEBUG IRGEN] visitAddExp: 8
[DEBUG IRGEN] visitMulExp: 8
[DEBUG IRGEN] visitPrimaryExp: 8
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 8 created as 0x55aa3da037b0
[DEBUG] EvalExpr: success, result = 0x55aa3da037b0
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] ProcessNestedInitVals: 共获取 8 个初始化值
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intd[N+1][2]={1,2,{3},{5},a[3][0],8};
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: d
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 d
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理聚合初始化
[DEBUG] ProcessNestedInitVals: 开始处理嵌套初始化值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x55aa3da02190
[DEBUG] EvalExpr: success, result = 0x55aa3da02190
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 2
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55aa3da02210
[DEBUG] EvalExpr: success, result = 0x55aa3da02210
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理聚合初始化
[DEBUG] ProcessNestedInitVals: 开始处理嵌套初始化值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 3
[DEBUG IRGEN] visitAddExp: 3
[DEBUG IRGEN] visitMulExp: 3
[DEBUG IRGEN] visitPrimaryExp: 3
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 3 created as 0x55aa3da02360
[DEBUG] EvalExpr: success, result = 0x55aa3da02360
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] ProcessNestedInitVals: 共获取 1 个初始化值
[DEBUG] ProcessNestedInitVals: 获取到嵌套值列表, 大小: 1
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理聚合初始化
[DEBUG] ProcessNestedInitVals: 开始处理嵌套初始化值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 5
[DEBUG IRGEN] visitAddExp: 5
[DEBUG IRGEN] visitMulExp: 5
[DEBUG IRGEN] visitPrimaryExp: 5
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 5 created as 0x55aa3da036a0
[DEBUG] EvalExpr: success, result = 0x55aa3da036a0
[DEBUG] ProcessNestedInitVals: 获取到单个值
[DEBUG] ProcessNestedInitVals: 共获取 1 个初始化值
[DEBUG] ProcessNestedInitVals: 获取到嵌套值列表, 大小: 1
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: a[3][0]
[DEBUG IRGEN] visitAddExp: a[3][0]
[DEBUG IRGEN] visitMulExp: a[3][0]
[DEBUG IRGEN] visitPrimaryExp: a[3][0]
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG IRGEN] EvalExpr: 3
[DEBUG IRGEN] visitAddExp: 3
[DEBUG IRGEN] visitMulExp: 3
[DEBUG IRGEN] visitPrimaryExp: 3
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 3 created as 0x55aa3da02360
[DEBUG] EvalExpr: success, result = 0x55aa3da02360
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x55aa3da024c0
[ERROR] Exception in EvalExpr: [ir] LoadInst 当前只支持从 i32* 加载
[error] [ir] LoadInst 当前只支持从 i32* 加载

========== test/test_case/functional/09_func_defn.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored func with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: a base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 1 is_array: 0
[DEBUG] 进入函数: func 返回类型: int
SymbolTable::addSymbol: stored p with kind=2, const_def_ctx=0
[DEBUG] 添加参数: p type_kind: 1 is_array: 0 dims: 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found p in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = p, sym->kind = 2
CheckLValue 绑定变量: p, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: p-1
[DEBUG] visitUnaryExp: p
[DEBUG] visitPrimaryExp: p
SymbolTable::lookup: found p in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = p, sym->kind = 2
CheckLValue 绑定变量: p, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: p
[DEBUG] visitUnaryExp: p
[DEBUG] visitPrimaryExp: p
SymbolTable::lookup: found p in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = p, sym->kind = 2
CheckLValue 绑定变量: p, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 func has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: b base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55ea0f11b720, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55ea0f11e180, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: func(a)
[DEBUG] visitUnaryExp: func(a)
[DEBUG] 函数调用: func
[DEBUG] CheckFuncCall: func
SymbolTable::lookup: found func in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55ea0f11b720, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: b
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55ea0f11e180, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 a
[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: a
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: func
[DEBUG] visitFuncDef: 创建函数 func，返回类型: int，参数数量: 1
[DEBUG] visitFuncDef: 函数对象地址: 0x55ea0f131b40
[DEBUG] visitFuncDef: 为函数 func 添加参数 p，类型: int32
[DEBUG] visitFuncDef: 参数 p 处理完成
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {p=p-1;returnp;}
[DEBUG IRGEN] visitBlockItem: p=p-1;
[DEBUG IRGEN] visitStmt: p=p-1;
[DEBUG IRGEN] HandleAssignStmt: p=p-1;
[DEBUG IRGEN] EvalExpr: p-1
[DEBUG IRGEN] visitAddExp: p-1
[DEBUG IRGEN] visitAddExp: p
[DEBUG IRGEN] visitMulExp: p
[DEBUG IRGEN] visitPrimaryExp: p
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: p
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x55ea0f131f00
[DEBUG] visitAddExp: left=0x55ea0f131e40, type=int, right=0x55ea0f131f00, type=int
[DEBUG] EvalExpr: success, result = 0x55ea0f131f60
[DEBUG] HandleAssignStmt: assigning to p
[DEBUG] HandleAssignStmt: found in param_map_ for p, ptr = 0x55ea0f12fd40
[DEBUG] HandleAssignStmt: scalar assignment to p, ptr = 0x55ea0f12fd40, rhs = 0x55ea0f131f60
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: returnp;
[DEBUG IRGEN] visitStmt: returnp;
[DEBUG IRGEN] HandleReturnStmt: returnp;
[DEBUG IRGEN] EvalExpr: p
[DEBUG IRGEN] visitAddExp: p
[DEBUG IRGEN] visitMulExp: p
[DEBUG IRGEN] visitPrimaryExp: p
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: p
[DEBUG] EvalExpr: success, result = 0x55ea0f132150
[DEBUG] visitFuncDef: 函数 func 生成完成
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x55ea0f132290
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {intb;a=10;b=func(a);returnb;}
[DEBUG IRGEN] visitBlockItem: intb;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 b
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: a=10;
[DEBUG IRGEN] visitStmt: a=10;
[DEBUG IRGEN] HandleAssignStmt: a=10;
[DEBUG IRGEN] EvalExpr: 10
[DEBUG IRGEN] visitAddExp: 10
[DEBUG IRGEN] visitMulExp: 10
[DEBUG IRGEN] visitPrimaryExp: 10
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 10 created as 0x55ea0f132590
[DEBUG] EvalExpr: success, result = 0x55ea0f132590
[DEBUG] HandleAssignStmt: assigning to a
[DEBUG] HandleAssignStmt: found in global_map_ for a, ptr = 0x55ea0f131930
[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x55ea0f131930, rhs = 0x55ea0f132590
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: b=func(a);
[DEBUG IRGEN] visitStmt: b=func(a);
[DEBUG IRGEN] HandleAssignStmt: b=func(a);
[DEBUG IRGEN] EvalExpr: func(a)
[DEBUG IRGEN] visitAddExp: func(a)
[DEBUG IRGEN] visitMulExp: func(a)
[DEBUG IRGEN] visitCallExp: 调用函数 func
[DEBUG IRGEN] EvalExpr: a
[DEBUG IRGEN] visitAddExp: a
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] EvalExpr: success, result = 0x55ea0f1326b0
[DEBUG IRGEN] visitCallExp: 收集到 1 个参数
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x55ea0f132770
[DEBUG] EvalExpr: success, result = 0x55ea0f132770
[DEBUG] HandleAssignStmt: assigning to b
[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x55ea0f1323f0
[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x55ea0f1323f0, rhs = 0x55ea0f132770
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: returnb;
[DEBUG IRGEN] visitStmt: returnb;
[DEBUG IRGEN] HandleReturnStmt: returnb;
[DEBUG IRGEN] EvalExpr: b
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] EvalExpr: success, result = 0x55ea0f132980
[DEBUG] visitFuncDef: 函数 main 生成完成
@a = global i32 0
define i32 @getint() {
entry:
}
define i32 @getch() {
entry:
}
define i32 @getarray() {
entry:
}
define void @putint() {
entry:
}
define void @putch() {
entry:
}
define void @putarray() {
entry:
}
define void @puts() {
entry:
}
define void @_sysy_starttime() {
entry:
}
define void @_sysy_stoptime() {
entry:
}
define void @starttime() {
entry:
}
define void @stoptime() {
entry:
}
define i32 @read_map() {
entry:
}
define i32 @float_eq() {
entry:
}
define i32* @memset() {
entry:
}
define i32 @func(i32 %p) {
entry:
  %t0 = alloca i32
  store i32 %p, i32* %t0
  %t1 = load i32, i32* %t0
  %t2 = sub i32 %t1, 1
  store i32 %t2, i32* %t0
  %t3 = load i32, i32* %t0
  ret i32 %t3
}
define i32 @main() {
entry:
  %t4_b = alloca i32
  store i32 0, i32* %t4_b
  store i32 10, i32* @a
  %t5 = load i32, i32* @a
  %t6 = call i32 @func(i32 %t5)
  store i32 %t6, i32* %t4_b
  %t7 = load i32, i32* %t4_b
  ret i32 %t7
}

========== test/test_case/functional/11_add2.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: a base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: b base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x558443521a60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x558443522230, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: -1
[DEBUG] visitUnaryExp: -1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: a+b
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x558443521a60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x558443522230, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x558443533370
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {inta,b;a=10;b=-1;returna+b;}
[DEBUG IRGEN] visitBlockItem: inta,b;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 a
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 b
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: a=10;
[DEBUG IRGEN] visitStmt: a=10;
[DEBUG IRGEN] HandleAssignStmt: a=10;
[DEBUG IRGEN] EvalExpr: 10
[DEBUG IRGEN] visitAddExp: 10
[DEBUG IRGEN] visitMulExp: 10
[DEBUG IRGEN] visitPrimaryExp: 10
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 10 created as 0x558443530380
[DEBUG] EvalExpr: success, result = 0x558443530380
[DEBUG] HandleAssignStmt: assigning to a
[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5584434eca30
[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5584434eca30, rhs = 0x558443530380
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: b=-1;
[DEBUG IRGEN] visitStmt: b=-1;
[DEBUG IRGEN] HandleAssignStmt: b=-1;
[DEBUG IRGEN] EvalExpr: -1
[DEBUG IRGEN] visitAddExp: -1
[DEBUG IRGEN] visitMulExp: -1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x55844352f1a0
[DEBUG] EvalExpr: success, result = 0x558443533980
[DEBUG] HandleAssignStmt: assigning to b
[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x558443533690
[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x558443533690, rhs = 0x558443533980
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: returna+b;
[DEBUG IRGEN] visitStmt: returna+b;
[DEBUG IRGEN] HandleReturnStmt: returna+b;
[DEBUG IRGEN] EvalExpr: a+b
[DEBUG IRGEN] visitAddExp: a+b
[DEBUG IRGEN] visitAddExp: a
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] visitAddExp: left=0x558443533b00, type=int, right=0x558443533bf0, type=int
[DEBUG] EvalExpr: success, result = 0x558443533d70
[DEBUG] visitFuncDef: 函数 main 生成完成
define i32 @getint() {
entry:
}
define i32 @getch() {
entry:
}
define i32 @getarray() {
entry:
}
define void @putint() {
entry:
}
define void @putch() {
entry:
}
define void @putarray() {
entry:
}
define void @puts() {
entry:
}
define void @_sysy_starttime() {
entry:
}
define void @_sysy_stoptime() {
entry:
}
define void @starttime() {
entry:
}
define void @stoptime() {
entry:
}
define i32 @read_map() {
entry:
}
define i32 @float_eq() {
entry:
}
define i32* @memset() {
entry:
}
define i32 @main() {
entry:
  %t0_a = alloca i32
  store i32 0, i32* %t0_a
  %t1_b = alloca i32
  store i32 0, i32* %t1_b
  store i32 10, i32* %t0_a
  %t2 = sub i32 0, 1
  store i32 %t2, i32* %t1_b
  %t3 = load i32, i32* %t0_a
  %t4 = load i32, i32* %t1_b
  %t5 = add i32 %t3, %t4
  ret i32 %t5
}

========== test/test_case/functional/13_sub2.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckConstDef: a base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: a, ctx: 0x55c7457585d0
SymbolTable::addSymbol: stored a with kind=3, const_def_ctx=0x55c7457585d0
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found a in scope level 1, kind=3, const_def_ctx=0x55c7457585d0
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c7457585d0
[DEBUG]   常量符号添加完成
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: b base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55c74575f9e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: b-a
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55c74575f9e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 1, kind=3, const_def_ctx=0x55c7457585d0
CheckLValue: found sym->name = a, sym->kind = 3
绑定常量: a -> ConstDefContext
CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c7457585d0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x55c74576d2b0
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {intb;b=2;returnb-a;}
[DEBUG IRGEN] visitBlockItem: intb;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 b
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: b=2;
[DEBUG IRGEN] visitStmt: b=2;
[DEBUG IRGEN] HandleAssignStmt: b=2;
[DEBUG IRGEN] EvalExpr: 2
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55c74576d5b0
[DEBUG] EvalExpr: success, result = 0x55c74576d5b0
[DEBUG] HandleAssignStmt: assigning to b
[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x55c745725be0
[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x55c745725be0, rhs = 0x55c74576d5b0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: returnb-a;
[DEBUG IRGEN] visitStmt: returnb-a;
[DEBUG IRGEN] HandleReturnStmt: returnb-a;
[DEBUG IRGEN] EvalExpr: b-a
[DEBUG IRGEN] visitAddExp: b-a
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitLVal: constant a
[DEBUG] visitAddExp: left=0x55c74576d710, type=int, right=0x55c745765ed0, type=int
[DEBUG] EvalExpr: success, result = 0x55c74576d800
[DEBUG] visitFuncDef: 函数 main 生成完成
define i32 @getint() {
entry:
}
define i32 @getch() {
entry:
}
define i32 @getarray() {
entry:
}
define void @putint() {
entry:
}
define void @putch() {
entry:
}
define void @putarray() {
entry:
}
define void @puts() {
entry:
}
define void @_sysy_starttime() {
entry:
}
define void @_sysy_stoptime() {
entry:
}
define void @starttime() {
entry:
}
define void @stoptime() {
entry:
}
define i32 @read_map() {
entry:
}
define i32 @float_eq() {
entry:
}
define i32* @memset() {
entry:
}
define i32 @main() {
entry:
  %t0_b = alloca i32
  store i32 0, i32* %t0_b
  store i32 2, i32* %t0_b
  %t1 = load i32, i32* %t0_b
  %t2 = sub i32 %t1, 10
  ret i32 %t2
}

========== test/test_case/functional/15_graph_coloring.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored printSolution with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored printMessage with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored isSafe with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored graphColoring with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckConstDef: V base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: V, ctx: 0x5563e32d4130
SymbolTable::addSymbol: stored V with kind=3, const_def_ctx=0x5563e32d4130
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
CheckConstDef: after addSymbol, stored const_def_ctx = 0x5563e32d4130
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: space base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 32
[DEBUG] visitPrimaryExp: 32
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: space, ctx: 0x5563e32dae00
SymbolTable::addSymbol: stored space with kind=3, const_def_ctx=0x5563e32dae00
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found space in scope level 1, kind=3, const_def_ctx=0x5563e32dae00
CheckConstDef: after addSymbol, stored const_def_ctx = 0x5563e32dae00
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: LF base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: LF, ctx: 0x5563e32daf80
SymbolTable::addSymbol: stored LF with kind=3, const_def_ctx=0x5563e32daf80
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found LF in scope level 1, kind=3, const_def_ctx=0x5563e32daf80
CheckConstDef: after addSymbol, stored const_def_ctx = 0x5563e32daf80
[DEBUG]   常量符号添加完成
[DEBUG] 进入函数: printSolution 返回类型: void
SymbolTable::addSymbol: stored color with kind=2, const_def_ctx=0
[DEBUG] 添加参数: color type_kind: 3 is_array: 1 dims: 0 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32d4ba0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: V
[DEBUG] visitPrimaryExp: V
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
CheckLValue: found sym->name = V, sym->kind = 3
绑定常量: V -> ConstDefContext
CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(color[i])
[DEBUG] visitUnaryExp: putint(color[i])
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: color[i]
[DEBUG] visitUnaryExp: color[i]
[DEBUG] visitPrimaryExp: color[i]
SymbolTable::lookup: found color in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 2
CheckLValue 绑定变量: color, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32d4ba0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(space)
[DEBUG] visitUnaryExp: putch(space)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: space
[DEBUG] visitUnaryExp: space
[DEBUG] visitPrimaryExp: space
SymbolTable::lookup: found space in scope level 1, kind=3, const_def_ctx=0x5563e32dae00
CheckLValue: found sym->name = space, sym->kind = 3
绑定常量: space -> ConstDefContext
CheckLValue 绑定变量: space, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32dae00
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32d4ba0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32d4ba0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(LF)
[DEBUG] visitUnaryExp: putch(LF)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: LF
[DEBUG] visitUnaryExp: LF
[DEBUG] visitPrimaryExp: LF
SymbolTable::lookup: found LF in scope level 1, kind=3, const_def_ctx=0x5563e32daf80
CheckLValue: found sym->name = LF, sym->kind = 3
绑定常量: LF -> ConstDefContext
CheckLValue 绑定变量: LF, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32daf80
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 函数 printSolution has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: printMessage 返回类型: void
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(78)
[DEBUG] visitUnaryExp: putch(78)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 78
[DEBUG] visitUnaryExp: 78
[DEBUG] visitPrimaryExp: 78
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(111)
[DEBUG] visitUnaryExp: putch(111)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 111
[DEBUG] visitUnaryExp: 111
[DEBUG] visitPrimaryExp: 111
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(116)
[DEBUG] visitUnaryExp: putch(116)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 116
[DEBUG] visitUnaryExp: 116
[DEBUG] visitPrimaryExp: 116
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(space)
[DEBUG] visitUnaryExp: putch(space)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: space
[DEBUG] visitUnaryExp: space
[DEBUG] visitPrimaryExp: space
SymbolTable::lookup: found space in scope level 1, kind=3, const_def_ctx=0x5563e32dae00
CheckLValue: found sym->name = space, sym->kind = 3
绑定常量: space -> ConstDefContext
CheckLValue 绑定变量: space, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32dae00
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(101)
[DEBUG] visitUnaryExp: putch(101)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 101
[DEBUG] visitUnaryExp: 101
[DEBUG] visitPrimaryExp: 101
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(120)
[DEBUG] visitUnaryExp: putch(120)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 120
[DEBUG] visitUnaryExp: 120
[DEBUG] visitPrimaryExp: 120
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(105)
[DEBUG] visitUnaryExp: putch(105)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 105
[DEBUG] visitUnaryExp: 105
[DEBUG] visitPrimaryExp: 105
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(115)
[DEBUG] visitUnaryExp: putch(115)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 115
[DEBUG] visitUnaryExp: 115
[DEBUG] visitPrimaryExp: 115
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(116)
[DEBUG] visitUnaryExp: putch(116)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 116
[DEBUG] visitUnaryExp: 116
[DEBUG] visitPrimaryExp: 116
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 函数 printMessage has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: isSafe 返回类型: int
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
SymbolTable::addSymbol: stored graph with kind=2, const_def_ctx=0
[DEBUG] 添加参数: graph type_kind: 3 is_array: 1 dims: 0 4 
SymbolTable::addSymbol: stored color with kind=2, const_def_ctx=0
[DEBUG] 添加参数: color type_kind: 3 is_array: 1 dims: 0 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: V
[DEBUG] visitPrimaryExp: V
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
CheckLValue: found sym->name = V, sym->kind = 3
绑定常量: V -> ConstDefContext
CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: V
[DEBUG] visitPrimaryExp: V
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
CheckLValue: found sym->name = V, sym->kind = 3
绑定常量: V -> ConstDefContext
CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: graph[i][j]
[DEBUG] visitPrimaryExp: graph[i][j]
SymbolTable::lookup: found graph in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = graph, sym->kind = 2
CheckLValue 绑定变量: graph, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 4 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: color[j]
[DEBUG] visitPrimaryExp: color[j]
SymbolTable::lookup: found color in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 2
CheckLValue 绑定变量: color, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: color[i]
[DEBUG] visitPrimaryExp: color[i]
SymbolTable::lookup: found color in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 2
CheckLValue 绑定变量: color, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 isSafe has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: graphColoring 返回类型: int
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
SymbolTable::addSymbol: stored graph with kind=2, const_def_ctx=0
[DEBUG] 添加参数: graph type_kind: 3 is_array: 1 dims: 0 4 
SymbolTable::addSymbol: stored m with kind=2, const_def_ctx=0
[DEBUG] 添加参数: m type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored i with kind=2, const_def_ctx=0
[DEBUG] 添加参数: i type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored color with kind=2, const_def_ctx=0
[DEBUG] 添加参数: color type_kind: 3 is_array: 1 dims: 0 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 2
CheckLValue 绑定变量: i, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: V
[DEBUG] visitPrimaryExp: V
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
CheckLValue: found sym->name = V, sym->kind = 3
绑定常量: V -> ConstDefContext
CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: isSafe(graph,color)
[DEBUG] 函数调用: isSafe
[DEBUG] CheckFuncCall: isSafe
SymbolTable::lookup: found isSafe in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: graph
[DEBUG] visitUnaryExp: graph
[DEBUG] visitPrimaryExp: graph
SymbolTable::lookup: found graph in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = graph, sym->kind = 2
CheckLValue 绑定变量: graph, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 4 
dim_count: 2, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: color
[DEBUG] visitUnaryExp: color
[DEBUG] visitPrimaryExp: color
SymbolTable::lookup: found color in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 2
CheckLValue 绑定变量: color, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: printSolution(color)
[DEBUG] visitUnaryExp: printSolution(color)
[DEBUG] 函数调用: printSolution
[DEBUG] CheckFuncCall: printSolution
SymbolTable::lookup: found printSolution in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: color
[DEBUG] visitUnaryExp: color
[DEBUG] visitPrimaryExp: color
SymbolTable::lookup: found color in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 2
CheckLValue 绑定变量: color, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e3313cf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 2
CheckLValue 绑定变量: m, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found color in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 2
CheckLValue 绑定变量: color, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 2
CheckLValue 绑定变量: i, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e3313cf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: graphColoring(graph,m,i+1,color)
[DEBUG] 函数调用: graphColoring
[DEBUG] CheckFuncCall: graphColoring
SymbolTable::lookup: found graphColoring in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: graph
[DEBUG] visitUnaryExp: graph
[DEBUG] visitPrimaryExp: graph
SymbolTable::lookup: found graph in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = graph, sym->kind = 2
CheckLValue 绑定变量: graph, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 4 
dim_count: 2, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: m
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 2
CheckLValue 绑定变量: m, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 2
CheckLValue 绑定变量: i, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: color
[DEBUG] visitUnaryExp: color
[DEBUG] visitPrimaryExp: color
SymbolTable::lookup: found color in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 2
CheckLValue 绑定变量: color, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found color in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 2
CheckLValue 绑定变量: color, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 2
CheckLValue 绑定变量: i, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e3313cf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e3313cf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 graphColoring has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: graph base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: V
[DEBUG] visitPrimaryExp: V
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
CheckLValue: found sym->name = V, sym->kind = 3
绑定常量: V -> ConstDefContext
CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
[DEBUG]   dim[0] = 4
[DEBUG] visitUnaryExp: V
[DEBUG] visitPrimaryExp: V
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
CheckLValue: found sym->name = V, sym->kind = 3
绑定常量: V -> ConstDefContext
CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
[DEBUG]   dim[1] = 4
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 4 4 
[DEBUG]   Element type: int
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored graph with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: graph type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: m base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
SymbolTable::addSymbol: stored m with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: m type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: color base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: V
[DEBUG] visitPrimaryExp: V
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
CheckLValue: found sym->name = V, sym->kind = 3
绑定常量: V -> ConstDefContext
CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
[DEBUG]   dim[0] = 4
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 4 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored color with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: color type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e3327b90, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: V
[DEBUG] visitPrimaryExp: V
SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130
CheckLValue: found sym->name = V, sym->kind = 3
绑定常量: V -> ConstDefContext
CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found color in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 0
绑定变量: color -> VarDefContext
CheckLValue 绑定变量: color, sym->kind: 0, sym->var_def_ctx: 0x5563e3327410, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e3327b90, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e3327b90, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e3327b90, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: !graphColoring(graph,m,0,color)
[DEBUG] visitUnaryExp: graphColoring(graph,m,0,color)
[DEBUG] 函数调用: graphColoring
[DEBUG] CheckFuncCall: graphColoring
SymbolTable::lookup: found graphColoring in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: graph
[DEBUG] visitUnaryExp: graph
[DEBUG] visitPrimaryExp: graph
SymbolTable::lookup: found graph in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = graph, sym->kind = 0
绑定变量: graph -> VarDefContext
CheckLValue 绑定变量: graph, sym->kind: 0, sym->var_def_ctx: 0x5563e331e1e0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: m
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x5563e3326b30, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: color
[DEBUG] visitUnaryExp: color
[DEBUG] visitPrimaryExp: color
SymbolTable::lookup: found color in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = color, sym->kind = 0
绑定变量: color -> VarDefContext
CheckLValue 绑定变量: color, sym->kind: 0, sym->var_def_ctx: 0x5563e3327410, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 3 形参类型 3
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: printMessage()
[DEBUG] visitUnaryExp: printMessage()
[DEBUG] 函数调用: printMessage
[DEBUG] CheckFuncCall: printMessage
SymbolTable::lookup: found printMessage in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: printSolution
[DEBUG] visitFuncDef: 创建函数 printSolution，返回类型: void，参数数量: 1
[DEBUG] visitFuncDef: 函数对象地址: 0x5563e333b480
[DEBUG] visitFuncDef: 为函数 printSolution 添加参数 color，类型: ptr_int32
[error] [ir] 存储类型不匹配：期望 int32

========== test/test_case/functional/22_matrix_multiply.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored matrix_multiply with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckConstDef: MAX_SIZE base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 100
[DEBUG] visitPrimaryExp: 100
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: MAX_SIZE, ctx: 0x5627a389bf80
SymbolTable::addSymbol: stored MAX_SIZE with kind=3, const_def_ctx=0x5627a389bf80
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
CheckConstDef: after addSymbol, stored const_def_ctx = 0x5627a389bf80
[DEBUG]   常量符号添加完成
[DEBUG] CheckVarDef: a base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: MAX_SIZE
[DEBUG] visitPrimaryExp: MAX_SIZE
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3
绑定常量: MAX_SIZE -> ConstDefContext
CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
[DEBUG]   dim[0] = 100
[DEBUG] visitUnaryExp: MAX_SIZE
[DEBUG] visitPrimaryExp: MAX_SIZE
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3
绑定常量: MAX_SIZE -> ConstDefContext
CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
[DEBUG]   dim[1] = 100
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 100 100 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: b base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: MAX_SIZE
[DEBUG] visitPrimaryExp: MAX_SIZE
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3
绑定常量: MAX_SIZE -> ConstDefContext
CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
[DEBUG]   dim[0] = 100
[DEBUG] visitUnaryExp: MAX_SIZE
[DEBUG] visitPrimaryExp: MAX_SIZE
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3
绑定常量: MAX_SIZE -> ConstDefContext
CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
[DEBUG]   dim[1] = 100
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 100 100 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: res base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: MAX_SIZE
[DEBUG] visitPrimaryExp: MAX_SIZE
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3
绑定常量: MAX_SIZE -> ConstDefContext
CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
[DEBUG]   dim[0] = 100
[DEBUG] visitUnaryExp: MAX_SIZE
[DEBUG] visitPrimaryExp: MAX_SIZE
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3
绑定常量: MAX_SIZE -> ConstDefContext
CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80
[DEBUG]   dim[1] = 100
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 100 100 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored res with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: res type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: n1 base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored n1 with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: n1 type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: m1 base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored m1 with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: m1 type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: n2 base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored n2 with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: n2 type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: m2 base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored m2 with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: m2 type_kind: 1 is_array: 0
[DEBUG] 进入函数: matrix_multiply 返回类型: void
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: m1
[DEBUG] visitPrimaryExp: m1
SymbolTable::lookup: found m1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m1, sym->kind = 0
绑定变量: m1 -> VarDefContext
CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5627a38acd70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n2
[DEBUG] visitPrimaryExp: n2
SymbolTable::lookup: found n2 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n2, sym->kind = 0
绑定变量: n2 -> VarDefContext
CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5627a38acfc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: k base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored k with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: k type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n1
[DEBUG] visitPrimaryExp: n1
SymbolTable::lookup: found n1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n1, sym->kind = 0
绑定变量: n1 -> VarDefContext
CheckLValue 绑定变量: n1, sym->kind: 0, sym->var_def_ctx: 0x5627a38aca80, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found res in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = res, sym->kind = 0
绑定变量: res -> VarDefContext
CheckLValue 绑定变量: res, sym->kind: 0, sym->var_def_ctx: 0x5627a38a51d0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: res[i][j]+a[i][k]*b[k][j]
[DEBUG] visitUnaryExp: res[i][j]
[DEBUG] visitPrimaryExp: res[i][j]
SymbolTable::lookup: found res in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = res, sym->kind = 0
绑定变量: res -> VarDefContext
CheckLValue 绑定变量: res, sym->kind: 0, sym->var_def_ctx: 0x5627a38a51d0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: a[i][k]
[DEBUG] visitPrimaryExp: a[i][k]
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5627a38a15e0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: k
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: b[k][j]
[DEBUG] visitPrimaryExp: b[k][j]
SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5627a38a49c0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: k
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: k+1
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 函数 matrix_multiply has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found m1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m1, sym->kind = 0
绑定变量: m1 -> VarDefContext
CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5627a38acd70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found n1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n1, sym->kind = 0
绑定变量: n1 -> VarDefContext
CheckLValue 绑定变量: n1, sym->kind: 0, sym->var_def_ctx: 0x5627a38aca80, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: m1
[DEBUG] visitPrimaryExp: m1
SymbolTable::lookup: found m1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m1, sym->kind = 0
绑定变量: m1 -> VarDefContext
CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5627a38acd70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n1
[DEBUG] visitPrimaryExp: n1
SymbolTable::lookup: found n1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n1, sym->kind = 0
绑定变量: n1 -> VarDefContext
CheckLValue 绑定变量: n1, sym->kind: 0, sym->var_def_ctx: 0x5627a38aca80, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5627a38a15e0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found m2 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m2, sym->kind = 0
绑定变量: m2 -> VarDefContext
CheckLValue 绑定变量: m2, sym->kind: 0, sym->var_def_ctx: 0x5627a38ad1e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found n2 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n2, sym->kind = 0
绑定变量: n2 -> VarDefContext
CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5627a38acfc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: m2
[DEBUG] visitPrimaryExp: m2
SymbolTable::lookup: found m2 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m2, sym->kind = 0
绑定变量: m2 -> VarDefContext
CheckLValue 绑定变量: m2, sym->kind: 0, sym->var_def_ctx: 0x5627a38ad1e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n2
[DEBUG] visitPrimaryExp: n2
SymbolTable::lookup: found n2 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n2, sym->kind = 0
绑定变量: n2 -> VarDefContext
CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5627a38acfc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5627a38a49c0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: matrix_multiply()
[DEBUG] visitUnaryExp: matrix_multiply()
[DEBUG] 函数调用: matrix_multiply
[DEBUG] CheckFuncCall: matrix_multiply
SymbolTable::lookup: found matrix_multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: m1
[DEBUG] visitPrimaryExp: m1
SymbolTable::lookup: found m1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m1, sym->kind = 0
绑定变量: m1 -> VarDefContext
CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5627a38acd70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n2
[DEBUG] visitPrimaryExp: n2
SymbolTable::lookup: found n2 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n2, sym->kind = 0
绑定变量: n2 -> VarDefContext
CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5627a38acfc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(res[i][j])
[DEBUG] visitUnaryExp: putint(res[i][j])
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: res[i][j]
[DEBUG] visitUnaryExp: res[i][j]
[DEBUG] visitPrimaryExp: res[i][j]
SymbolTable::lookup: found res in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = res, sym->kind = 0
绑定变量: res -> VarDefContext
CheckLValue 绑定变量: res, sym->kind: 0, sym->var_def_ctx: 0x5627a38a51d0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(32)
[DEBUG] visitUnaryExp: putch(32)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 32
[DEBUG] visitUnaryExp: 32
[DEBUG] visitPrimaryExp: 32
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 a
[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 10000
[DEBUG] HandleGlobalVariable: 创建全局数组: a
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 b
[DEBUG] HandleGlobalVariable: 变量 b 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 10000
[DEBUG] HandleGlobalVariable: 创建全局数组: b
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: res
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 res
[DEBUG] HandleGlobalVariable: 变量 res 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 10000
[DEBUG] HandleGlobalVariable: 创建全局数组: res
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: n1
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 n1
[DEBUG] HandleGlobalVariable: 变量 n1 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: n1
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: m1
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 m1
[DEBUG] HandleGlobalVariable: 变量 m1 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: m1
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: n2
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 n2
[DEBUG] HandleGlobalVariable: 变量 n2 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: n2
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: m2
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 m2
[DEBUG] HandleGlobalVariable: 变量 m2 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: m2
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: matrix_multiply
[DEBUG] visitFuncDef: 创建函数 matrix_multiply，返回类型: void，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x5627a3926f10
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {inti=0;while(i<m1){intj=0;while(j<n2){intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}i=i+1;}}
[DEBUG IRGEN] visitBlockItem: inti=0;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: i
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 i
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x5627a38ebec0
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: while(i<m1){intj=0;while(j<n2){intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}i=i+1;}
[DEBUG IRGEN] visitStmt: while(i<m1){intj=0;while(j<n2){intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}i=i+1;}
[DEBUG IRGEN] HandleWhileStmt: while(i<m1){intj=0;while(j<n2){intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}i=i+1;}
[DEBUG WHILE] Current insert block before while: entry
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 1
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: m1
[DEBUG IRGEN] visitMulExp: m1
[DEBUG IRGEN] visitPrimaryExp: m1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: m1
[DEBUG] visitRelExp: left=0x5627a39271d0, type=int, right=0x5627a3927510, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {intj=0;while(j<n2){intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}i=i+1;}
[DEBUG IRGEN] visitBlock: {intj=0;while(j<n2){intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}i=i+1;}
[DEBUG IRGEN] visitBlockItem: intj=0;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: j
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 j
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x5627a38ebec0
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: while.body
[DEBUG IRGEN] visitBlockItem: while(j<n2){intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}
[DEBUG IRGEN] visitStmt: while(j<n2){intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}
[DEBUG IRGEN] HandleWhileStmt: while(j<n2){intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}
[DEBUG WHILE] Current insert block before while: while.body
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 2
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: j
[DEBUG IRGEN] visitMulExp: j
[DEBUG IRGEN] visitPrimaryExp: j
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: j
[DEBUG IRGEN] visitAddExp: n2
[DEBUG IRGEN] visitMulExp: n2
[DEBUG IRGEN] visitPrimaryExp: n2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: n2
[DEBUG] visitRelExp: left=0x5627a3927cd0, type=int, right=0x5627a3927d90, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}
[DEBUG IRGEN] visitBlock: {intk=0;while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}j=j+1;}
[DEBUG IRGEN] visitBlockItem: intk=0;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: k
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 k
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x5627a38ebec0
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: while.body
[DEBUG IRGEN] visitBlockItem: while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}
[DEBUG IRGEN] visitStmt: while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}
[DEBUG IRGEN] HandleWhileStmt: while(k<n1){res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}
[DEBUG WHILE] Current insert block before while: while.body
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 3
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: k
[DEBUG IRGEN] visitMulExp: k
[DEBUG IRGEN] visitPrimaryExp: k
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: k
[DEBUG IRGEN] visitAddExp: n1
[DEBUG IRGEN] visitMulExp: n1
[DEBUG IRGEN] visitPrimaryExp: n1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: n1
[DEBUG] visitRelExp: left=0x5627a39285c0, type=int, right=0x5627a3928640, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}
[DEBUG IRGEN] visitBlock: {res[i][j]=res[i][j]+a[i][k]*b[k][j];k=k+1;}
[DEBUG IRGEN] visitBlockItem: res[i][j]=res[i][j]+a[i][k]*b[k][j];
[DEBUG IRGEN] visitStmt: res[i][j]=res[i][j]+a[i][k]*b[k][j];
[DEBUG IRGEN] HandleAssignStmt: res[i][j]=res[i][j]+a[i][k]*b[k][j];
[DEBUG IRGEN] EvalExpr: res[i][j]+a[i][k]*b[k][j]
[DEBUG IRGEN] visitAddExp: res[i][j]+a[i][k]*b[k][j]
[DEBUG IRGEN] visitAddExp: res[i][j]
[DEBUG IRGEN] visitMulExp: res[i][j]
[DEBUG IRGEN] visitPrimaryExp: res[i][j]
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: res
[DEBUG IRGEN] EvalExpr: i
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG] EvalExpr: success, result = 0x5627a39289b0
[DEBUG IRGEN] EvalExpr: j
[DEBUG IRGEN] visitAddExp: j
[DEBUG IRGEN] visitMulExp: j
[DEBUG IRGEN] visitPrimaryExp: j
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: j
[DEBUG] EvalExpr: success, result = 0x5627a3928ae0
[ERROR] Exception in EvalExpr: [ir] LoadInst 当前只支持从 i32* 加载
[error] [ir] LoadInst 当前只支持从 i32* 加载

========== test/test_case/functional/25_scope3.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(97)
[DEBUG] visitUnaryExp: putch(97)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 97
[DEBUG] visitUnaryExp: 97
[DEBUG] visitPrimaryExp: 97
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] CheckVarDef: a base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: putch base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored putch with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: putch type_kind: 1 is_array: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: a+2
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] CheckVarDef: b base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: a+3
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: b+4
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: putch+a+b
[DEBUG] visitUnaryExp: putch
[DEBUG] visitPrimaryExp: putch
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: b+5
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 5
[DEBUG] visitPrimaryExp: 5
[DEBUG] CheckVarDef: main base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: b+6
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 6
[DEBUG] visitPrimaryExp: 6
SymbolTable::addSymbol: stored main with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: main type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: a+main
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: putch+a+b+main
[DEBUG] visitUnaryExp: putch
[DEBUG] visitPrimaryExp: putch
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: b+a
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckVarDef: a base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: main+7
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 7
[DEBUG] visitPrimaryExp: 7
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: a+8
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 8
[DEBUG] visitPrimaryExp: 8
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: putch+a+b+main
[DEBUG] visitUnaryExp: putch
[DEBUG] visitPrimaryExp: putch
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: b+a
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckVarDef: b base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: main+9
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 9
[DEBUG] visitPrimaryExp: 9
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: a+10
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] CheckConstDef: a base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 11
[DEBUG] visitPrimaryExp: 11
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: a, ctx: 0x5635642c5b30
SymbolTable::addSymbol: stored a with kind=3, const_def_ctx=0x5635642c5b30
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x5635642c5b30
CheckConstDef: after addSymbol, stored const_def_ctx = 0x5635642c5b30
[DEBUG]   常量符号添加完成
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: b+12
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 12
[DEBUG] visitPrimaryExp: 12
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: putch+a+b+main
[DEBUG] visitUnaryExp: putch
[DEBUG] visitPrimaryExp: putch
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x5635642c5b30
CheckLValue: found sym->name = a, sym->kind = 3
绑定常量: a -> ConstDefContext
CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5635642c5b30
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: main+b
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckVarDef: main base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: b+13
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 13
[DEBUG] visitPrimaryExp: 13
SymbolTable::addSymbol: stored main with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: main type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found main in scope level 8, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642bd630, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: main+a
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 8, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642bd630, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x5635642c5b30
CheckLValue: found sym->name = a, sym->kind = 3
绑定常量: a -> ConstDefContext
CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5635642c5b30
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: putch+a+b+main
[DEBUG] visitUnaryExp: putch
[DEBUG] visitPrimaryExp: putch
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x5635642c5b30
CheckLValue: found sym->name = a, sym->kind = 3
绑定常量: a -> ConstDefContext
CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5635642c5b30
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 8, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642bd630, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: putch-main
[DEBUG] visitUnaryExp: putch
[DEBUG] visitPrimaryExp: putch
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: main
[DEBUG] visitPrimaryExp: main
SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = main, sym->kind = 0
绑定变量: main -> VarDefContext
CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: putch-b
[DEBUG] visitUnaryExp: putch
[DEBUG] visitPrimaryExp: putch
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: putch-a
[DEBUG] visitUnaryExp: putch
[DEBUG] visitPrimaryExp: putch
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: putch%77
[DEBUG] visitUnaryExp: putch
[DEBUG] visitPrimaryExp: putch
SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = putch, sym->kind = 0
绑定变量: putch -> VarDefContext
CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 77
[DEBUG] visitPrimaryExp: 77
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x5635642db4b0
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {putch(97);putch(10);inta=1,putch=0;{a=a+2;intb=a+3;b=b+4;putch=putch+a+b;{b=b+5;intmain=b+6;a=a+main;putch=putch+a+b+main;{b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}putch=putch-a;}}returnputch%77;}
[DEBUG IRGEN] visitBlockItem: putch(97);
[DEBUG IRGEN] visitStmt: putch(97);
[DEBUG IRGEN] EvalExpr: putch(97)
[DEBUG IRGEN] visitAddExp: putch(97)
[DEBUG IRGEN] visitMulExp: putch(97)
[DEBUG IRGEN] visitCallExp: 调用函数 putch
[DEBUG IRGEN] EvalExpr: 97
[DEBUG IRGEN] visitAddExp: 97
[DEBUG IRGEN] visitMulExp: 97
[DEBUG IRGEN] visitPrimaryExp: 97
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 97 created as 0x5635642dc5b0
[DEBUG] EvalExpr: success, result = 0x5635642dc5b0
[DEBUG IRGEN] visitCallExp: 收集到 1 个参数
[DEBUG] EvalExpr: success, result = 0x5635642dc670
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch(10);
[DEBUG IRGEN] visitStmt: putch(10);
[DEBUG IRGEN] EvalExpr: putch(10)
[DEBUG IRGEN] visitAddExp: putch(10)
[DEBUG IRGEN] visitMulExp: putch(10)
[DEBUG IRGEN] visitCallExp: 调用函数 putch
[DEBUG IRGEN] EvalExpr: 10
[DEBUG IRGEN] visitAddExp: 10
[DEBUG IRGEN] visitMulExp: 10
[DEBUG IRGEN] visitPrimaryExp: 10
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 10 created as 0x5635642dc6f0
[DEBUG] EvalExpr: success, result = 0x5635642dc6f0
[DEBUG IRGEN] visitCallExp: 收集到 1 个参数
[DEBUG] EvalExpr: success, result = 0x5635642dc670
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: inta=1,putch=0;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 a
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x5635642dc890
[DEBUG] EvalExpr: success, result = 0x5635642dc890
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: putch
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 putch
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x5635642dc670
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: {a=a+2;intb=a+3;b=b+4;putch=putch+a+b;{b=b+5;intmain=b+6;a=a+main;putch=putch+a+b+main;{b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}putch=putch-a;}}
[DEBUG IRGEN] visitStmt: {a=a+2;intb=a+3;b=b+4;putch=putch+a+b;{b=b+5;intmain=b+6;a=a+main;putch=putch+a+b+main;{b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}putch=putch-a;}}
[DEBUG IRGEN] visitBlock: {a=a+2;intb=a+3;b=b+4;putch=putch+a+b;{b=b+5;intmain=b+6;a=a+main;putch=putch+a+b+main;{b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}putch=putch-a;}}
[DEBUG IRGEN] visitBlockItem: a=a+2;
[DEBUG IRGEN] visitStmt: a=a+2;
[DEBUG IRGEN] HandleAssignStmt: a=a+2;
[DEBUG IRGEN] EvalExpr: a+2
[DEBUG IRGEN] visitAddExp: a+2
[DEBUG IRGEN] visitAddExp: a
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x5635642dcdb0
[DEBUG] visitAddExp: left=0x5635642dccf0, type=int, right=0x5635642dcdb0, type=int
[DEBUG] EvalExpr: success, result = 0x5635642dce10
[DEBUG] HandleAssignStmt: assigning to a
[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5635642d33d0
[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5635642d33d0, rhs = 0x5635642dce10
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intb=a+3;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 b
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: a+3
[DEBUG IRGEN] visitAddExp: a+3
[DEBUG IRGEN] visitAddExp: a
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG IRGEN] visitMulExp: 3
[DEBUG IRGEN] visitPrimaryExp: 3
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 3 created as 0x5635642dd180
[DEBUG] visitAddExp: left=0x5635642dd0e0, type=int, right=0x5635642dd180, type=int
[DEBUG] EvalExpr: success, result = 0x5635642dd200
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: b=b+4;
[DEBUG IRGEN] visitStmt: b=b+4;
[DEBUG IRGEN] HandleAssignStmt: b=b+4;
[DEBUG IRGEN] EvalExpr: b+4
[DEBUG IRGEN] visitAddExp: b+4
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitMulExp: 4
[DEBUG IRGEN] visitPrimaryExp: 4
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 4 created as 0x5635642dd480
[DEBUG] visitAddExp: left=0x5635642dd3c0, type=int, right=0x5635642dd480, type=int
[DEBUG] EvalExpr: success, result = 0x5635642dd4e0
[DEBUG] HandleAssignStmt: assigning to b
[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642dd040
[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642dd040, rhs = 0x5635642dd4e0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch=putch+a+b;
[DEBUG IRGEN] visitStmt: putch=putch+a+b;
[DEBUG IRGEN] HandleAssignStmt: putch=putch+a+b;
[DEBUG IRGEN] EvalExpr: putch+a+b
[DEBUG IRGEN] visitAddExp: putch+a+b
[DEBUG IRGEN] visitAddExp: putch+a
[DEBUG IRGEN] visitAddExp: putch
[DEBUG IRGEN] visitMulExp: putch
[DEBUG IRGEN] visitPrimaryExp: putch
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: putch
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitAddExp: left=0x5635642dd6a0, type=int, right=0x5635642dd720, type=int
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] visitAddExp: left=0x5635642dd870, type=int, right=0x5635642dd950, type=int
[DEBUG] EvalExpr: success, result = 0x5635642dd9f0
[DEBUG] HandleAssignStmt: assigning to putch
[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0
[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642dd9f0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: {b=b+5;intmain=b+6;a=a+main;putch=putch+a+b+main;{b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}putch=putch-a;}
[DEBUG IRGEN] visitStmt: {b=b+5;intmain=b+6;a=a+main;putch=putch+a+b+main;{b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}putch=putch-a;}
[DEBUG IRGEN] visitBlock: {b=b+5;intmain=b+6;a=a+main;putch=putch+a+b+main;{b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}putch=putch-a;}
[DEBUG IRGEN] visitBlockItem: b=b+5;
[DEBUG IRGEN] visitStmt: b=b+5;
[DEBUG IRGEN] HandleAssignStmt: b=b+5;
[DEBUG IRGEN] EvalExpr: b+5
[DEBUG IRGEN] visitAddExp: b+5
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitMulExp: 5
[DEBUG IRGEN] visitPrimaryExp: 5
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 5 created as 0x5635642ddd20
[DEBUG] visitAddExp: left=0x5635642ddbd0, type=int, right=0x5635642ddd20, type=int
[DEBUG] EvalExpr: success, result = 0x5635642ddd80
[DEBUG] HandleAssignStmt: assigning to b
[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642dd040
[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642dd040, rhs = 0x5635642ddd80
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intmain=b+6;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: main
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 main
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: b+6
[DEBUG IRGEN] visitAddExp: b+6
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitMulExp: 6
[DEBUG IRGEN] visitPrimaryExp: 6
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 6 created as 0x5635642de080
[DEBUG] visitAddExp: left=0x5635642ddfe0, type=int, right=0x5635642de080, type=int
[DEBUG] EvalExpr: success, result = 0x5635642de100
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: a=a+main;
[DEBUG IRGEN] visitStmt: a=a+main;
[DEBUG IRGEN] HandleAssignStmt: a=a+main;
[DEBUG IRGEN] EvalExpr: a+main
[DEBUG IRGEN] visitAddExp: a+main
[DEBUG IRGEN] visitAddExp: a
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG] visitAddExp: left=0x5635642de2c0, type=int, right=0x5635642de340, type=int
[DEBUG] EvalExpr: success, result = 0x5635642de420
[DEBUG] HandleAssignStmt: assigning to a
[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5635642d33d0
[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5635642d33d0, rhs = 0x5635642de420
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch=putch+a+b+main;
[DEBUG IRGEN] visitStmt: putch=putch+a+b+main;
[DEBUG IRGEN] HandleAssignStmt: putch=putch+a+b+main;
[DEBUG IRGEN] EvalExpr: putch+a+b+main
[DEBUG IRGEN] visitAddExp: putch+a+b+main
[DEBUG IRGEN] visitAddExp: putch+a+b
[DEBUG IRGEN] visitAddExp: putch+a
[DEBUG IRGEN] visitAddExp: putch
[DEBUG IRGEN] visitMulExp: putch
[DEBUG IRGEN] visitPrimaryExp: putch
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: putch
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitAddExp: left=0x5635642de5c0, type=int, right=0x5635642de640, type=int
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] visitAddExp: left=0x5635642de6e0, type=int, right=0x5635642de7c0, type=int
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG] visitAddExp: left=0x5635642de860, type=int, right=0x5635642de940, type=int
[DEBUG] EvalExpr: success, result = 0x5635642de9e0
[DEBUG] HandleAssignStmt: assigning to putch
[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0
[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642de9e0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: {b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}
[DEBUG IRGEN] visitStmt: {b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}
[DEBUG IRGEN] visitBlock: {b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}
[DEBUG IRGEN] visitBlockItem: b=b+a;
[DEBUG IRGEN] visitStmt: b=b+a;
[DEBUG IRGEN] HandleAssignStmt: b=b+a;
[DEBUG IRGEN] EvalExpr: b+a
[DEBUG IRGEN] visitAddExp: b+a
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitAddExp: left=0x5635642dece0, type=int, right=0x5635642ded60, type=int
[DEBUG] EvalExpr: success, result = 0x5635642def70
[DEBUG] HandleAssignStmt: assigning to b
[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642dd040
[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642dd040, rhs = 0x5635642def70
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: inta=main+7;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 a
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: main+7
[DEBUG IRGEN] visitAddExp: main+7
[DEBUG IRGEN] visitAddExp: main
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG IRGEN] visitMulExp: 7
[DEBUG IRGEN] visitPrimaryExp: 7
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 7 created as 0x5635642df210
[DEBUG] visitAddExp: left=0x5635642df170, type=int, right=0x5635642df210, type=int
[DEBUG] EvalExpr: success, result = 0x5635642df290
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: a=a+8;
[DEBUG IRGEN] visitStmt: a=a+8;
[DEBUG IRGEN] HandleAssignStmt: a=a+8;
[DEBUG IRGEN] EvalExpr: a+8
[DEBUG IRGEN] visitAddExp: a+8
[DEBUG IRGEN] visitAddExp: a
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG IRGEN] visitMulExp: 8
[DEBUG IRGEN] visitPrimaryExp: 8
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 8 created as 0x5635642df4d0
[DEBUG] visitAddExp: left=0x5635642df450, type=int, right=0x5635642df4d0, type=int
[DEBUG] EvalExpr: success, result = 0x5635642df530
[DEBUG] HandleAssignStmt: assigning to a
[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5635642df0d0
[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5635642df0d0, rhs = 0x5635642df530
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch=putch+a+b+main;
[DEBUG IRGEN] visitStmt: putch=putch+a+b+main;
[DEBUG IRGEN] HandleAssignStmt: putch=putch+a+b+main;
[DEBUG IRGEN] EvalExpr: putch+a+b+main
[DEBUG IRGEN] visitAddExp: putch+a+b+main
[DEBUG IRGEN] visitAddExp: putch+a+b
[DEBUG IRGEN] visitAddExp: putch+a
[DEBUG IRGEN] visitAddExp: putch
[DEBUG IRGEN] visitMulExp: putch
[DEBUG IRGEN] visitPrimaryExp: putch
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: putch
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitAddExp: left=0x5635642df6f0, type=int, right=0x5635642df770, type=int
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] visitAddExp: left=0x5635642df810, type=int, right=0x5635642df8f0, type=int
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG] visitAddExp: left=0x5635642df990, type=int, right=0x5635642dfa70, type=int
[DEBUG] EvalExpr: success, result = 0x5635642dfb10
[DEBUG] HandleAssignStmt: assigning to putch
[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0
[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642dfb10
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: {b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}
[DEBUG IRGEN] visitStmt: {b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}
[DEBUG IRGEN] visitBlock: {b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}
[DEBUG IRGEN] visitBlockItem: b=b+a;
[DEBUG IRGEN] visitStmt: b=b+a;
[DEBUG IRGEN] HandleAssignStmt: b=b+a;
[DEBUG IRGEN] EvalExpr: b+a
[DEBUG IRGEN] visitAddExp: b+a
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitAddExp: left=0x5635642dfd40, type=int, right=0x5635642dfdc0, type=int
[DEBUG] EvalExpr: success, result = 0x5635642dfe40
[DEBUG] HandleAssignStmt: assigning to b
[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642dd040
[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642dd040, rhs = 0x5635642dfe40
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intb=main+9;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 b
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: main+9
[DEBUG IRGEN] visitAddExp: main+9
[DEBUG IRGEN] visitAddExp: main
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG IRGEN] visitMulExp: 9
[DEBUG IRGEN] visitPrimaryExp: 9
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 9 created as 0x5635642e0140
[DEBUG] visitAddExp: left=0x5635642e00a0, type=int, right=0x5635642e0140, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e01c0
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: a=a+10;
[DEBUG IRGEN] visitStmt: a=a+10;
[DEBUG IRGEN] HandleAssignStmt: a=a+10;
[DEBUG IRGEN] EvalExpr: a+10
[DEBUG IRGEN] visitAddExp: a+10
[DEBUG IRGEN] visitAddExp: a
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG IRGEN] visitMulExp: 10
[DEBUG IRGEN] visitPrimaryExp: 10
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 10 created as 0x5635642dc6f0
[DEBUG] visitAddExp: left=0x5635642e0380, type=int, right=0x5635642dc6f0, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e0400
[DEBUG] HandleAssignStmt: assigning to a
[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5635642df0d0
[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5635642df0d0, rhs = 0x5635642e0400
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: constinta=11;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: b=b+12;
[DEBUG IRGEN] visitStmt: b=b+12;
[DEBUG IRGEN] HandleAssignStmt: b=b+12;
[DEBUG IRGEN] EvalExpr: b+12
[DEBUG IRGEN] visitAddExp: b+12
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitMulExp: 12
[DEBUG IRGEN] visitPrimaryExp: 12
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 12 created as 0x5635642e0700
[DEBUG] visitAddExp: left=0x5635642e0640, type=int, right=0x5635642e0700, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e0760
[DEBUG] HandleAssignStmt: assigning to b
[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642e0000
[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642e0000, rhs = 0x5635642e0760
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch=putch+a+b+main;
[DEBUG IRGEN] visitStmt: putch=putch+a+b+main;
[DEBUG IRGEN] HandleAssignStmt: putch=putch+a+b+main;
[DEBUG IRGEN] EvalExpr: putch+a+b+main
[DEBUG IRGEN] visitAddExp: putch+a+b+main
[DEBUG IRGEN] visitAddExp: putch+a+b
[DEBUG IRGEN] visitAddExp: putch+a
[DEBUG IRGEN] visitAddExp: putch
[DEBUG IRGEN] visitMulExp: putch
[DEBUG IRGEN] visitPrimaryExp: putch
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: putch
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitLVal: constant a
[DEBUG] visitAddExp: left=0x5635642e0920, type=int, right=0x5635642e0580, type=int
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] visitAddExp: left=0x5635642e09a0, type=int, right=0x5635642e0a80, type=int
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG] visitAddExp: left=0x5635642e0b20, type=int, right=0x5635642e0c00, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e0ca0
[DEBUG] HandleAssignStmt: assigning to putch
[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0
[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e0ca0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: {main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}
[DEBUG IRGEN] visitStmt: {main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}
[DEBUG IRGEN] visitBlock: {main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}
[DEBUG IRGEN] visitBlockItem: main=main+b;
[DEBUG IRGEN] visitStmt: main=main+b;
[DEBUG IRGEN] HandleAssignStmt: main=main+b;
[DEBUG IRGEN] EvalExpr: main+b
[DEBUG IRGEN] visitAddExp: main+b
[DEBUG IRGEN] visitAddExp: main
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] visitAddExp: left=0x5635642e1060, type=int, right=0x5635642e10e0, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e1160
[DEBUG] HandleAssignStmt: assigning to main
[DEBUG] HandleAssignStmt: found in storage_map_ for main, ptr = 0x5635642ddf40
[DEBUG] HandleAssignStmt: scalar assignment to main, ptr = 0x5635642ddf40, rhs = 0x5635642e1160
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intmain=b+13;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: main
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 main
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: b+13
[DEBUG IRGEN] visitAddExp: b+13
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitMulExp: 13
[DEBUG IRGEN] visitPrimaryExp: 13
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 13 created as 0x5635642e15f0
[DEBUG] visitAddExp: left=0x5635642e1550, type=int, right=0x5635642e15f0, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e1670
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: main=main+a;
[DEBUG IRGEN] visitStmt: main=main+a;
[DEBUG IRGEN] HandleAssignStmt: main=main+a;
[DEBUG IRGEN] EvalExpr: main+a
[DEBUG IRGEN] visitAddExp: main+a
[DEBUG IRGEN] visitAddExp: main
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitLVal: constant a
[DEBUG] visitAddExp: left=0x5635642e1830, type=int, right=0x5635642e0580, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e18b0
[DEBUG] HandleAssignStmt: assigning to main
[DEBUG] HandleAssignStmt: found in storage_map_ for main, ptr = 0x5635642e14b0
[DEBUG] HandleAssignStmt: scalar assignment to main, ptr = 0x5635642e14b0, rhs = 0x5635642e18b0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch=putch+a+b+main;
[DEBUG IRGEN] visitStmt: putch=putch+a+b+main;
[DEBUG IRGEN] HandleAssignStmt: putch=putch+a+b+main;
[DEBUG IRGEN] EvalExpr: putch+a+b+main
[DEBUG IRGEN] visitAddExp: putch+a+b+main
[DEBUG IRGEN] visitAddExp: putch+a+b
[DEBUG IRGEN] visitAddExp: putch+a
[DEBUG IRGEN] visitAddExp: putch
[DEBUG IRGEN] visitMulExp: putch
[DEBUG IRGEN] visitPrimaryExp: putch
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: putch
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitLVal: constant a
[DEBUG] visitAddExp: left=0x5635642e1a50, type=int, right=0x5635642e0580, type=int
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] visitAddExp: left=0x5635642e1ad0, type=int, right=0x5635642e1bb0, type=int
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG] visitAddExp: left=0x5635642e1c30, type=int, right=0x5635642e1d10, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e1db0
[DEBUG] HandleAssignStmt: assigning to putch
[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0
[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e1db0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch=putch-main;
[DEBUG IRGEN] visitStmt: putch=putch-main;
[DEBUG IRGEN] HandleAssignStmt: putch=putch-main;
[DEBUG IRGEN] EvalExpr: putch-main
[DEBUG IRGEN] visitAddExp: putch-main
[DEBUG IRGEN] visitAddExp: putch
[DEBUG IRGEN] visitMulExp: putch
[DEBUG IRGEN] visitPrimaryExp: putch
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: putch
[DEBUG IRGEN] visitMulExp: main
[DEBUG IRGEN] visitPrimaryExp: main
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: main
[DEBUG] visitAddExp: left=0x5635642e1f70, type=int, right=0x5635642e1ff0, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e2090
[DEBUG] HandleAssignStmt: assigning to putch
[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0
[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e2090
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch=putch-b;
[DEBUG IRGEN] visitStmt: putch=putch-b;
[DEBUG IRGEN] HandleAssignStmt: putch=putch-b;
[DEBUG IRGEN] EvalExpr: putch-b
[DEBUG IRGEN] visitAddExp: putch-b
[DEBUG IRGEN] visitAddExp: putch
[DEBUG IRGEN] visitMulExp: putch
[DEBUG IRGEN] visitPrimaryExp: putch
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: putch
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] visitAddExp: left=0x5635642e2250, type=int, right=0x5635642e22d0, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e2370
[DEBUG] HandleAssignStmt: assigning to putch
[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0
[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e2370
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch=putch-a;
[DEBUG IRGEN] visitStmt: putch=putch-a;
[DEBUG IRGEN] HandleAssignStmt: putch=putch-a;
[DEBUG IRGEN] EvalExpr: putch-a
[DEBUG IRGEN] visitAddExp: putch-a
[DEBUG IRGEN] visitAddExp: putch
[DEBUG IRGEN] visitMulExp: putch
[DEBUG IRGEN] visitPrimaryExp: putch
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: putch
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitLVal: constant a
[DEBUG] visitAddExp: left=0x5635642e2530, type=int, right=0x5635642e0580, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e25b0
[DEBUG] HandleAssignStmt: assigning to putch
[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0
[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e25b0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG] current insert block: entry
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: returnputch%77;
[DEBUG IRGEN] visitStmt: returnputch%77;
[DEBUG IRGEN] HandleReturnStmt: returnputch%77;
[DEBUG IRGEN] EvalExpr: putch%77
[DEBUG IRGEN] visitAddExp: putch%77
[DEBUG IRGEN] visitMulExp: putch%77
[DEBUG IRGEN] visitMulExp: putch
[DEBUG IRGEN] visitPrimaryExp: putch
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: putch
[DEBUG IRGEN] visitPrimaryExp: 77
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 77 created as 0x5635642e2ae0
[DEBUG] visitMulExp: left=0x5635642e2a60, type=int, right=0x5635642e2ae0, type=int
[DEBUG] EvalExpr: success, result = 0x5635642e2b60
[DEBUG] visitFuncDef: 函数 main 生成完成
define i32 @getint() {
entry:
}
define i32 @getch() {
entry:
}
define i32 @getarray() {
entry:
}
define void @putint() {
entry:
}
define void @putch() {
entry:
}
define void @putarray() {
entry:
}
define void @puts() {
entry:
}
define void @_sysy_starttime() {
entry:
}
define void @_sysy_stoptime() {
entry:
}
define void @starttime() {
entry:
}
define void @stoptime() {
entry:
}
define i32 @read_map() {
entry:
}
define i32 @float_eq() {
entry:
}
define i32* @memset() {
entry:
}
define i32 @main() {
entry:
  %t0 = call void @putch(i32 97)
  %t1 = call void @putch(i32 10)
  %t2_a = alloca i32
  store i32 1, i32* %t2_a
  %t3_putch = alloca i32
  store i32 0, i32* %t3_putch
  %t4 = load i32, i32* %t2_a
  %t5 = add i32 %t4, 2
  store i32 %t5, i32* %t2_a
  %t6_b = alloca i32
  %t7 = load i32, i32* %t2_a
  %t8 = add i32 %t7, 3
  store i32 %t8, i32* %t6_b
  %t9 = load i32, i32* %t6_b
  %t10 = add i32 %t9, 4
  store i32 %t10, i32* %t6_b
  %t11 = load i32, i32* %t3_putch
  %t12 = load i32, i32* %t2_a
  %t13 = add i32 %t11, %t12
  %t14 = load i32, i32* %t6_b
  %t15 = add i32 %t13, %t14
  store i32 %t15, i32* %t3_putch
  %t16 = load i32, i32* %t6_b
  %t17 = add i32 %t16, 5
  store i32 %t17, i32* %t6_b
  %t18_main = alloca i32
  %t19 = load i32, i32* %t6_b
  %t20 = add i32 %t19, 6
  store i32 %t20, i32* %t18_main
  %t21 = load i32, i32* %t2_a
  %t22 = load i32, i32* %t18_main
  %t23 = add i32 %t21, %t22
  store i32 %t23, i32* %t2_a
  %t24 = load i32, i32* %t3_putch
  %t25 = load i32, i32* %t2_a
  %t26 = add i32 %t24, %t25
  %t27 = load i32, i32* %t6_b
  %t28 = add i32 %t26, %t27
  %t29 = load i32, i32* %t18_main
  %t30 = add i32 %t28, %t29
  store i32 %t30, i32* %t3_putch
  %t31 = load i32, i32* %t6_b
  %t32 = load i32, i32* %t2_a
  %t33 = add i32 %t31, %t32
  store i32 %t33, i32* %t6_b
  %t34_a = alloca i32
  %t35 = load i32, i32* %t18_main
  %t36 = add i32 %t35, 7
  store i32 %t36, i32* %t34_a
  %t37 = load i32, i32* %t34_a
  %t38 = add i32 %t37, 8
  store i32 %t38, i32* %t34_a
  %t39 = load i32, i32* %t3_putch
  %t40 = load i32, i32* %t34_a
  %t41 = add i32 %t39, %t40
  %t42 = load i32, i32* %t6_b
  %t43 = add i32 %t41, %t42
  %t44 = load i32, i32* %t18_main
  %t45 = add i32 %t43, %t44
  store i32 %t45, i32* %t3_putch
  %t46 = load i32, i32* %t6_b
  %t47 = load i32, i32* %t34_a
  %t48 = add i32 %t46, %t47
  store i32 %t48, i32* %t6_b
  %t49_b = alloca i32
  %t50 = load i32, i32* %t18_main
  %t51 = add i32 %t50, 9
  store i32 %t51, i32* %t49_b
  %t52 = load i32, i32* %t34_a
  %t53 = add i32 %t52, 10
  store i32 %t53, i32* %t34_a
  %t54 = load i32, i32* %t49_b
  %t55 = add i32 %t54, 12
  store i32 %t55, i32* %t49_b
  %t56 = load i32, i32* %t3_putch
  %t57 = add i32 %t56, 11
  %t58 = load i32, i32* %t49_b
  %t59 = add i32 %t57, %t58
  %t60 = load i32, i32* %t18_main
  %t61 = add i32 %t59, %t60
  store i32 %t61, i32* %t3_putch
  %t62 = load i32, i32* %t18_main
  %t63 = load i32, i32* %t49_b
  %t64 = add i32 %t62, %t63
  store i32 %t64, i32* %t18_main
  %t65_main = alloca i32
  %t66 = load i32, i32* %t49_b
  %t67 = add i32 %t66, 13
  store i32 %t67, i32* %t65_main
  %t68 = load i32, i32* %t65_main
  %t69 = add i32 %t68, 11
  store i32 %t69, i32* %t65_main
  %t70 = load i32, i32* %t3_putch
  %t71 = add i32 %t70, 11
  %t72 = load i32, i32* %t49_b
  %t73 = add i32 %t71, %t72
  %t74 = load i32, i32* %t65_main
  %t75 = add i32 %t73, %t74
  store i32 %t75, i32* %t3_putch
  %t76 = load i32, i32* %t3_putch
  %t77 = load i32, i32* %t18_main
  %t78 = sub i32 %t76, %t77
  store i32 %t78, i32* %t3_putch
  %t79 = load i32, i32* %t3_putch
  %t80 = load i32, i32* %t6_b
  %t81 = sub i32 %t79, %t80
  store i32 %t81, i32* %t3_putch
  %t82 = load i32, i32* %t3_putch
  %t83 = sub i32 %t82, 11
  store i32 %t83, i32* %t3_putch
  %t84 = load i32, i32* %t3_putch
  %t85 = mod i32 %t84, 77
  ret i32 %t85
}

========== test/test_case/functional/29_break.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckVarDef: sum base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: sum type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5635d7c3c1f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 100
[DEBUG] visitPrimaryExp: 100
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 50
[DEBUG] visitPrimaryExp: 50
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Break 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5635d7c3c1f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: sum+i
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5635d7c3c1f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: sum
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5635d7c3c1f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x5635d7c55790
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {inti;i=0;intsum;sum=0;while(i<100){if(i==50){break;}sum=sum+i;i=i+1;}returnsum;}
[DEBUG IRGEN] visitBlockItem: inti;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: i
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 i
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: i=0;
[DEBUG IRGEN] visitStmt: i=0;
[DEBUG IRGEN] HandleAssignStmt: i=0;
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x5635d7c55b40
[DEBUG] HandleAssignStmt: assigning to i
[DEBUG] HandleAssignStmt: found in storage_map_ for i, ptr = 0x5635d7c52f20
[DEBUG] HandleAssignStmt: scalar assignment to i, ptr = 0x5635d7c52f20, rhs = 0x5635d7c55b40
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intsum;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: sum
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 sum
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: sum=0;
[DEBUG IRGEN] visitStmt: sum=0;
[DEBUG IRGEN] HandleAssignStmt: sum=0;
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x5635d7c55b40
[DEBUG] HandleAssignStmt: assigning to sum
[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x5635d7c55e70
[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x5635d7c55e70, rhs = 0x5635d7c55b40
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: while(i<100){if(i==50){break;}sum=sum+i;i=i+1;}
[DEBUG IRGEN] visitStmt: while(i<100){if(i==50){break;}sum=sum+i;i=i+1;}
[DEBUG IRGEN] HandleWhileStmt: while(i<100){if(i==50){break;}sum=sum+i;i=i+1;}
[DEBUG WHILE] Current insert block before while: entry
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 1
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 100
[DEBUG IRGEN] visitMulExp: 100
[DEBUG IRGEN] visitPrimaryExp: 100
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 100 created as 0x5635d7c56490
[DEBUG] visitRelExp: left=0x5635d7c563a0, type=int, right=0x5635d7c56490, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {if(i==50){break;}sum=sum+i;i=i+1;}
[DEBUG IRGEN] visitBlock: {if(i==50){break;}sum=sum+i;i=i+1;}
[DEBUG IRGEN] visitBlockItem: if(i==50){break;}
[DEBUG IRGEN] visitStmt: if(i==50){break;}
[DEBUG IRGEN] HandleIfStmt: if(i==50){break;}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: while.body
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 50
[DEBUG IRGEN] visitMulExp: 50
[DEBUG IRGEN] visitPrimaryExp: 50
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 50 created as 0x5635d7c569a0
[DEBUG] visitEqExp: left=0x5635d7c56920, type=int, right=0x5635d7c569a0, type=int
[DEBUG IF] Creating condbr: %t5 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {break;}
[DEBUG IRGEN] visitBlock: {break;}
[DEBUG IRGEN] visitBlockItem: break;
[DEBUG IRGEN] visitStmt: break;
[DEBUG IRGEN] HandleBreakStmt: break;
[DEBUG BREAK] Current insert block before break: then
[DEBUG BREAK] Breaking to exitBlock: while.exit
[DEBUG IF] then branch terminated: 1
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=1, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IRGEN] visitBlockItem: sum=sum+i;
[DEBUG IRGEN] visitStmt: sum=sum+i;
[DEBUG IRGEN] HandleAssignStmt: sum=sum+i;
[DEBUG IRGEN] EvalExpr: sum+i
[DEBUG IRGEN] visitAddExp: sum+i
[DEBUG IRGEN] visitAddExp: sum
[DEBUG IRGEN] visitMulExp: sum
[DEBUG IRGEN] visitPrimaryExp: sum
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: sum
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG] visitAddExp: left=0x5635d7c56cf0, type=int, right=0x5635d7c56e00, type=int
[DEBUG] EvalExpr: success, result = 0x5635d7c56f90
[DEBUG] HandleAssignStmt: assigning to sum
[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x5635d7c55e70
[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x5635d7c55e70, rhs = 0x5635d7c56f90
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: merge
[DEBUG IRGEN] visitBlockItem: i=i+1;
[DEBUG IRGEN] visitStmt: i=i+1;
[DEBUG IRGEN] HandleAssignStmt: i=i+1;
[DEBUG IRGEN] EvalExpr: i+1
[DEBUG IRGEN] visitAddExp: i+1
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x5635d7c571e0
[DEBUG] visitAddExp: left=0x5635d7c57110, type=int, right=0x5635d7c571e0, type=int
[DEBUG] EvalExpr: success, result = 0x5635d7c57260
[DEBUG] HandleAssignStmt: assigning to i
[DEBUG] HandleAssignStmt: found in storage_map_ for i, ptr = 0x5635d7c52f20
[DEBUG] HandleAssignStmt: scalar assignment to i, ptr = 0x5635d7c52f20, rhs = 0x5635d7c57260
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: merge
[DEBUG WHILE] body terminated: 0
[DEBUG WHILE] Adding br to condBlock from body
[DEBUG WHILE] bodyBlock has terminator: 1
[DEBUG WHILE] loopStack size after pop: 0
[DEBUG WHILE] Setting insert point to exitBlock: while.exit
[DEBUG WHILE] exitBlock has terminator before return: 0
[DEBUG] current insert block: while.exit
[DEBUG IRGEN] visitBlockItem: returnsum;
[DEBUG IRGEN] visitStmt: returnsum;
[DEBUG IRGEN] HandleReturnStmt: returnsum;
[DEBUG IRGEN] EvalExpr: sum
[DEBUG IRGEN] visitAddExp: sum
[DEBUG IRGEN] visitMulExp: sum
[DEBUG IRGEN] visitPrimaryExp: sum
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: sum
[DEBUG] EvalExpr: success, result = 0x5635d7c574d0
[DEBUG] visitFuncDef: 函数 main 生成完成
define i32 @getint() {
entry:
}
define i32 @getch() {
entry:
}
define i32 @getarray() {
entry:
}
define void @putint() {
entry:
}
define void @putch() {
entry:
}
define void @putarray() {
entry:
}
define void @puts() {
entry:
}
define void @_sysy_starttime() {
entry:
}
define void @_sysy_stoptime() {
entry:
}
define void @starttime() {
entry:
}
define void @stoptime() {
entry:
}
define i32 @read_map() {
entry:
}
define i32 @float_eq() {
entry:
}
define i32* @memset() {
entry:
}
define i32 @main() {
entry:
  %t0_i = alloca i32
  store i32 0, i32* %t0_i
  store i32 0, i32* %t0_i
  %t1_sum = alloca i32
  store i32 0, i32* %t1_sum
  store i32 0, i32* %t1_sum
  br label %while.cond
while.cond:
  %t2 = load i32, i32* %t0_i
  %t3 = icmp slt i32 %t2, 100
  br i1 %t3, label %while.body, label %while.exit
while.body:
  %t4 = load i32, i32* %t0_i
  %t5 = icmp eq i32 %t4, 50
  br i1 %t5, label %then, label %merge
while.exit:
  %t11 = load i32, i32* %t1_sum
  ret i32 %t11
then:
  br label %while.exit
merge:
  %t6 = load i32, i32* %t1_sum
  %t7 = load i32, i32* %t0_i
  %t8 = add i32 %t6, %t7
  store i32 %t8, i32* %t1_sum
  %t9 = load i32, i32* %t0_i
  %t10 = add i32 %t9, 1
  store i32 %t10, i32* %t0_i
  br label %while.cond
}

========== test/test_case/functional/36_op_priority2.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: a base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: b base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: c base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored c with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: c type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: d base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored d with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: d type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55b313a55d00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55b313a564d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 4
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found c in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = c, sym->kind = 0
绑定变量: c -> VarDefContext
CheckLValue 绑定变量: c, sym->kind: 0, sym->var_def_ctx: 0x55b313a56c80, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found d in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55b313a56fa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: (c+a)*(b-d)
[DEBUG] visitUnaryExp: (c+a)
[DEBUG] visitPrimaryExp: (c+a)
[DEBUG] CheckExp: c+a
[DEBUG] visitUnaryExp: c
[DEBUG] visitPrimaryExp: c
SymbolTable::lookup: found c in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = c, sym->kind = 0
绑定变量: c -> VarDefContext
CheckLValue 绑定变量: c, sym->kind: 0, sym->var_def_ctx: 0x55b313a56c80, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55b313a55d00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: (b-d)
[DEBUG] visitPrimaryExp: (b-d)
[DEBUG] CheckExp: b-d
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55b313a564d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55b313a56fa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x55b313a6b220
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {inta,b,c,d;a=10;b=4;c=2;d=2;return(c+a)*(b-d);}
[DEBUG IRGEN] visitBlockItem: inta,b,c,d;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 a
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 b
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: c
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 c
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: d
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 d
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: a=10;
[DEBUG IRGEN] visitStmt: a=10;
[DEBUG IRGEN] HandleAssignStmt: a=10;
[DEBUG IRGEN] EvalExpr: 10
[DEBUG IRGEN] visitAddExp: 10
[DEBUG IRGEN] visitMulExp: 10
[DEBUG IRGEN] visitPrimaryExp: 10
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 10 created as 0x55b313a6bcb0
[DEBUG] EvalExpr: success, result = 0x55b313a6bcb0
[DEBUG] HandleAssignStmt: assigning to a
[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x55b313a694a0
[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x55b313a694a0, rhs = 0x55b313a6bcb0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: b=4;
[DEBUG IRGEN] visitStmt: b=4;
[DEBUG IRGEN] HandleAssignStmt: b=4;
[DEBUG IRGEN] EvalExpr: 4
[DEBUG IRGEN] visitAddExp: 4
[DEBUG IRGEN] visitMulExp: 4
[DEBUG IRGEN] visitPrimaryExp: 4
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 4 created as 0x55b313a6bee0
[DEBUG] EvalExpr: success, result = 0x55b313a6bee0
[DEBUG] HandleAssignStmt: assigning to b
[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x55b313a6b7e0
[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x55b313a6b7e0, rhs = 0x55b313a6bee0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: c=2;
[DEBUG IRGEN] visitStmt: c=2;
[DEBUG IRGEN] HandleAssignStmt: c=2;
[DEBUG IRGEN] EvalExpr: 2
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55b313a6c040
[DEBUG] EvalExpr: success, result = 0x55b313a6c040
[DEBUG] HandleAssignStmt: assigning to c
[DEBUG] HandleAssignStmt: found in storage_map_ for c, ptr = 0x55b313a6b960
[DEBUG] HandleAssignStmt: scalar assignment to c, ptr = 0x55b313a6b960, rhs = 0x55b313a6c040
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: d=2;
[DEBUG IRGEN] visitStmt: d=2;
[DEBUG IRGEN] HandleAssignStmt: d=2;
[DEBUG IRGEN] EvalExpr: 2
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55b313a6c040
[DEBUG] EvalExpr: success, result = 0x55b313a6c040
[DEBUG] HandleAssignStmt: assigning to d
[DEBUG] HandleAssignStmt: found in storage_map_ for d, ptr = 0x55b313a6bb50
[DEBUG] HandleAssignStmt: scalar assignment to d, ptr = 0x55b313a6bb50, rhs = 0x55b313a6c040
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: return(c+a)*(b-d);
[DEBUG IRGEN] visitStmt: return(c+a)*(b-d);
[DEBUG IRGEN] HandleReturnStmt: return(c+a)*(b-d);
[DEBUG IRGEN] EvalExpr: (c+a)*(b-d)
[DEBUG IRGEN] visitAddExp: (c+a)*(b-d)
[DEBUG IRGEN] visitMulExp: (c+a)*(b-d)
[DEBUG IRGEN] visitMulExp: (c+a)
[DEBUG IRGEN] visitPrimaryExp: (c+a)
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting parenthesized expression
[DEBUG IRGEN] EvalExpr: c+a
[DEBUG IRGEN] visitAddExp: c+a
[DEBUG IRGEN] visitAddExp: c
[DEBUG IRGEN] visitMulExp: c
[DEBUG IRGEN] visitPrimaryExp: c
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: c
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitAddExp: left=0x55b313a6c2a0, type=int, right=0x55b313a6c390, type=int
[DEBUG] EvalExpr: success, result = 0x55b313a6c480
[DEBUG IRGEN] visitPrimaryExp: (b-d)
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting parenthesized expression
[DEBUG IRGEN] EvalExpr: b-d
[DEBUG IRGEN] visitAddExp: b-d
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitMulExp: d
[DEBUG IRGEN] visitPrimaryExp: d
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: d
[DEBUG] visitAddExp: left=0x55b313a6c540, type=int, right=0x55b313a6c650, type=int
[DEBUG] EvalExpr: success, result = 0x55b313a6c760
[DEBUG] visitMulExp: left=0x55b313a6c480, type=int, right=0x55b313a6c760, type=int
[DEBUG] EvalExpr: success, result = 0x55b313a6c840
[DEBUG] visitFuncDef: 函数 main 生成完成
define i32 @getint() {
entry:
}
define i32 @getch() {
entry:
}
define i32 @getarray() {
entry:
}
define void @putint() {
entry:
}
define void @putch() {
entry:
}
define void @putarray() {
entry:
}
define void @puts() {
entry:
}
define void @_sysy_starttime() {
entry:
}
define void @_sysy_stoptime() {
entry:
}
define void @starttime() {
entry:
}
define void @stoptime() {
entry:
}
define i32 @read_map() {
entry:
}
define i32 @float_eq() {
entry:
}
define i32* @memset() {
entry:
}
define i32 @main() {
entry:
  %t0_a = alloca i32
  store i32 0, i32* %t0_a
  %t1_b = alloca i32
  store i32 0, i32* %t1_b
  %t2_c = alloca i32
  store i32 0, i32* %t2_c
  %t3_d = alloca i32
  store i32 0, i32* %t3_d
  store i32 10, i32* %t0_a
  store i32 4, i32* %t1_b
  store i32 2, i32* %t2_c
  store i32 2, i32* %t3_d
  %t4 = load i32, i32* %t2_c
  %t5 = load i32, i32* %t0_a
  %t6 = add i32 %t4, %t5
  %t7 = load i32, i32* %t1_b
  %t8 = load i32, i32* %t3_d
  %t9 = sub i32 %t7, %t8
  %t10 = mul i32 %t6, %t9
  ret i32 %t10
}

========== test/test_case/functional/95_float.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored float_abs with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored circle_area with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored float_eq with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored error with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored ok with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored assert with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored assert_not with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckConstDef: RADIUS base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 5.5
[DEBUG] visitPrimaryExp: 5.5
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: RADIUS, ctx: 0x55db9d7e0280
SymbolTable::addSymbol: stored RADIUS with kind=3, const_def_ctx=0x55db9d7e0280
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7e0280
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: PI base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 03.141592653589793
[DEBUG] visitPrimaryExp: 03.141592653589793
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: PI, ctx: 0x55db9d7e8850
SymbolTable::addSymbol: stored PI with kind=3, const_def_ctx=0x55db9d7e8850
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7e8850
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: EPS base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 1e-6
[DEBUG] visitPrimaryExp: 1e-6
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: EPS, ctx: 0x55db9d7e7fa0
SymbolTable::addSymbol: stored EPS with kind=3, const_def_ctx=0x55db9d7e7fa0
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found EPS in scope level 1, kind=3, const_def_ctx=0x55db9d7e7fa0
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7e7fa0
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: PI_HEX base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 0x1.921fb6p+1
[DEBUG] visitPrimaryExp: 0x1.921fb6p+1
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: PI_HEX, ctx: 0x55db9d7e8570
SymbolTable::addSymbol: stored PI_HEX with kind=3, const_def_ctx=0x55db9d7e8570
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found PI_HEX in scope level 1, kind=3, const_def_ctx=0x55db9d7e8570
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7e8570
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: HEX2 base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 0x.AP-3
[DEBUG] visitPrimaryExp: 0x.AP-3
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: HEX2, ctx: 0x55db9d7ee8c0
SymbolTable::addSymbol: stored HEX2 with kind=3, const_def_ctx=0x55db9d7ee8c0
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found HEX2 in scope level 1, kind=3, const_def_ctx=0x55db9d7ee8c0
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7ee8c0
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: FACT base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: -.33E+5
[DEBUG] visitUnaryExp: .33E+5
[DEBUG] visitPrimaryExp: .33E+5
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: FACT, ctx: 0x55db9d7f0ee0
SymbolTable::addSymbol: stored FACT with kind=3, const_def_ctx=0x55db9d7f0ee0
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found FACT in scope level 1, kind=3, const_def_ctx=0x55db9d7f0ee0
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7f0ee0
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: EVAL1 base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: PI
[DEBUG] visitPrimaryExp: PI
SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850
CheckLValue: found sym->name = PI, sym->kind = 3
绑定常量: PI -> ConstDefContext
CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: RADIUS
[DEBUG] visitPrimaryExp: RADIUS
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
CheckLValue: found sym->name = RADIUS, sym->kind = 3
绑定常量: RADIUS -> ConstDefContext
CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: RADIUS
[DEBUG] visitPrimaryExp: RADIUS
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
CheckLValue: found sym->name = RADIUS, sym->kind = 3
绑定常量: RADIUS -> ConstDefContext
CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: EVAL1, ctx: 0x55db9d7f3030
SymbolTable::addSymbol: stored EVAL1 with kind=3, const_def_ctx=0x55db9d7f3030
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found EVAL1 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3030
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7f3030
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: EVAL2 base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: PI_HEX
[DEBUG] visitPrimaryExp: PI_HEX
SymbolTable::lookup: found PI_HEX in scope level 1, kind=3, const_def_ctx=0x55db9d7e8570
CheckLValue: found sym->name = PI_HEX, sym->kind = 3
绑定常量: PI_HEX -> ConstDefContext
CheckLValue 绑定变量: PI_HEX, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8570
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: RADIUS
[DEBUG] visitPrimaryExp: RADIUS
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
CheckLValue: found sym->name = RADIUS, sym->kind = 3
绑定常量: RADIUS -> ConstDefContext
CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found PI_HEX in scope level 1, kind=3, const_def_ctx=0x55db9d7e8570
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: EVAL2, ctx: 0x55db9d7f3e60
SymbolTable::addSymbol: stored EVAL2 with kind=3, const_def_ctx=0x55db9d7f3e60
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found EVAL2 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3e60
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7f3e60
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: EVAL3 base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: PI
[DEBUG] visitPrimaryExp: PI
SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850
CheckLValue: found sym->name = PI, sym->kind = 3
绑定常量: PI -> ConstDefContext
CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: RADIUS
[DEBUG] visitPrimaryExp: RADIUS
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
CheckLValue: found sym->name = RADIUS, sym->kind = 3
绑定常量: RADIUS -> ConstDefContext
CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: EVAL3, ctx: 0x55db9d7f6f50
SymbolTable::addSymbol: stored EVAL3 with kind=3, const_def_ctx=0x55db9d7f6f50
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found EVAL3 in scope level 1, kind=3, const_def_ctx=0x55db9d7f6f50
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7f6f50
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: CONV1 base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 233
[DEBUG] visitPrimaryExp: 233
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: CONV1, ctx: 0x55db9d7fb210
SymbolTable::addSymbol: stored CONV1 with kind=3, const_def_ctx=0x55db9d7fb210
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found CONV1 in scope level 1, kind=3, const_def_ctx=0x55db9d7fb210
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fb210
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: CONV2 base_type: float is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 0xfff
[DEBUG] visitPrimaryExp: 0xfff
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: CONV2, ctx: 0x55db9d7fb9a0
SymbolTable::addSymbol: stored CONV2 with kind=3, const_def_ctx=0x55db9d7fb9a0
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found CONV2 in scope level 1, kind=3, const_def_ctx=0x55db9d7fb9a0
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fb9a0
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: MAX base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 1e9
[DEBUG] visitPrimaryExp: 1e9
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: MAX, ctx: 0x55db9d7fcf10
SymbolTable::addSymbol: stored MAX with kind=3, const_def_ctx=0x55db9d7fcf10
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found MAX in scope level 1, kind=3, const_def_ctx=0x55db9d7fcf10
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fcf10
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: TWO base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 2.9
[DEBUG] visitPrimaryExp: 2.9
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: TWO, ctx: 0x55db9d7fd760
SymbolTable::addSymbol: stored TWO with kind=3, const_def_ctx=0x55db9d7fd760
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found TWO in scope level 1, kind=3, const_def_ctx=0x55db9d7fd760
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fd760
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: THREE base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 3.2
[DEBUG] visitPrimaryExp: 3.2
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: THREE, ctx: 0x55db9d7fde30
SymbolTable::addSymbol: stored THREE with kind=3, const_def_ctx=0x55db9d7fde30
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found THREE in scope level 1, kind=3, const_def_ctx=0x55db9d7fde30
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fde30
[DEBUG]   常量符号添加完成
[DEBUG] CheckConstDef: FIVE base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: TWO
[DEBUG] visitPrimaryExp: TWO
SymbolTable::lookup: found TWO in scope level 1, kind=3, const_def_ctx=0x55db9d7fd760
CheckLValue: found sym->name = TWO, sym->kind = 3
绑定常量: TWO -> ConstDefContext
CheckLValue 绑定变量: TWO, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fd760
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: THREE
[DEBUG] visitPrimaryExp: THREE
SymbolTable::lookup: found THREE in scope level 1, kind=3, const_def_ctx=0x55db9d7fde30
CheckLValue: found sym->name = THREE, sym->kind = 3
绑定常量: THREE -> ConstDefContext
CheckLValue 绑定变量: THREE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fde30
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found TWO in scope level 1, kind=3, const_def_ctx=0x55db9d7fd760
SymbolTable::lookup: found THREE in scope level 1, kind=3, const_def_ctx=0x55db9d7fde30
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: FIVE, ctx: 0x55db9d7fe610
SymbolTable::addSymbol: stored FIVE with kind=3, const_def_ctx=0x55db9d7fe610
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found FIVE in scope level 1, kind=3, const_def_ctx=0x55db9d7fe610
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fe610
[DEBUG]   常量符号添加完成
[DEBUG] 进入函数: float_abs 返回类型: float
SymbolTable::addSymbol: stored x with kind=2, const_def_ctx=0
[DEBUG] 添加参数: x type_kind: 2 is_array: 0 dims: 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: x
[DEBUG] visitPrimaryExp: x
SymbolTable::lookup: found x in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 2
CheckLValue 绑定变量: x, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: -x
[DEBUG] visitUnaryExp: -x
[DEBUG] visitUnaryExp: x
[DEBUG] visitPrimaryExp: x
SymbolTable::lookup: found x in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 2
CheckLValue 绑定变量: x, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: x
[DEBUG] visitUnaryExp: x
[DEBUG] visitPrimaryExp: x
SymbolTable::lookup: found x in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 2
CheckLValue 绑定变量: x, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 float_abs has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: circle_area 返回类型: float
SymbolTable::addSymbol: stored radius with kind=2, const_def_ctx=0
[DEBUG] 添加参数: radius type_kind: 1 is_array: 0 dims: 
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: (PI*radius*radius+(radius*radius)*PI)/2
[DEBUG] visitUnaryExp: (PI*radius*radius+(radius*radius)*PI)
[DEBUG] visitPrimaryExp: (PI*radius*radius+(radius*radius)*PI)
[DEBUG] CheckExp: PI*radius*radius+(radius*radius)*PI
[DEBUG] visitUnaryExp: PI
[DEBUG] visitPrimaryExp: PI
SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850
CheckLValue: found sym->name = PI, sym->kind = 3
绑定常量: PI -> ConstDefContext
CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: radius
[DEBUG] visitPrimaryExp: radius
SymbolTable::lookup: found radius in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = radius, sym->kind = 2
CheckLValue 绑定变量: radius, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: radius
[DEBUG] visitPrimaryExp: radius
SymbolTable::lookup: found radius in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = radius, sym->kind = 2
CheckLValue 绑定变量: radius, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: (radius*radius)
[DEBUG] visitPrimaryExp: (radius*radius)
[DEBUG] CheckExp: radius*radius
[DEBUG] visitUnaryExp: radius
[DEBUG] visitPrimaryExp: radius
SymbolTable::lookup: found radius in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = radius, sym->kind = 2
CheckLValue 绑定变量: radius, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: radius
[DEBUG] visitPrimaryExp: radius
SymbolTable::lookup: found radius in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = radius, sym->kind = 2
CheckLValue 绑定变量: radius, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: PI
[DEBUG] visitPrimaryExp: PI
SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850
CheckLValue: found sym->name = PI, sym->kind = 3
绑定常量: PI -> ConstDefContext
CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 circle_area has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: float_eq 返回类型: int
SymbolTable::addSymbol: stored a with kind=2, const_def_ctx=0
[DEBUG] 添加参数: a type_kind: 2 is_array: 0 dims: 
SymbolTable::addSymbol: stored b with kind=2, const_def_ctx=0
[DEBUG] 添加参数: b type_kind: 2 is_array: 0 dims: 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: float_abs(a-b)
[DEBUG] 函数调用: float_abs
[DEBUG] CheckFuncCall: float_abs
SymbolTable::lookup: found float_abs in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a-b
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 2 形参类型 2
[DEBUG] visitUnaryExp: EPS
[DEBUG] visitPrimaryExp: EPS
SymbolTable::lookup: found EPS in scope level 1, kind=3, const_def_ctx=0x55db9d7e7fa0
CheckLValue: found sym->name = EPS, sym->kind = 3
绑定常量: EPS -> ConstDefContext
CheckLValue 绑定变量: EPS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e7fa0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 1*2./2
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: 2.
[DEBUG] visitPrimaryExp: 2.
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 float_eq has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: error 返回类型: void
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(101)
[DEBUG] visitUnaryExp: putch(101)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 101
[DEBUG] visitUnaryExp: 101
[DEBUG] visitPrimaryExp: 101
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(114)
[DEBUG] visitUnaryExp: putch(114)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 114
[DEBUG] visitUnaryExp: 114
[DEBUG] visitPrimaryExp: 114
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(114)
[DEBUG] visitUnaryExp: putch(114)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 114
[DEBUG] visitUnaryExp: 114
[DEBUG] visitPrimaryExp: 114
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(111)
[DEBUG] visitUnaryExp: putch(111)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 111
[DEBUG] visitUnaryExp: 111
[DEBUG] visitPrimaryExp: 111
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(114)
[DEBUG] visitUnaryExp: putch(114)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 114
[DEBUG] visitUnaryExp: 114
[DEBUG] visitPrimaryExp: 114
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 函数 error has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: ok 返回类型: void
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(111)
[DEBUG] visitUnaryExp: putch(111)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 111
[DEBUG] visitUnaryExp: 111
[DEBUG] visitPrimaryExp: 111
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(107)
[DEBUG] visitUnaryExp: putch(107)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 107
[DEBUG] visitUnaryExp: 107
[DEBUG] visitPrimaryExp: 107
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 函数 ok has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: assert 返回类型: void
SymbolTable::addSymbol: stored cond with kind=2, const_def_ctx=0
[DEBUG] 添加参数: cond type_kind: 1 is_array: 0 dims: 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: !cond
[DEBUG] visitUnaryExp: cond
[DEBUG] visitPrimaryExp: cond
SymbolTable::lookup: found cond in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = cond, sym->kind = 2
CheckLValue 绑定变量: cond, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: error()
[DEBUG] visitUnaryExp: error()
[DEBUG] 函数调用: error
[DEBUG] CheckFuncCall: error
SymbolTable::lookup: found error in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: ok()
[DEBUG] visitUnaryExp: ok()
[DEBUG] 函数调用: ok
[DEBUG] CheckFuncCall: ok
SymbolTable::lookup: found ok in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 函数 assert has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: assert_not 返回类型: void
SymbolTable::addSymbol: stored cond with kind=2, const_def_ctx=0
[DEBUG] 添加参数: cond type_kind: 1 is_array: 0 dims: 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: cond
[DEBUG] visitPrimaryExp: cond
SymbolTable::lookup: found cond in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = cond, sym->kind = 2
CheckLValue 绑定变量: cond, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: error()
[DEBUG] visitUnaryExp: error()
[DEBUG] 函数调用: error
[DEBUG] CheckFuncCall: error
SymbolTable::lookup: found error in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: ok()
[DEBUG] visitUnaryExp: ok()
[DEBUG] 函数调用: ok
[DEBUG] CheckFuncCall: ok
SymbolTable::lookup: found ok in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 函数 assert_not has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: assert_not(float_eq(HEX2,FACT))
[DEBUG] visitUnaryExp: assert_not(float_eq(HEX2,FACT))
[DEBUG] 函数调用: assert_not
[DEBUG] CheckFuncCall: assert_not
SymbolTable::lookup: found assert_not in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: float_eq(HEX2,FACT)
[DEBUG] visitUnaryExp: float_eq(HEX2,FACT)
[DEBUG] 函数调用: float_eq
[DEBUG] CheckFuncCall: float_eq
SymbolTable::lookup: found float_eq in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: HEX2
[DEBUG] visitUnaryExp: HEX2
[DEBUG] visitPrimaryExp: HEX2
SymbolTable::lookup: found HEX2 in scope level 1, kind=3, const_def_ctx=0x55db9d7ee8c0
CheckLValue: found sym->name = HEX2, sym->kind = 3
绑定常量: HEX2 -> ConstDefContext
CheckLValue 绑定变量: HEX2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7ee8c0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: FACT
[DEBUG] visitUnaryExp: FACT
[DEBUG] visitPrimaryExp: FACT
SymbolTable::lookup: found FACT in scope level 1, kind=3, const_def_ctx=0x55db9d7f0ee0
CheckLValue: found sym->name = FACT, sym->kind = 3
绑定常量: FACT -> ConstDefContext
CheckLValue 绑定变量: FACT, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f0ee0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 2 形参类型 2
[DEBUG] 检查参数 1: 实参类型 2 形参类型 2
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: assert_not(float_eq(EVAL1,EVAL2))
[DEBUG] visitUnaryExp: assert_not(float_eq(EVAL1,EVAL2))
[DEBUG] 函数调用: assert_not
[DEBUG] CheckFuncCall: assert_not
SymbolTable::lookup: found assert_not in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: float_eq(EVAL1,EVAL2)
[DEBUG] visitUnaryExp: float_eq(EVAL1,EVAL2)
[DEBUG] 函数调用: float_eq
[DEBUG] CheckFuncCall: float_eq
SymbolTable::lookup: found float_eq in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: EVAL1
[DEBUG] visitUnaryExp: EVAL1
[DEBUG] visitPrimaryExp: EVAL1
SymbolTable::lookup: found EVAL1 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3030
CheckLValue: found sym->name = EVAL1, sym->kind = 3
绑定常量: EVAL1 -> ConstDefContext
CheckLValue 绑定变量: EVAL1, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f3030
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: EVAL2
[DEBUG] visitUnaryExp: EVAL2
[DEBUG] visitPrimaryExp: EVAL2
SymbolTable::lookup: found EVAL2 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3e60
CheckLValue: found sym->name = EVAL2, sym->kind = 3
绑定常量: EVAL2 -> ConstDefContext
CheckLValue 绑定变量: EVAL2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f3e60
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 2 形参类型 2
[DEBUG] 检查参数 1: 实参类型 2 形参类型 2
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: assert(float_eq(EVAL2,EVAL3))
[DEBUG] visitUnaryExp: assert(float_eq(EVAL2,EVAL3))
[DEBUG] 函数调用: assert
[DEBUG] CheckFuncCall: assert
SymbolTable::lookup: found assert in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: float_eq(EVAL2,EVAL3)
[DEBUG] visitUnaryExp: float_eq(EVAL2,EVAL3)
[DEBUG] 函数调用: float_eq
[DEBUG] CheckFuncCall: float_eq
SymbolTable::lookup: found float_eq in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: EVAL2
[DEBUG] visitUnaryExp: EVAL2
[DEBUG] visitPrimaryExp: EVAL2
SymbolTable::lookup: found EVAL2 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3e60
CheckLValue: found sym->name = EVAL2, sym->kind = 3
绑定常量: EVAL2 -> ConstDefContext
CheckLValue 绑定变量: EVAL2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f3e60
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: EVAL3
[DEBUG] visitUnaryExp: EVAL3
[DEBUG] visitPrimaryExp: EVAL3
SymbolTable::lookup: found EVAL3 in scope level 1, kind=3, const_def_ctx=0x55db9d7f6f50
CheckLValue: found sym->name = EVAL3, sym->kind = 3
绑定常量: EVAL3 -> ConstDefContext
CheckLValue 绑定变量: EVAL3, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f6f50
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 2 形参类型 2
[DEBUG] 检查参数 1: 实参类型 2 形参类型 2
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: assert(float_eq(circle_area(RADIUS),circle_area(FIVE)))
[DEBUG] visitUnaryExp: assert(float_eq(circle_area(RADIUS),circle_area(FIVE)))
[DEBUG] 函数调用: assert
[DEBUG] CheckFuncCall: assert
SymbolTable::lookup: found assert in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: float_eq(circle_area(RADIUS),circle_area(FIVE))
[DEBUG] visitUnaryExp: float_eq(circle_area(RADIUS),circle_area(FIVE))
[DEBUG] 函数调用: float_eq
[DEBUG] CheckFuncCall: float_eq
SymbolTable::lookup: found float_eq in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: circle_area(RADIUS)
[DEBUG] visitUnaryExp: circle_area(RADIUS)
[DEBUG] 函数调用: circle_area
[DEBUG] CheckFuncCall: circle_area
SymbolTable::lookup: found circle_area in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: RADIUS
[DEBUG] visitUnaryExp: RADIUS
[DEBUG] visitPrimaryExp: RADIUS
SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280
CheckLValue: found sym->name = RADIUS, sym->kind = 3
绑定常量: RADIUS -> ConstDefContext
CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 2 形参类型 1
[DEBUG] CheckExp: circle_area(FIVE)
[DEBUG] visitUnaryExp: circle_area(FIVE)
[DEBUG] 函数调用: circle_area
[DEBUG] CheckFuncCall: circle_area
SymbolTable::lookup: found circle_area in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: FIVE
[DEBUG] visitUnaryExp: FIVE
[DEBUG] visitPrimaryExp: FIVE
SymbolTable::lookup: found FIVE in scope level 1, kind=3, const_def_ctx=0x55db9d7fe610
CheckLValue: found sym->name = FIVE, sym->kind = 3
绑定常量: FIVE -> ConstDefContext
CheckLValue 绑定变量: FIVE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fe610
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 0: 实参类型 2 形参类型 2
[DEBUG] 检查参数 1: 实参类型 2 形参类型 2
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: assert_not(float_eq(CONV1,CONV2))
[DEBUG] visitUnaryExp: assert_not(float_eq(CONV1,CONV2))
[DEBUG] 函数调用: assert_not
[DEBUG] CheckFuncCall: assert_not
SymbolTable::lookup: found assert_not in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: float_eq(CONV1,CONV2)
[DEBUG] visitUnaryExp: float_eq(CONV1,CONV2)
[DEBUG] 函数调用: float_eq
[DEBUG] CheckFuncCall: float_eq
SymbolTable::lookup: found float_eq in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: CONV1
[DEBUG] visitUnaryExp: CONV1
[DEBUG] visitPrimaryExp: CONV1
SymbolTable::lookup: found CONV1 in scope level 1, kind=3, const_def_ctx=0x55db9d7fb210
CheckLValue: found sym->name = CONV1, sym->kind = 3
绑定常量: CONV1 -> ConstDefContext
CheckLValue 绑定变量: CONV1, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fb210
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: CONV2
[DEBUG] visitUnaryExp: CONV2
[DEBUG] visitPrimaryExp: CONV2
SymbolTable::lookup: found CONV2 in scope level 1, kind=3, const_def_ctx=0x55db9d7fb9a0
CheckLValue: found sym->name = CONV2, sym->kind = 3
绑定常量: CONV2 -> ConstDefContext
CheckLValue 绑定变量: CONV2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fb9a0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 2 形参类型 2
[DEBUG] 检查参数 1: 实参类型 2 形参类型 2
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: 1.5
[DEBUG] visitPrimaryExp: 1.5
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: ok()
[DEBUG] visitUnaryExp: ok()
[DEBUG] 函数调用: ok
[DEBUG] CheckFuncCall: ok
SymbolTable::lookup: found ok in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: !!3.3
[DEBUG] visitUnaryExp: !3.3
[DEBUG] visitUnaryExp: 3.3
[DEBUG] visitPrimaryExp: 3.3
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: ok()
[DEBUG] visitUnaryExp: ok()
[DEBUG] 函数调用: ok
[DEBUG] CheckFuncCall: ok
SymbolTable::lookup: found ok in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: .0
[DEBUG] visitPrimaryExp: .0
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: error()
[DEBUG] visitUnaryExp: error()
[DEBUG] 函数调用: error
[DEBUG] CheckFuncCall: error
SymbolTable::lookup: found error in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitUnaryExp: 0.3
[DEBUG] visitPrimaryExp: 0.3
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: ok()
[DEBUG] visitUnaryExp: ok()
[DEBUG] 函数调用: ok
[DEBUG] CheckFuncCall: ok
SymbolTable::lookup: found ok in scope level 1, kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: p base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored p with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: p type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: arr base_type: float is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG]   dim[0] = 10
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 10 
[DEBUG]   Element type: float
[DEBUG] CheckExp: 1.
[DEBUG] visitUnaryExp: 1.
[DEBUG] visitPrimaryExp: 1.
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
SymbolTable::addSymbol: stored arr with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: arr type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: len base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getfarray(arr)
[DEBUG] visitUnaryExp: getfarray(arr)
[DEBUG] 函数调用: getfarray
[DEBUG] CheckFuncCall: getfarray
SymbolTable::lookup: found getfarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: arr
[DEBUG] visitUnaryExp: arr
[DEBUG] visitPrimaryExp: arr
SymbolTable::lookup: found arr in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 0
绑定变量: arr -> VarDefContext
CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55db9d83aa80, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 4 形参类型 4
SymbolTable::addSymbol: stored len with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: len type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55db9d839b70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: MAX
[DEBUG] visitPrimaryExp: MAX
SymbolTable::lookup: found MAX in scope level 1, kind=3, const_def_ctx=0x55db9d7fcf10
CheckLValue: found sym->name = MAX, sym->kind = 3
绑定常量: MAX -> ConstDefContext
CheckLValue 绑定变量: MAX, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fcf10
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: input base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: getfloat()
[DEBUG] visitUnaryExp: getfloat()
[DEBUG] 函数调用: getfloat
[DEBUG] CheckFuncCall: getfloat
SymbolTable::lookup: found getfloat in scope level 0, kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored input with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: input type_kind: 2 is_array: 0
[DEBUG] CheckVarDef: area base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: PI*input*input
[DEBUG] visitUnaryExp: PI
[DEBUG] visitPrimaryExp: PI
SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850
CheckLValue: found sym->name = PI, sym->kind = 3
绑定常量: PI -> ConstDefContext
CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: input
[DEBUG] visitPrimaryExp: input
SymbolTable::lookup: found input in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = input, sym->kind = 0
绑定变量: input -> VarDefContext
CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55db9d840db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: input
[DEBUG] visitPrimaryExp: input
SymbolTable::lookup: found input in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = input, sym->kind = 0
绑定变量: input -> VarDefContext
CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55db9d840db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
SymbolTable::addSymbol: stored area with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: area type_kind: 2 is_array: 0
[DEBUG] CheckVarDef: area_trunc base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: circle_area(input)
[DEBUG] visitUnaryExp: circle_area(input)
[DEBUG] 函数调用: circle_area
[DEBUG] CheckFuncCall: circle_area
SymbolTable::lookup: found circle_area in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: input
[DEBUG] visitUnaryExp: input
[DEBUG] visitPrimaryExp: input
SymbolTable::lookup: found input in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = input, sym->kind = 0
绑定变量: input -> VarDefContext
CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55db9d840db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 2 形参类型 1
SymbolTable::addSymbol: stored area_trunc with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: area_trunc type_kind: 2 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found arr in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 0
绑定变量: arr -> VarDefContext
CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55db9d83aa80, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: p
[DEBUG] visitUnaryExp: p
[DEBUG] visitPrimaryExp: p
SymbolTable::lookup: found p in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = p, sym->kind = 0
绑定变量: p -> VarDefContext
CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55db9d83a130, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: arr[p]+input
[DEBUG] visitUnaryExp: arr[p]
[DEBUG] visitPrimaryExp: arr[p]
SymbolTable::lookup: found arr in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 0
绑定变量: arr -> VarDefContext
CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55db9d83aa80, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: p
[DEBUG] visitUnaryExp: p
[DEBUG] visitPrimaryExp: p
SymbolTable::lookup: found p in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = p, sym->kind = 0
绑定变量: p -> VarDefContext
CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55db9d83a130, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: input
[DEBUG] visitPrimaryExp: input
SymbolTable::lookup: found input in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = input, sym->kind = 0
绑定变量: input -> VarDefContext
CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55db9d840db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putfloat(area)
[DEBUG] visitUnaryExp: putfloat(area)
[DEBUG] 函数调用: putfloat
[DEBUG] CheckFuncCall: putfloat
SymbolTable::lookup: found putfloat in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: area
[DEBUG] visitUnaryExp: area
[DEBUG] visitPrimaryExp: area
SymbolTable::lookup: found area in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = area, sym->kind = 0
绑定变量: area -> VarDefContext
CheckLValue 绑定变量: area, sym->kind: 0, sym->var_def_ctx: 0x55db9d8417e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 2 形参类型 2
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(32)
[DEBUG] visitUnaryExp: putch(32)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 32
[DEBUG] visitUnaryExp: 32
[DEBUG] visitPrimaryExp: 32
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(area_trunc)
[DEBUG] visitUnaryExp: putint(area_trunc)
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: area_trunc
[DEBUG] visitUnaryExp: area_trunc
[DEBUG] visitPrimaryExp: area_trunc
SymbolTable::lookup: found area_trunc in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = area_trunc, sym->kind = 0
绑定变量: area_trunc -> VarDefContext
CheckLValue 绑定变量: area_trunc, sym->kind: 0, sym->var_def_ctx: 0x55db9d842640, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 2 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55db9d839b70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i*--1e1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55db9d839b70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: --1e1
[DEBUG] visitUnaryExp: -1e1
[DEBUG] visitUnaryExp: 1e1
[DEBUG] visitPrimaryExp: 1e1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found p in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = p, sym->kind = 0
绑定变量: p -> VarDefContext
CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55db9d83a130, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: p+1
[DEBUG] visitUnaryExp: p
[DEBUG] visitPrimaryExp: p
SymbolTable::lookup: found p in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = p, sym->kind = 0
绑定变量: p -> VarDefContext
CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55db9d83a130, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putfarray(len,arr)
[DEBUG] visitUnaryExp: putfarray(len,arr)
[DEBUG] 函数调用: putfarray
[DEBUG] CheckFuncCall: putfarray
SymbolTable::lookup: found putfarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: len
[DEBUG] visitUnaryExp: len
[DEBUG] visitPrimaryExp: len
SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = len, sym->kind = 0
绑定变量: len -> VarDefContext
CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x55db9d83d510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: arr
[DEBUG] visitUnaryExp: arr
[DEBUG] visitPrimaryExp: arr
SymbolTable::lookup: found arr in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 0
绑定变量: arr -> VarDefContext
CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55db9d83aa80, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 4 形参类型 4
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[error] [irgen] float常量暂未实现

========== test/test_case/functional/simple_add.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: a base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: b base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 1 is_array: 0
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: a+b
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55a29de3d0a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55a29de41130, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x55a29de4ce40
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {inta=1;intb=2;returna+b;}
[DEBUG IRGEN] visitBlockItem: inta=1;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 a
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x55a29de48600
[DEBUG] EvalExpr: success, result = 0x55a29de48600
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intb=2;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 b
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 2
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55a29de47330
[DEBUG] EvalExpr: success, result = 0x55a29de47330
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: returna+b;
[DEBUG IRGEN] visitStmt: returna+b;
[DEBUG IRGEN] HandleReturnStmt: returna+b;
[DEBUG IRGEN] EvalExpr: a+b
[DEBUG IRGEN] visitAddExp: a+b
[DEBUG IRGEN] visitAddExp: a
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG] visitAddExp: left=0x55a29de4d200, type=int, right=0x55a29de4d310, type=int
[DEBUG] EvalExpr: success, result = 0x55a29de4d3d0
[DEBUG] visitFuncDef: 函数 main 生成完成
define i32 @getint() {
entry:
}
define i32 @getch() {
entry:
}
define i32 @getarray() {
entry:
}
define void @putint() {
entry:
}
define void @putch() {
entry:
}
define void @putarray() {
entry:
}
define void @puts() {
entry:
}
define void @_sysy_starttime() {
entry:
}
define void @_sysy_stoptime() {
entry:
}
define void @starttime() {
entry:
}
define void @stoptime() {
entry:
}
define i32 @read_map() {
entry:
}
define i32 @float_eq() {
entry:
}
define i32* @memset() {
entry:
}
define i32 @main() {
entry:
  %t0_a = alloca i32
  store i32 1, i32* %t0_a
  %t1_b = alloca i32
  store i32 2, i32* %t1_b
  %t2 = load i32, i32* %t0_a
  %t3 = load i32, i32* %t1_b
  %t4 = add i32 %t2, %t3
  ret i32 %t4
}

========== test/test_case/performance/01_mm2.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored mm with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckConstDef: N base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 1024
[DEBUG] visitPrimaryExp: 1024
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: N, ctx: 0x562c650374f0
SymbolTable::addSymbol: stored N with kind=3, const_def_ctx=0x562c650374f0
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
CheckConstDef: after addSymbol, stored const_def_ctx = 0x562c650374f0
[DEBUG]   常量符号添加完成
[DEBUG] CheckVarDef: A base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
[DEBUG]   dim[0] = 1024
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
[DEBUG]   dim[1] = 1024
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 1024 1024 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored A with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: A type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: B base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
[DEBUG]   dim[0] = 1024
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
[DEBUG]   dim[1] = 1024
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 1024 1024 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored B with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: B type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: C base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
[DEBUG]   dim[0] = 1024
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
[DEBUG]   dim[1] = 1024
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 1024 1024 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored C with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: C type_kind: 6 is_array: 1
[DEBUG] 进入函数: mm 返回类型: void
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
SymbolTable::addSymbol: stored A with kind=2, const_def_ctx=0
[DEBUG] 添加参数: A type_kind: 3 is_array: 1 dims: 0 1024 
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
SymbolTable::addSymbol: stored B with kind=2, const_def_ctx=0
[DEBUG] 添加参数: B type_kind: 3 is_array: 1 dims: 0 1024 
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0
SymbolTable::addSymbol: stored C with kind=2, const_def_ctx=0
[DEBUG] 添加参数: C type_kind: 3 is_array: 1 dims: 0 1024 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: k base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored k with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: k type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found C in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 2
CheckLValue 绑定变量: C, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 1024 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: A[i][k]
[DEBUG] visitPrimaryExp: A[i][k]
SymbolTable::lookup: found A in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 2
CheckLValue 绑定变量: A, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 1024 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: k
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Continue 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found C in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 2
CheckLValue 绑定变量: C, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 1024 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: C[i][j]+A[i][k]*B[k][j]
[DEBUG] visitUnaryExp: C[i][j]
[DEBUG] visitPrimaryExp: C[i][j]
SymbolTable::lookup: found C in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 2
CheckLValue 绑定变量: C, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 1024 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: A[i][k]
[DEBUG] visitPrimaryExp: A[i][k]
SymbolTable::lookup: found A in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 2
CheckLValue 绑定变量: A, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 1024 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: k
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: B[k][j]
[DEBUG] visitPrimaryExp: B[k][j]
SymbolTable::lookup: found B in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 2
CheckLValue 绑定变量: B, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 1024 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: k
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: k+1
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 函数 mm has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: n base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored n with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: n type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x562c65070b40, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x562c65071cf0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 5
[DEBUG] visitPrimaryExp: 5
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: mm(n,A,B,C)
[DEBUG] visitUnaryExp: mm(n,A,B,C)
[DEBUG] 函数调用: mm
[DEBUG] CheckFuncCall: mm
SymbolTable::lookup: found mm in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: A
[DEBUG] visitUnaryExp: A
[DEBUG] visitPrimaryExp: A
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x562c65070b40, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: B
[DEBUG] visitUnaryExp: B
[DEBUG] visitPrimaryExp: B
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x562c65071cf0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: C
[DEBUG] visitUnaryExp: C
[DEBUG] visitPrimaryExp: C
SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 0
绑定变量: C -> VarDefContext
CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x562c65072c40, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] 检查参数 2: 实参类型 3 形参类型 3
[DEBUG] 检查参数 3: 实参类型 3 形参类型 3
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: mm(n,A,C,B)
[DEBUG] visitUnaryExp: mm(n,A,C,B)
[DEBUG] 函数调用: mm
[DEBUG] CheckFuncCall: mm
SymbolTable::lookup: found mm in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: A
[DEBUG] visitUnaryExp: A
[DEBUG] visitPrimaryExp: A
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x562c65070b40, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: C
[DEBUG] visitUnaryExp: C
[DEBUG] visitPrimaryExp: C
SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 0
绑定变量: C -> VarDefContext
CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x562c65072c40, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: B
[DEBUG] visitUnaryExp: B
[DEBUG] visitPrimaryExp: B
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x562c65071cf0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] 检查参数 2: 实参类型 3 形参类型 3
[DEBUG] 检查参数 3: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckVarDef: ans base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored ans with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: ans type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x562c6508b5b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: ans+B[i][j]
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x562c6508b5b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: B[i][j]
[DEBUG] visitPrimaryExp: B[i][j]
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x562c65071cf0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(ans)
[DEBUG] visitUnaryExp: putint(ans)
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: ans
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x562c6508b5b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: A
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 A
[DEBUG] HandleGlobalVariable: 变量 A 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 1048576
[DEBUG] HandleGlobalVariable: 创建全局数组: A
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: B
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 B
[DEBUG] HandleGlobalVariable: 变量 B 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 1048576
[DEBUG] HandleGlobalVariable: 创建全局数组: B
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: C
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 C
[DEBUG] HandleGlobalVariable: 变量 C 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 1048576
[DEBUG] HandleGlobalVariable: 创建全局数组: C
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: mm
[DEBUG] visitFuncDef: 创建函数 mm，返回类型: void，参数数量: 4
[DEBUG] visitFuncDef: 函数对象地址: 0x562c650a3b70
[DEBUG] visitFuncDef: 为函数 mm 添加参数 n，类型: int32
[DEBUG] visitFuncDef: 参数 n 处理完成
[DEBUG] visitFuncDef: 为函数 mm 添加参数 A，类型: ptr_int32
[error] [ir] 存储类型不匹配：期望 int32

========== test/test_case/performance/02_mv3.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored mv with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: x base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored x with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: x type_kind: 1 is_array: 0
[DEBUG] CheckConstDef: N base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 2010
[DEBUG] visitPrimaryExp: 2010
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: N, ctx: 0x559802e25620
SymbolTable::addSymbol: stored N with kind=3, const_def_ctx=0x559802e25620
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
CheckConstDef: after addSymbol, stored const_def_ctx = 0x559802e25620
[DEBUG]   常量符号添加完成
[DEBUG] CheckVarDef: A base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x559802e25620
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
[DEBUG]   dim[0] = 2010
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x559802e25620
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
[DEBUG]   dim[1] = 2010
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 2010 2010 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored A with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: A type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: B base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x559802e25620
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
[DEBUG]   dim[0] = 2010
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 2010 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored B with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: B type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: C base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: N
[DEBUG] visitPrimaryExp: N
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
CheckLValue: found sym->name = N, sym->kind = 3
绑定常量: N -> ConstDefContext
CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x559802e25620
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
[DEBUG]   dim[0] = 2010
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 2010 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored C with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: C type_kind: 6 is_array: 1
[DEBUG] 进入函数: mv 返回类型: void
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620
SymbolTable::addSymbol: stored A with kind=2, const_def_ctx=0
[DEBUG] 添加参数: A type_kind: 3 is_array: 1 dims: 0 2010 
SymbolTable::addSymbol: stored b with kind=2, const_def_ctx=0
[DEBUG] 添加参数: b type_kind: 3 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored res with kind=2, const_def_ctx=0
[DEBUG] 添加参数: res type_kind: 3 is_array: 1 dims: 0 
[DEBUG] CheckVarDef: x base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored x with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: x type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: y base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored y with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: y type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = y, sym->kind = 0
绑定变量: y -> VarDefContext
CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x559802e2fa60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 0
绑定变量: x -> VarDefContext
CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x559802e28960, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 11
[DEBUG] visitUnaryExp: 11
[DEBUG] visitPrimaryExp: 11
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found res in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = res, sym->kind = 2
CheckLValue 绑定变量: res, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: A[i][j]
[DEBUG] visitPrimaryExp: A[i][j]
SymbolTable::lookup: found A in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 2
CheckLValue 绑定变量: A, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 2010 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 0
绑定变量: x -> VarDefContext
CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x559802e28960, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: x*b[i]+b[j]
[DEBUG] visitUnaryExp: x
[DEBUG] visitPrimaryExp: x
SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 0
绑定变量: x -> VarDefContext
CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x559802e28960, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: b[i]
[DEBUG] visitPrimaryExp: b[i]
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: b[j]
[DEBUG] visitPrimaryExp: b[j]
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = y, sym->kind = 0
绑定变量: y -> VarDefContext
CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x559802e2fa60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: y-x
[DEBUG] visitUnaryExp: y
[DEBUG] visitPrimaryExp: y
SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = y, sym->kind = 0
绑定变量: y -> VarDefContext
CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x559802e2fa60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: x
[DEBUG] visitPrimaryExp: x
SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 0
绑定变量: x -> VarDefContext
CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x559802e28960, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found res in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = res, sym->kind = 2
CheckLValue 绑定变量: res, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: res[i]+A[i][j]*b[j]
[DEBUG] visitUnaryExp: res[i]
[DEBUG] visitPrimaryExp: res[i]
SymbolTable::lookup: found res in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = res, sym->kind = 2
CheckLValue 绑定变量: res, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: A[i][j]
[DEBUG] visitPrimaryExp: A[i][j]
SymbolTable::lookup: found A in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 2
CheckLValue 绑定变量: A, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 2010 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: b[j]
[DEBUG] visitPrimaryExp: b[j]
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 函数 mv has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: n base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored n with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: n type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x559802e523e0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x559802e47ce0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 50
[DEBUG] visitPrimaryExp: 50
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: mv(n,A,B,C)
[DEBUG] visitUnaryExp: mv(n,A,B,C)
[DEBUG] 函数调用: mv
[DEBUG] CheckFuncCall: mv
SymbolTable::lookup: found mv in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: A
[DEBUG] visitUnaryExp: A
[DEBUG] visitPrimaryExp: A
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x559802e523e0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: B
[DEBUG] visitUnaryExp: B
[DEBUG] visitPrimaryExp: B
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x559802e47ce0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: C
[DEBUG] visitUnaryExp: C
[DEBUG] visitPrimaryExp: C
SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 0
绑定变量: C -> VarDefContext
CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x559802e5c1c0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] 检查参数 2: 实参类型 3 形参类型 3
[DEBUG] 检查参数 3: 实参类型 3 形参类型 3
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: mv(n,A,C,B)
[DEBUG] visitUnaryExp: mv(n,A,C,B)
[DEBUG] 函数调用: mv
[DEBUG] CheckFuncCall: mv
SymbolTable::lookup: found mv in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: A
[DEBUG] visitUnaryExp: A
[DEBUG] visitPrimaryExp: A
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x559802e523e0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: C
[DEBUG] visitUnaryExp: C
[DEBUG] visitPrimaryExp: C
SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 0
绑定变量: C -> VarDefContext
CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x559802e5c1c0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: B
[DEBUG] visitUnaryExp: B
[DEBUG] visitPrimaryExp: B
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x559802e47ce0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] 检查参数 2: 实参类型 3 形参类型 3
[DEBUG] 检查参数 3: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putarray(n,C)
[DEBUG] visitUnaryExp: putarray(n,C)
[DEBUG] 函数调用: putarray
[DEBUG] CheckFuncCall: putarray
SymbolTable::lookup: found putarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: C
[DEBUG] visitUnaryExp: C
[DEBUG] visitPrimaryExp: C
SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 0
绑定变量: C -> VarDefContext
CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x559802e5c1c0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: x
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 x
[DEBUG] HandleGlobalVariable: 变量 x 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: x
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: A
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 A
[DEBUG] HandleGlobalVariable: 变量 A 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 4040100
[DEBUG] HandleGlobalVariable: 创建全局数组: A
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: B
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 B
[DEBUG] HandleGlobalVariable: 变量 B 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 2010
[DEBUG] HandleGlobalVariable: 创建全局数组: B
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: C
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 C
[DEBUG] HandleGlobalVariable: 变量 C 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 2010
[DEBUG] HandleGlobalVariable: 创建全局数组: C
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: mv
[DEBUG] visitFuncDef: 创建函数 mv，返回类型: void，参数数量: 4
[DEBUG] visitFuncDef: 函数对象地址: 0x559802e7db20
[DEBUG] visitFuncDef: 为函数 mv 添加参数 n，类型: int32
[DEBUG] visitFuncDef: 参数 n 处理完成
[DEBUG] visitFuncDef: 为函数 mv 添加参数 A，类型: ptr_int32
[error] [ir] 存储类型不匹配：期望 int32

========== test/test_case/performance/03_sort1.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getMaxNum with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getNumPos with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored radixSort with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckConstDef: base base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 16
[DEBUG] visitPrimaryExp: 16
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: base, ctx: 0x563bb8523830
SymbolTable::addSymbol: stored base with kind=3, const_def_ctx=0x563bb8523830
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
CheckConstDef: after addSymbol, stored const_def_ctx = 0x563bb8523830
[DEBUG]   常量符号添加完成
[DEBUG] CheckVarDef: a base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 30000010
[DEBUG] visitPrimaryExp: 30000010
[DEBUG]   dim[0] = 30000010
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 30000010 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: ans base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored ans with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: ans type_kind: 1 is_array: 0
[DEBUG] 进入函数: getMaxNum 返回类型: int
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored arr with kind=2, const_def_ctx=0
[DEBUG] 添加参数: arr type_kind: 3 is_array: 1 dims: 0 
[DEBUG] CheckVarDef: ret base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored ret with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: ret type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: arr[i]
[DEBUG] visitPrimaryExp: arr[i]
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: ret
[DEBUG] visitPrimaryExp: ret
SymbolTable::lookup: found ret in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ret, sym->kind = 0
绑定变量: ret -> VarDefContext
CheckLValue 绑定变量: ret, sym->kind: 0, sym->var_def_ctx: 0x563bb852f770, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found ret in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ret, sym->kind = 0
绑定变量: ret -> VarDefContext
CheckLValue 绑定变量: ret, sym->kind: 0, sym->var_def_ctx: 0x563bb852f770, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: arr[i]
[DEBUG] visitUnaryExp: arr[i]
[DEBUG] visitPrimaryExp: arr[i]
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: ret
[DEBUG] visitUnaryExp: ret
[DEBUG] visitPrimaryExp: ret
SymbolTable::lookup: found ret in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ret, sym->kind = 0
绑定变量: ret -> VarDefContext
CheckLValue 绑定变量: ret, sym->kind: 0, sym->var_def_ctx: 0x563bb852f770, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 getMaxNum has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: getNumPos 返回类型: int
SymbolTable::addSymbol: stored num with kind=2, const_def_ctx=0
[DEBUG] 添加参数: num type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored pos with kind=2, const_def_ctx=0
[DEBUG] 添加参数: pos type_kind: 1 is_array: 0 dims: 
[DEBUG] CheckVarDef: tmp base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored tmp with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: tmp type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8548ae0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: pos
[DEBUG] visitPrimaryExp: pos
SymbolTable::lookup: found pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = pos, sym->kind = 2
CheckLValue 绑定变量: pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found num in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = num, sym->kind = 2
CheckLValue 绑定变量: num, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: num/base
[DEBUG] visitUnaryExp: num
[DEBUG] visitPrimaryExp: num
SymbolTable::lookup: found num in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = num, sym->kind = 2
CheckLValue 绑定变量: num, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: base
[DEBUG] visitPrimaryExp: base
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
CheckLValue: found sym->name = base, sym->kind = 3
绑定常量: base -> ConstDefContext
CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8548ae0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8548ae0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: num%base
[DEBUG] visitUnaryExp: num
[DEBUG] visitPrimaryExp: num
SymbolTable::lookup: found num in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = num, sym->kind = 2
CheckLValue 绑定变量: num, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: base
[DEBUG] visitPrimaryExp: base
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
CheckLValue: found sym->name = base, sym->kind = 3
绑定常量: base -> ConstDefContext
CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 getNumPos has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: radixSort 返回类型: void
SymbolTable::addSymbol: stored bitround with kind=2, const_def_ctx=0
[DEBUG] 添加参数: bitround type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored a with kind=2, const_def_ctx=0
[DEBUG] 添加参数: a type_kind: 3 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored l with kind=2, const_def_ctx=0
[DEBUG] 添加参数: l type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored r with kind=2, const_def_ctx=0
[DEBUG] 添加参数: r type_kind: 1 is_array: 0 dims: 
[DEBUG] CheckVarDef: head base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: base
[DEBUG] visitPrimaryExp: base
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
CheckLValue: found sym->name = base, sym->kind = 3
绑定常量: base -> ConstDefContext
CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
[DEBUG]   dim[0] = 16
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 16 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored head with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: head type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: tail base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: base
[DEBUG] visitPrimaryExp: base
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
CheckLValue: found sym->name = base, sym->kind = 3
绑定常量: base -> ConstDefContext
CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
[DEBUG]   dim[0] = 16
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 16 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored tail with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: tail type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: cnt base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: base
[DEBUG] visitPrimaryExp: base
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
CheckLValue: found sym->name = base, sym->kind = 3
绑定常量: base -> ConstDefContext
CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
[DEBUG]   dim[0] = 16
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 16 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored cnt with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: cnt type_kind: 6 is_array: 1
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: bitround
[DEBUG] visitPrimaryExp: bitround
SymbolTable::lookup: found bitround in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = bitround, sym->kind = 2
CheckLValue 绑定变量: bitround, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: -1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: l
[DEBUG] visitPrimaryExp: l
SymbolTable::lookup: found l in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = l, sym->kind = 2
CheckLValue 绑定变量: l, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: r
[DEBUG] visitPrimaryExp: r
SymbolTable::lookup: found r in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = r, sym->kind = 2
CheckLValue 绑定变量: r, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Return 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 无返回值的 return
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: l
[DEBUG] visitUnaryExp: l
[DEBUG] visitPrimaryExp: l
SymbolTable::lookup: found l in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = l, sym->kind = 2
CheckLValue 绑定变量: l, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: r
[DEBUG] visitPrimaryExp: r
SymbolTable::lookup: found r in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = r, sym->kind = 2
CheckLValue 绑定变量: r, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cnt, sym->kind = 0
绑定变量: cnt -> VarDefContext
CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: getNumPos(a[i],bitround)
[DEBUG] visitUnaryExp: getNumPos(a[i],bitround)
[DEBUG] 函数调用: getNumPos
[DEBUG] CheckFuncCall: getNumPos
SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a[i]
[DEBUG] visitUnaryExp: a[i]
[DEBUG] visitPrimaryExp: a[i]
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: bitround
[DEBUG] visitUnaryExp: bitround
[DEBUG] visitPrimaryExp: bitround
SymbolTable::lookup: found bitround in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = bitround, sym->kind = 2
CheckLValue 绑定变量: bitround, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
完全索引，返回元素类型
[DEBUG] CheckExp: cnt[getNumPos(a[i],bitround)]+1
[DEBUG] visitUnaryExp: cnt[getNumPos(a[i],bitround)]
[DEBUG] visitPrimaryExp: cnt[getNumPos(a[i],bitround)]
SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cnt, sym->kind = 0
绑定变量: cnt -> VarDefContext
CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: getNumPos(a[i],bitround)
[DEBUG] visitUnaryExp: getNumPos(a[i],bitround)
[DEBUG] 函数调用: getNumPos
[DEBUG] CheckFuncCall: getNumPos
SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a[i]
[DEBUG] visitUnaryExp: a[i]
[DEBUG] visitPrimaryExp: a[i]
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: bitround
[DEBUG] visitUnaryExp: bitround
[DEBUG] visitPrimaryExp: bitround
SymbolTable::lookup: found bitround in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = bitround, sym->kind = 2
CheckLValue 绑定变量: bitround, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
完全索引，返回元素类型
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] CheckExp: l
[DEBUG] visitUnaryExp: l
[DEBUG] visitPrimaryExp: l
SymbolTable::lookup: found l in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = l, sym->kind = 2
CheckLValue 绑定变量: l, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = tail, sym->kind = 0
绑定变量: tail -> VarDefContext
CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] CheckExp: l+cnt[0]
[DEBUG] visitUnaryExp: l
[DEBUG] visitPrimaryExp: l
SymbolTable::lookup: found l in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = l, sym->kind = 2
CheckLValue 绑定变量: l, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: cnt[0]
[DEBUG] visitPrimaryExp: cnt[0]
SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cnt, sym->kind = 0
绑定变量: cnt -> VarDefContext
CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: base
[DEBUG] visitPrimaryExp: base
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
CheckLValue: found sym->name = base, sym->kind = 3
绑定常量: base -> ConstDefContext
CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: tail[i-1]
[DEBUG] visitUnaryExp: tail[i-1]
[DEBUG] visitPrimaryExp: tail[i-1]
SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = tail, sym->kind = 0
绑定变量: tail -> VarDefContext
CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i-1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = tail, sym->kind = 0
绑定变量: tail -> VarDefContext
CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: head[i]+cnt[i]
[DEBUG] visitUnaryExp: head[i]
[DEBUG] visitPrimaryExp: head[i]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: cnt[i]
[DEBUG] visitPrimaryExp: cnt[i]
SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cnt, sym->kind = 0
绑定变量: cnt -> VarDefContext
CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: base
[DEBUG] visitPrimaryExp: base
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
CheckLValue: found sym->name = base, sym->kind = 3
绑定常量: base -> ConstDefContext
CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: head[i]
[DEBUG] visitPrimaryExp: head[i]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: tail[i]
[DEBUG] visitPrimaryExp: tail[i]
SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = tail, sym->kind = 0
绑定变量: tail -> VarDefContext
CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: v base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: a[head[i]]
[DEBUG] visitUnaryExp: a[head[i]]
[DEBUG] visitPrimaryExp: a[head[i]]
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: head[i]
[DEBUG] visitUnaryExp: head[i]
[DEBUG] visitPrimaryExp: head[i]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
完全索引，返回元素类型
SymbolTable::addSymbol: stored v with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: v type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: getNumPos(v,bitround)
[DEBUG] 函数调用: getNumPos
[DEBUG] CheckFuncCall: getNumPos
SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: v
[DEBUG] visitUnaryExp: v
[DEBUG] visitPrimaryExp: v
SymbolTable::lookup: found v in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = v, sym->kind = 0
绑定变量: v -> VarDefContext
CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x563bb8573f10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: bitround
[DEBUG] visitUnaryExp: bitround
[DEBUG] visitPrimaryExp: bitround
SymbolTable::lookup: found bitround in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = bitround, sym->kind = 2
CheckLValue 绑定变量: bitround, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: t base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: v
[DEBUG] visitUnaryExp: v
[DEBUG] visitPrimaryExp: v
SymbolTable::lookup: found v in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = v, sym->kind = 0
绑定变量: v -> VarDefContext
CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x563bb8573f10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
SymbolTable::addSymbol: stored t with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: t type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found v in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = v, sym->kind = 0
绑定变量: v -> VarDefContext
CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x563bb8573f10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: a[head[getNumPos(t,bitround)]]
[DEBUG] visitUnaryExp: a[head[getNumPos(t,bitround)]]
[DEBUG] visitPrimaryExp: a[head[getNumPos(t,bitround)]]
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: head[getNumPos(t,bitround)]
[DEBUG] visitUnaryExp: head[getNumPos(t,bitround)]
[DEBUG] visitPrimaryExp: head[getNumPos(t,bitround)]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: getNumPos(t,bitround)
[DEBUG] visitUnaryExp: getNumPos(t,bitround)
[DEBUG] 函数调用: getNumPos
[DEBUG] CheckFuncCall: getNumPos
SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: t
[DEBUG] visitUnaryExp: t
[DEBUG] visitPrimaryExp: t
SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = t, sym->kind = 0
绑定变量: t -> VarDefContext
CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: bitround
[DEBUG] visitUnaryExp: bitround
[DEBUG] visitPrimaryExp: bitround
SymbolTable::lookup: found bitround in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = bitround, sym->kind = 2
CheckLValue 绑定变量: bitround, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
完全索引，返回元素类型
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: head[getNumPos(t,bitround)]
[DEBUG] visitUnaryExp: head[getNumPos(t,bitround)]
[DEBUG] visitPrimaryExp: head[getNumPos(t,bitround)]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: getNumPos(t,bitround)
[DEBUG] visitUnaryExp: getNumPos(t,bitround)
[DEBUG] 函数调用: getNumPos
[DEBUG] CheckFuncCall: getNumPos
SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: t
[DEBUG] visitUnaryExp: t
[DEBUG] visitPrimaryExp: t
SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = t, sym->kind = 0
绑定变量: t -> VarDefContext
CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: bitround
[DEBUG] visitUnaryExp: bitround
[DEBUG] visitPrimaryExp: bitround
SymbolTable::lookup: found bitround in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = bitround, sym->kind = 2
CheckLValue 绑定变量: bitround, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
完全索引，返回元素类型
完全索引，返回元素类型
[DEBUG] CheckExp: t
[DEBUG] visitUnaryExp: t
[DEBUG] visitPrimaryExp: t
SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = t, sym->kind = 0
绑定变量: t -> VarDefContext
CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: getNumPos(t,bitround)
[DEBUG] visitUnaryExp: getNumPos(t,bitround)
[DEBUG] 函数调用: getNumPos
[DEBUG] CheckFuncCall: getNumPos
SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: t
[DEBUG] visitUnaryExp: t
[DEBUG] visitPrimaryExp: t
SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = t, sym->kind = 0
绑定变量: t -> VarDefContext
CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: bitround
[DEBUG] visitUnaryExp: bitround
[DEBUG] visitPrimaryExp: bitround
SymbolTable::lookup: found bitround in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = bitround, sym->kind = 2
CheckLValue 绑定变量: bitround, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
完全索引，返回元素类型
[DEBUG] CheckExp: head[getNumPos(t,bitround)]+1
[DEBUG] visitUnaryExp: head[getNumPos(t,bitround)]
[DEBUG] visitPrimaryExp: head[getNumPos(t,bitround)]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: getNumPos(t,bitround)
[DEBUG] visitUnaryExp: getNumPos(t,bitround)
[DEBUG] 函数调用: getNumPos
[DEBUG] CheckFuncCall: getNumPos
SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: t
[DEBUG] visitUnaryExp: t
[DEBUG] visitPrimaryExp: t
SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0
CheckLValue: found sym->name = t, sym->kind = 0
绑定变量: t -> VarDefContext
CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: bitround
[DEBUG] visitUnaryExp: bitround
[DEBUG] visitPrimaryExp: bitround
SymbolTable::lookup: found bitround in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = bitround, sym->kind = 2
CheckLValue 绑定变量: bitround, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
完全索引，返回元素类型
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: head[i]
[DEBUG] visitUnaryExp: head[i]
[DEBUG] visitPrimaryExp: head[i]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
完全索引，返回元素类型
[DEBUG] CheckExp: v
[DEBUG] visitUnaryExp: v
[DEBUG] visitPrimaryExp: v
SymbolTable::lookup: found v in scope level 6, kind=0, const_def_ctx=0
CheckLValue: found sym->name = v, sym->kind = 0
绑定变量: v -> VarDefContext
CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x563bb8573f10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: head[i]+1
[DEBUG] visitUnaryExp: head[i]
[DEBUG] visitPrimaryExp: head[i]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: l
[DEBUG] visitUnaryExp: l
[DEBUG] visitPrimaryExp: l
SymbolTable::lookup: found l in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = l, sym->kind = 2
CheckLValue 绑定变量: l, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] CheckExp: l
[DEBUG] visitUnaryExp: l
[DEBUG] visitPrimaryExp: l
SymbolTable::lookup: found l in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = l, sym->kind = 2
CheckLValue 绑定变量: l, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = tail, sym->kind = 0
绑定变量: tail -> VarDefContext
CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] CheckExp: l+cnt[0]
[DEBUG] visitUnaryExp: l
[DEBUG] visitPrimaryExp: l
SymbolTable::lookup: found l in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = l, sym->kind = 2
CheckLValue 绑定变量: l, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: cnt[0]
[DEBUG] visitPrimaryExp: cnt[0]
SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cnt, sym->kind = 0
绑定变量: cnt -> VarDefContext
CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: base
[DEBUG] visitPrimaryExp: base
SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830
CheckLValue: found sym->name = base, sym->kind = 3
绑定常量: base -> ConstDefContext
CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: tail[i-1]
[DEBUG] visitUnaryExp: tail[i-1]
[DEBUG] visitPrimaryExp: tail[i-1]
SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = tail, sym->kind = 0
绑定变量: tail -> VarDefContext
CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i-1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = tail, sym->kind = 0
绑定变量: tail -> VarDefContext
CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: head[i]+cnt[i]
[DEBUG] visitUnaryExp: head[i]
[DEBUG] visitPrimaryExp: head[i]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: cnt[i]
[DEBUG] visitPrimaryExp: cnt[i]
SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cnt, sym->kind = 0
绑定变量: cnt -> VarDefContext
CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: radixSort(bitround-1,a,head[i],tail[i])
[DEBUG] visitUnaryExp: radixSort(bitround-1,a,head[i],tail[i])
[DEBUG] 函数调用: radixSort
[DEBUG] CheckFuncCall: radixSort
SymbolTable::lookup: found radixSort in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: bitround-1
[DEBUG] visitUnaryExp: bitround
[DEBUG] visitPrimaryExp: bitround
SymbolTable::lookup: found bitround in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = bitround, sym->kind = 2
CheckLValue 绑定变量: bitround, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: head[i]
[DEBUG] visitUnaryExp: head[i]
[DEBUG] visitPrimaryExp: head[i]
SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = head, sym->kind = 0
绑定变量: head -> VarDefContext
CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: tail[i]
[DEBUG] visitUnaryExp: tail[i]
[DEBUG] visitPrimaryExp: tail[i]
SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = tail, sym->kind = 0
绑定变量: tail -> VarDefContext
CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 无返回值的 return
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 radixSort has_return: 1 return_type_is_void: 1
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: n base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getarray(a)
[DEBUG] visitUnaryExp: getarray(a)
[DEBUG] 函数调用: getarray
[DEBUG] CheckFuncCall: getarray
SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x563bb856e320, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
SymbolTable::addSymbol: stored n with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: n type_kind: 1 is_array: 0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: radixSort(8,a,0,n)
[DEBUG] visitUnaryExp: radixSort(8,a,0,n)
[DEBUG] 函数调用: radixSort
[DEBUG] CheckFuncCall: radixSort
SymbolTable::lookup: found radixSort in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 8
[DEBUG] visitUnaryExp: 8
[DEBUG] visitPrimaryExp: 8
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x563bb856e320, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x563bb85992d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 1 形参类型 1
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x563bb85992d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: ans+i*(a[i]%(2+i))
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: (a[i]%(2+i))
[DEBUG] visitPrimaryExp: (a[i]%(2+i))
[DEBUG] CheckExp: a[i]%(2+i)
[DEBUG] visitUnaryExp: a[i]
[DEBUG] visitPrimaryExp: a[i]
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x563bb856e320, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: (2+i)
[DEBUG] visitPrimaryExp: (2+i)
[DEBUG] CheckExp: 2+i
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: -ans
[DEBUG] visitUnaryExp: -ans
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(ans)
[DEBUG] visitUnaryExp: putint(ans)
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: ans
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 a
[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 30000010
[DEBUG] HandleGlobalVariable: 创建全局数组: a
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: ans
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 ans
[DEBUG] HandleGlobalVariable: 变量 ans 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: ans
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: getMaxNum
[DEBUG] visitFuncDef: 创建函数 getMaxNum，返回类型: int，参数数量: 2
[DEBUG] visitFuncDef: 函数对象地址: 0x563bb85b5b10
[DEBUG] visitFuncDef: 为函数 getMaxNum 添加参数 n，类型: int32
[DEBUG] visitFuncDef: 参数 n 处理完成
[DEBUG] visitFuncDef: 为函数 getMaxNum 添加参数 arr，类型: ptr_int32
[error] [ir] 存储类型不匹配：期望 int32

========== test/test_case/performance/2025-MYO-20.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: A base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: 1024
[DEBUG] visitPrimaryExp: 1024
[DEBUG]   dim[0] = 1024
[DEBUG] visitUnaryExp: 1024
[DEBUG] visitPrimaryExp: 1024
[DEBUG]   dim[1] = 1024
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 1024 1024 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored A with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: A type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: B base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: 1024
[DEBUG] visitPrimaryExp: 1024
[DEBUG]   dim[0] = 1024
[DEBUG] visitUnaryExp: 1024
[DEBUG] visitPrimaryExp: 1024
[DEBUG]   dim[1] = 1024
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 1024 1024 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored B with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: B type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: C base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: 1024
[DEBUG] visitPrimaryExp: 1024
[DEBUG]   dim[0] = 1024
[DEBUG] visitUnaryExp: 1024
[DEBUG] visitPrimaryExp: 1024
[DEBUG]   dim[1] = 1024
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 1024 1024 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored C with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: C type_kind: 6 is_array: 1
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: T base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored T with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: T type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: R base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored R with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: R type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: getarray(A[i])
[DEBUG] visitUnaryExp: getarray(A[i])
[DEBUG] 函数调用: getarray
[DEBUG] CheckFuncCall: getarray
SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: A[i]
[DEBUG] visitUnaryExp: A[i]
[DEBUG] visitPrimaryExp: A[i]
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
部分索引，返回指针类型
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: getarray(B[i])
[DEBUG] visitUnaryExp: getarray(B[i])
[DEBUG] 函数调用: getarray
[DEBUG] CheckFuncCall: getarray
SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: B[i]
[DEBUG] visitUnaryExp: B[i]
[DEBUG] visitPrimaryExp: B[i]
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55f614509ce0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
部分索引，返回指针类型
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61452eb70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61452eb70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: -1
[DEBUG] visitUnaryExp: -1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61452eb70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61452eb70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614539040, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55f614509ce0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614539040, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: -1
[DEBUG] visitUnaryExp: -1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614539040, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614539040, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 0
绑定变量: C -> VarDefContext
CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55f614507ad0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: A[i][j]*2+B[i][j]*3
[DEBUG] visitUnaryExp: A[i][j]
[DEBUG] visitPrimaryExp: A[i][j]
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: B[i][j]
[DEBUG] visitPrimaryExp: B[i][j]
SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = B, sym->kind = 0
绑定变量: B -> VarDefContext
CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55f614509ce0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: val base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: C[i][j]
[DEBUG] visitUnaryExp: C[i][j]
[DEBUG] visitPrimaryExp: C[i][j]
SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 0
绑定变量: C -> VarDefContext
CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55f614507ad0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
SymbolTable::addSymbol: stored val with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: val type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = val, sym->kind = 0
绑定变量: val -> VarDefContext
CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: val*val+7
[DEBUG] visitUnaryExp: val
[DEBUG] visitPrimaryExp: val
SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = val, sym->kind = 0
绑定变量: val -> VarDefContext
CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: val
[DEBUG] visitPrimaryExp: val
SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = val, sym->kind = 0
绑定变量: val -> VarDefContext
CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 7
[DEBUG] visitPrimaryExp: 7
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = val, sym->kind = 0
绑定变量: val -> VarDefContext
CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: val/3
[DEBUG] visitUnaryExp: val
[DEBUG] visitPrimaryExp: val
SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = val, sym->kind = 0
绑定变量: val -> VarDefContext
CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 0
绑定变量: C -> VarDefContext
CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55f614507ad0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: val
[DEBUG] visitUnaryExp: val
[DEBUG] visitPrimaryExp: val
SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = val, sym->kind = 0
绑定变量: val -> VarDefContext
CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: k base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored k with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: k type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: sum base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: sum type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sum in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55f614555280, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: sum+C[i][k]*A[k][j]
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55f614555280, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: C[i][k]
[DEBUG] visitPrimaryExp: C[i][k]
SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = C, sym->kind = 0
绑定变量: C -> VarDefContext
CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55f614507ad0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: k
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: A[k][j]
[DEBUG] visitPrimaryExp: A[k][j]
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: k
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: k+1
[DEBUG] visitUnaryExp: k
[DEBUG] visitPrimaryExp: k
SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = k, sym->kind = 0
绑定变量: k -> VarDefContext
CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: sum
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55f614555280, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckVarDef: total base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored total with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: total type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: r base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored r with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: r type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: r
[DEBUG] visitPrimaryExp: r
SymbolTable::lookup: found r in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = r, sym->kind = 0
绑定变量: r -> VarDefContext
CheckLValue 绑定变量: r, sym->kind: 0, sym->var_def_ctx: 0x55f61455d2e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: R
[DEBUG] visitPrimaryExp: R
SymbolTable::lookup: found R in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = R, sym->kind = 0
绑定变量: R -> VarDefContext
CheckLValue 绑定变量: R, sym->kind: 0, sym->var_def_ctx: 0x55f6145114b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: T
[DEBUG] visitPrimaryExp: T
SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = T, sym->kind = 0
绑定变量: T -> VarDefContext
CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = total, sym->kind = 0
绑定变量: total -> VarDefContext
CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x55f61455c6c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: total+A[i][j]*A[i][j]
[DEBUG] visitUnaryExp: total
[DEBUG] visitPrimaryExp: total
SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = total, sym->kind = 0
绑定变量: total -> VarDefContext
CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x55f61455c6c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: A[i][j]
[DEBUG] visitPrimaryExp: A[i][j]
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: A[i][j]
[DEBUG] visitPrimaryExp: A[i][j]
SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = A, sym->kind = 0
绑定变量: A -> VarDefContext
CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found r in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = r, sym->kind = 0
绑定变量: r -> VarDefContext
CheckLValue 绑定变量: r, sym->kind: 0, sym->var_def_ctx: 0x55f61455d2e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: r+1
[DEBUG] visitUnaryExp: r
[DEBUG] visitPrimaryExp: r
SymbolTable::lookup: found r in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = r, sym->kind = 0
绑定变量: r -> VarDefContext
CheckLValue 绑定变量: r, sym->kind: 0, sym->var_def_ctx: 0x55f61455d2e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(total)
[DEBUG] visitUnaryExp: putint(total)
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: total
[DEBUG] visitUnaryExp: total
[DEBUG] visitPrimaryExp: total
SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = total, sym->kind = 0
绑定变量: total -> VarDefContext
CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x55f61455c6c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: A
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 A
[DEBUG] HandleGlobalVariable: 变量 A 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 1048576
[DEBUG] HandleGlobalVariable: 创建全局数组: A
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: B
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 B
[DEBUG] HandleGlobalVariable: 变量 B 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 1048576
[DEBUG] HandleGlobalVariable: 创建全局数组: B
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: C
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 C
[DEBUG] HandleGlobalVariable: 变量 C 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 1048576
[DEBUG] HandleGlobalVariable: 创建全局数组: C
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x55f61457c340
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {intT=getint();intR=getint();inti=0;while(i<T){if(i<T/2){getarray(A[i]);}i=i+1;}i=0;while(i<T){if(i>=T/2){getarray(B[i]);}i=i+1;}starttime();i=0;while(i<T){if(i>=T/2){intj=0;while(j<T){A[i][j]=-1;j=j+1;}}i=i+1;}i=0;while(i<T){if(i<T/2){intj=0;while(j<T){B[i][j]=-1;j=j+1;}}i=i+1;}i=0;while(i<T){intj=0;while(j<T){C[i][j]=A[i][j]*2+B[i][j]*3;j=j+1;}i=i+1;}i=0;while(i<T){intj=0;while(j<T){intval=C[i][j];val=val*val+7;val=val/3;C[i][j]=val;j=j+1;}i=i+1;}i=0;while(i<T){intj=0;while(j<T){intk=0;intsum=0;while(k<T){sum=sum+C[i][k]*A[k][j];k=k+1;}A[i][j]=sum;j=j+1;}i=i+1;}inttotal=0;intr=0;while(r<R){i=0;while(i<T){intj=0;while(j<T){total=total+A[i][j]*A[i][j];j=j+1;}i=i+1;}r=r+1;}stoptime();putint(total);putch(10);return0;}
[DEBUG IRGEN] visitBlockItem: intT=getint();
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: T
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 T
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: getint()
[DEBUG IRGEN] visitAddExp: getint()
[DEBUG IRGEN] visitMulExp: getint()
[DEBUG IRGEN] visitCallExp: 调用函数 getint
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x55f614d7cd00
[DEBUG] EvalExpr: success, result = 0x55f614d7cd00
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intR=getint();
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: R
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 R
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: getint()
[DEBUG IRGEN] visitAddExp: getint()
[DEBUG IRGEN] visitMulExp: getint()
[DEBUG IRGEN] visitCallExp: 调用函数 getint
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x55f614d7cf00
[DEBUG] EvalExpr: success, result = 0x55f614d7cf00
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: inti=0;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: i
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 i
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x55f61457c0c0
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: while(i<T){if(i<T/2){getarray(A[i]);}i=i+1;}
[DEBUG IRGEN] visitStmt: while(i<T){if(i<T/2){getarray(A[i]);}i=i+1;}
[DEBUG IRGEN] HandleWhileStmt: while(i<T){if(i<T/2){getarray(A[i]);}i=i+1;}
[DEBUG WHILE] Current insert block before while: entry
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 1
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: T
[DEBUG IRGEN] visitMulExp: T
[DEBUG IRGEN] visitPrimaryExp: T
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: T
[DEBUG] visitRelExp: left=0x55f614d7d540, type=int, right=0x55f614d7d5c0, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {if(i<T/2){getarray(A[i]);}i=i+1;}
[DEBUG IRGEN] visitBlock: {if(i<T/2){getarray(A[i]);}i=i+1;}
[DEBUG IRGEN] visitBlockItem: if(i<T/2){getarray(A[i]);}
[DEBUG IRGEN] visitStmt: if(i<T/2){getarray(A[i]);}
[DEBUG IRGEN] HandleIfStmt: if(i<T/2){getarray(A[i]);}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: while.body
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: T/2
[DEBUG IRGEN] visitMulExp: T/2
[DEBUG IRGEN] visitMulExp: T
[DEBUG IRGEN] visitPrimaryExp: T
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: T
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55f614d7c720
[DEBUG] visitMulExp: left=0x55f614d7dae0, type=int, right=0x55f614d7c720, type=int
[DEBUG] visitRelExp: left=0x55f614d7da40, type=int, right=0x55f614d7dc10, type=int
[DEBUG IF] Creating condbr: %t11 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {getarray(A[i]);}
[DEBUG IRGEN] visitBlock: {getarray(A[i]);}
[DEBUG IRGEN] visitBlockItem: getarray(A[i]);
[DEBUG IRGEN] visitStmt: getarray(A[i]);
[DEBUG IRGEN] EvalExpr: getarray(A[i])
[DEBUG IRGEN] visitAddExp: getarray(A[i])
[DEBUG IRGEN] visitMulExp: getarray(A[i])
[DEBUG IRGEN] visitCallExp: 调用函数 getarray
[DEBUG IRGEN] EvalExpr: A[i]
[DEBUG IRGEN] visitAddExp: A[i]
[DEBUG IRGEN] visitMulExp: A[i]
[DEBUG IRGEN] visitPrimaryExp: A[i]
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: A
[DEBUG IRGEN] EvalExpr: i
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG] EvalExpr: success, result = 0x55f614d7df50
[ERROR] Exception in EvalExpr: [ir] LoadInst 当前只支持从 i32* 加载
[ERROR] Exception in EvalExpr: [ir] LoadInst 当前只支持从 i32* 加载
[error] [ir] LoadInst 当前只支持从 i32* 加载

========== test/test_case/performance/fft0.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored multiply with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored power with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored memmove with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored fft with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckConstDef: mod base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 998244353
[DEBUG] visitPrimaryExp: 998244353
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: mod, ctx: 0x55dd44ad2ce0
SymbolTable::addSymbol: stored mod with kind=3, const_def_ctx=0x55dd44ad2ce0
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55dd44ad2ce0
[DEBUG]   常量符号添加完成
[DEBUG] CheckVarDef: d base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored d with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: d type_kind: 1 is_array: 0
[DEBUG] CheckConstDef: maxlen base_type: int is_array: 0 dim_count: 0
[DEBUG] visitUnaryExp: 2097152
[DEBUG] visitPrimaryExp: 2097152
[DEBUG]   初始化值数量: 1
CheckConstDef: before addSymbol, sym.kind = 3
保存常量定义上下文: maxlen, ctx: 0x55dd44b035a0
SymbolTable::addSymbol: stored maxlen with kind=3, const_def_ctx=0x55dd44b035a0
CheckConstDef: after addSymbol, sym.kind = 3
SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0
CheckConstDef: after addSymbol, stored const_def_ctx = 0x55dd44b035a0
[DEBUG]   常量符号添加完成
[DEBUG] CheckVarDef: temp base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: maxlen
[DEBUG] visitPrimaryExp: maxlen
SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0
CheckLValue: found sym->name = maxlen, sym->kind = 3
绑定常量: maxlen -> ConstDefContext
CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44b035a0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0
[DEBUG]   dim[0] = 2097152
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 2097152 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored temp with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: temp type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: a base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: maxlen
[DEBUG] visitPrimaryExp: maxlen
SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0
CheckLValue: found sym->name = maxlen, sym->kind = 3
绑定常量: maxlen -> ConstDefContext
CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44b035a0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0
[DEBUG]   dim[0] = 2097152
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 2097152 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: b base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: maxlen
[DEBUG] visitPrimaryExp: maxlen
SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0
CheckLValue: found sym->name = maxlen, sym->kind = 3
绑定常量: maxlen -> ConstDefContext
CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44b035a0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0
[DEBUG]   dim[0] = 2097152
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 2097152 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: c base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: maxlen
[DEBUG] visitPrimaryExp: maxlen
SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0
CheckLValue: found sym->name = maxlen, sym->kind = 3
绑定常量: maxlen -> ConstDefContext
CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44b035a0
dim_count: 0, subscript_count: 0
SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0
[DEBUG]   dim[0] = 2097152
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 2097152 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored c with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: c type_kind: 6 is_array: 1
[DEBUG] 进入函数: multiply 返回类型: int
SymbolTable::addSymbol: stored a with kind=2, const_def_ctx=0
[DEBUG] 添加参数: a type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored b with kind=2, const_def_ctx=0
[DEBUG] 添加参数: b type_kind: 1 is_array: 0 dims: 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: a%mod
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] CheckVarDef: cur base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: multiply(a,b/2)
[DEBUG] visitUnaryExp: multiply(a,b/2)
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: b/2
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
SymbolTable::addSymbol: stored cur with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: cur type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: (cur+cur)%mod
[DEBUG] visitUnaryExp: (cur+cur)
[DEBUG] visitPrimaryExp: (cur+cur)
[DEBUG] CheckExp: cur+cur
[DEBUG] visitUnaryExp: cur
[DEBUG] visitPrimaryExp: cur
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: cur
[DEBUG] visitPrimaryExp: cur
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: (cur+a)%mod
[DEBUG] visitUnaryExp: (cur+a)
[DEBUG] visitPrimaryExp: (cur+a)
[DEBUG] CheckExp: cur+a
[DEBUG] visitUnaryExp: cur
[DEBUG] visitPrimaryExp: cur
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: cur
[DEBUG] visitUnaryExp: cur
[DEBUG] visitPrimaryExp: cur
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 multiply has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: power 返回类型: int
SymbolTable::addSymbol: stored a with kind=2, const_def_ctx=0
[DEBUG] 添加参数: a type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored b with kind=2, const_def_ctx=0
[DEBUG] 添加参数: b type_kind: 1 is_array: 0 dims: 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] CheckVarDef: cur base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: power(a,b/2)
[DEBUG] visitUnaryExp: power(a,b/2)
[DEBUG] 函数调用: power
[DEBUG] CheckFuncCall: power
SymbolTable::lookup: found power in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: b/2
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
SymbolTable::addSymbol: stored cur with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: cur type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: multiply(cur,cur)
[DEBUG] visitUnaryExp: multiply(cur,cur)
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: cur
[DEBUG] visitUnaryExp: cur
[DEBUG] visitPrimaryExp: cur
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: cur
[DEBUG] visitUnaryExp: cur
[DEBUG] visitPrimaryExp: cur
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 2
CheckLValue 绑定变量: b, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: multiply(cur,a)
[DEBUG] visitUnaryExp: multiply(cur,a)
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: cur
[DEBUG] visitUnaryExp: cur
[DEBUG] visitPrimaryExp: cur
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 2
CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: cur
[DEBUG] visitUnaryExp: cur
[DEBUG] visitPrimaryExp: cur
SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = cur, sym->kind = 0
绑定变量: cur -> VarDefContext
CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 power has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: memmove 返回类型: int
SymbolTable::addSymbol: stored dst with kind=2, const_def_ctx=0
[DEBUG] 添加参数: dst type_kind: 3 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored dst_pos with kind=2, const_def_ctx=0
[DEBUG] 添加参数: dst_pos type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored src with kind=2, const_def_ctx=0
[DEBUG] 添加参数: src type_kind: 3 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored len with kind=2, const_def_ctx=0
[DEBUG] 添加参数: len type_kind: 1 is_array: 0 dims: 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: len
[DEBUG] visitPrimaryExp: len
SymbolTable::lookup: found len in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = len, sym->kind = 2
CheckLValue 绑定变量: len, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found dst in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = dst, sym->kind = 2
CheckLValue 绑定变量: dst, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: dst_pos+i
[DEBUG] visitUnaryExp: dst_pos
[DEBUG] visitPrimaryExp: dst_pos
SymbolTable::lookup: found dst_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = dst_pos, sym->kind = 2
CheckLValue 绑定变量: dst_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: src[i]
[DEBUG] visitUnaryExp: src[i]
[DEBUG] visitPrimaryExp: src[i]
SymbolTable::lookup: found src in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = src, sym->kind = 2
CheckLValue 绑定变量: src, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 memmove has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: fft 返回类型: int
SymbolTable::addSymbol: stored arr with kind=2, const_def_ctx=0
[DEBUG] 添加参数: arr type_kind: 3 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored begin_pos with kind=2, const_def_ctx=0
[DEBUG] 添加参数: begin_pos type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored w with kind=2, const_def_ctx=0
[DEBUG] 添加参数: w type_kind: 1 is_array: 0 dims: 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55dd44b037d0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i/2
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
完全索引，返回元素类型
[DEBUG] CheckExp: arr[i+begin_pos]
[DEBUG] visitUnaryExp: arr[i+begin_pos]
[DEBUG] visitPrimaryExp: arr[i+begin_pos]
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i+begin_pos
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: begin_pos
[DEBUG] visitPrimaryExp: begin_pos
SymbolTable::lookup: found begin_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = begin_pos, sym->kind = 2
CheckLValue 绑定变量: begin_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55dd44b037d0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: n/2+i/2
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
完全索引，返回元素类型
[DEBUG] CheckExp: arr[i+begin_pos]
[DEBUG] visitUnaryExp: arr[i+begin_pos]
[DEBUG] visitPrimaryExp: arr[i+begin_pos]
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i+begin_pos
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: begin_pos
[DEBUG] visitPrimaryExp: begin_pos
SymbolTable::lookup: found begin_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = begin_pos, sym->kind = 2
CheckLValue 绑定变量: begin_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: memmove(arr,begin_pos,temp,n)
[DEBUG] visitUnaryExp: memmove(arr,begin_pos,temp,n)
[DEBUG] 函数调用: memmove
[DEBUG] CheckFuncCall: memmove
SymbolTable::lookup: found memmove in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: arr
[DEBUG] visitUnaryExp: arr
[DEBUG] visitPrimaryExp: arr
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: begin_pos
[DEBUG] visitUnaryExp: begin_pos
[DEBUG] visitPrimaryExp: begin_pos
SymbolTable::lookup: found begin_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = begin_pos, sym->kind = 2
CheckLValue 绑定变量: begin_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: temp
[DEBUG] visitUnaryExp: temp
[DEBUG] visitPrimaryExp: temp
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55dd44b037d0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 2: 实参类型 3 形参类型 3
[DEBUG] 检查参数 3: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: fft(arr,begin_pos,n/2,multiply(w,w))
[DEBUG] visitUnaryExp: fft(arr,begin_pos,n/2,multiply(w,w))
[DEBUG] 函数调用: fft
[DEBUG] CheckFuncCall: fft
SymbolTable::lookup: found fft in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: arr
[DEBUG] visitUnaryExp: arr
[DEBUG] visitPrimaryExp: arr
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: begin_pos
[DEBUG] visitUnaryExp: begin_pos
[DEBUG] visitPrimaryExp: begin_pos
SymbolTable::lookup: found begin_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = begin_pos, sym->kind = 2
CheckLValue 绑定变量: begin_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: n/2
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] CheckExp: multiply(w,w)
[DEBUG] visitUnaryExp: multiply(w,w)
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: w
[DEBUG] visitUnaryExp: w
[DEBUG] visitPrimaryExp: w
SymbolTable::lookup: found w in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = w, sym->kind = 2
CheckLValue 绑定变量: w, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: w
[DEBUG] visitUnaryExp: w
[DEBUG] visitPrimaryExp: w
SymbolTable::lookup: found w in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = w, sym->kind = 2
CheckLValue 绑定变量: w, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: fft(arr,begin_pos+n/2,n/2,multiply(w,w))
[DEBUG] visitUnaryExp: fft(arr,begin_pos+n/2,n/2,multiply(w,w))
[DEBUG] 函数调用: fft
[DEBUG] CheckFuncCall: fft
SymbolTable::lookup: found fft in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: arr
[DEBUG] visitUnaryExp: arr
[DEBUG] visitPrimaryExp: arr
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: begin_pos+n/2
[DEBUG] visitUnaryExp: begin_pos
[DEBUG] visitPrimaryExp: begin_pos
SymbolTable::lookup: found begin_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = begin_pos, sym->kind = 2
CheckLValue 绑定变量: begin_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] CheckExp: n/2
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] CheckExp: multiply(w,w)
[DEBUG] visitUnaryExp: multiply(w,w)
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: w
[DEBUG] visitUnaryExp: w
[DEBUG] visitPrimaryExp: w
SymbolTable::lookup: found w in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = w, sym->kind = 2
CheckLValue 绑定变量: w, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: w
[DEBUG] visitUnaryExp: w
[DEBUG] visitPrimaryExp: w
SymbolTable::lookup: found w in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = w, sym->kind = 2
CheckLValue 绑定变量: w, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckVarDef: wn base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored wn with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: wn type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: x base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: arr[begin_pos+i]
[DEBUG] visitUnaryExp: arr[begin_pos+i]
[DEBUG] visitPrimaryExp: arr[begin_pos+i]
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: begin_pos+i
[DEBUG] visitUnaryExp: begin_pos
[DEBUG] visitPrimaryExp: begin_pos
SymbolTable::lookup: found begin_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = begin_pos, sym->kind = 2
CheckLValue 绑定变量: begin_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
SymbolTable::addSymbol: stored x with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: x type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: y base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: arr[begin_pos+i+n/2]
[DEBUG] visitUnaryExp: arr[begin_pos+i+n/2]
[DEBUG] visitPrimaryExp: arr[begin_pos+i+n/2]
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: begin_pos+i+n/2
[DEBUG] visitUnaryExp: begin_pos
[DEBUG] visitPrimaryExp: begin_pos
SymbolTable::lookup: found begin_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = begin_pos, sym->kind = 2
CheckLValue 绑定变量: begin_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
完全索引，返回元素类型
SymbolTable::addSymbol: stored y with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: y type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: begin_pos+i
[DEBUG] visitUnaryExp: begin_pos
[DEBUG] visitPrimaryExp: begin_pos
SymbolTable::lookup: found begin_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = begin_pos, sym->kind = 2
CheckLValue 绑定变量: begin_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: (x+multiply(wn,y))%mod
[DEBUG] visitUnaryExp: (x+multiply(wn,y))
[DEBUG] visitPrimaryExp: (x+multiply(wn,y))
[DEBUG] CheckExp: x+multiply(wn,y)
[DEBUG] visitUnaryExp: x
[DEBUG] visitPrimaryExp: x
SymbolTable::lookup: found x in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 0
绑定变量: x -> VarDefContext
CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2ce80, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: multiply(wn,y)
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: wn
[DEBUG] visitUnaryExp: wn
[DEBUG] visitPrimaryExp: wn
SymbolTable::lookup: found wn in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = wn, sym->kind = 0
绑定变量: wn -> VarDefContext
CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2b2a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: y
[DEBUG] visitUnaryExp: y
[DEBUG] visitPrimaryExp: y
SymbolTable::lookup: found y in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = y, sym->kind = 0
绑定变量: y -> VarDefContext
CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2e230, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = arr, sym->kind = 2
CheckLValue 绑定变量: arr, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: begin_pos+i+n/2
[DEBUG] visitUnaryExp: begin_pos
[DEBUG] visitPrimaryExp: begin_pos
SymbolTable::lookup: found begin_pos in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = begin_pos, sym->kind = 2
CheckLValue 绑定变量: begin_pos, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
完全索引，返回元素类型
[DEBUG] CheckExp: (x-multiply(wn,y)+mod)%mod
[DEBUG] visitUnaryExp: (x-multiply(wn,y)+mod)
[DEBUG] visitPrimaryExp: (x-multiply(wn,y)+mod)
[DEBUG] CheckExp: x-multiply(wn,y)+mod
[DEBUG] visitUnaryExp: x
[DEBUG] visitPrimaryExp: x
SymbolTable::lookup: found x in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 0
绑定变量: x -> VarDefContext
CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2ce80, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: multiply(wn,y)
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: wn
[DEBUG] visitUnaryExp: wn
[DEBUG] visitPrimaryExp: wn
SymbolTable::lookup: found wn in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = wn, sym->kind = 0
绑定变量: wn -> VarDefContext
CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2b2a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: y
[DEBUG] visitUnaryExp: y
[DEBUG] visitPrimaryExp: y
SymbolTable::lookup: found y in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = y, sym->kind = 0
绑定变量: y -> VarDefContext
CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2e230, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found wn in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = wn, sym->kind = 0
绑定变量: wn -> VarDefContext
CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2b2a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: multiply(wn,w)
[DEBUG] visitUnaryExp: multiply(wn,w)
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: wn
[DEBUG] visitUnaryExp: wn
[DEBUG] visitPrimaryExp: wn
SymbolTable::lookup: found wn in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = wn, sym->kind = 0
绑定变量: wn -> VarDefContext
CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2b2a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: w
[DEBUG] visitUnaryExp: w
[DEBUG] visitPrimaryExp: w
SymbolTable::lookup: found w in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = w, sym->kind = 2
CheckLValue 绑定变量: w, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 fft has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: n base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getarray(a)
[DEBUG] visitUnaryExp: getarray(a)
[DEBUG] 函数调用: getarray
[DEBUG] CheckFuncCall: getarray
SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
SymbolTable::addSymbol: stored n with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: n type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: m base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getarray(b)
[DEBUG] visitUnaryExp: getarray(b)
[DEBUG] 函数调用: getarray
[DEBUG] CheckFuncCall: getarray
SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: b
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55dd44b068e0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
SymbolTable::addSymbol: stored m with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: m type_kind: 1 is_array: 0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55dd44b384b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x55dd44b39380, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: d*2
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: fft(a,0,d,power(3,(mod-1)/d))
[DEBUG] visitUnaryExp: fft(a,0,d,power(3,(mod-1)/d))
[DEBUG] 函数调用: fft
[DEBUG] CheckFuncCall: fft
SymbolTable::lookup: found fft in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: d
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: power(3,(mod-1)/d)
[DEBUG] visitUnaryExp: power(3,(mod-1)/d)
[DEBUG] 函数调用: power
[DEBUG] CheckFuncCall: power
SymbolTable::lookup: found power in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] CheckExp: (mod-1)/d
[DEBUG] visitUnaryExp: (mod-1)
[DEBUG] visitPrimaryExp: (mod-1)
[DEBUG] CheckExp: mod-1
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: fft(b,0,d,power(3,(mod-1)/d))
[DEBUG] visitUnaryExp: fft(b,0,d,power(3,(mod-1)/d))
[DEBUG] 函数调用: fft
[DEBUG] CheckFuncCall: fft
SymbolTable::lookup: found fft in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: b
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55dd44b068e0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: d
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: power(3,(mod-1)/d)
[DEBUG] visitUnaryExp: power(3,(mod-1)/d)
[DEBUG] 函数调用: power
[DEBUG] CheckFuncCall: power
SymbolTable::lookup: found power in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] CheckExp: (mod-1)/d
[DEBUG] visitUnaryExp: (mod-1)
[DEBUG] visitPrimaryExp: (mod-1)
[DEBUG] CheckExp: mod-1
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 1 形参类型 1
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: multiply(a[i],b[i])
[DEBUG] visitUnaryExp: multiply(a[i],b[i])
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a[i]
[DEBUG] visitUnaryExp: a[i]
[DEBUG] visitPrimaryExp: a[i]
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: b[i]
[DEBUG] visitUnaryExp: b[i]
[DEBUG] visitPrimaryExp: b[i]
SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55dd44b068e0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: fft(a,0,d,power(3,mod-1-(mod-1)/d))
[DEBUG] visitUnaryExp: fft(a,0,d,power(3,mod-1-(mod-1)/d))
[DEBUG] 函数调用: fft
[DEBUG] CheckFuncCall: fft
SymbolTable::lookup: found fft in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] CheckExp: d
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: power(3,mod-1-(mod-1)/d)
[DEBUG] visitUnaryExp: power(3,mod-1-(mod-1)/d)
[DEBUG] 函数调用: power
[DEBUG] CheckFuncCall: power
SymbolTable::lookup: found power in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] CheckExp: mod-1-(mod-1)/d
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: (mod-1)
[DEBUG] visitPrimaryExp: (mod-1)
[DEBUG] CheckExp: mod-1
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: multiply(a[i],power(d,mod-2))
[DEBUG] visitUnaryExp: multiply(a[i],power(d,mod-2))
[DEBUG] 函数调用: multiply
[DEBUG] CheckFuncCall: multiply
SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a[i]
[DEBUG] visitUnaryExp: a[i]
[DEBUG] visitPrimaryExp: a[i]
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: power(d,mod-2)
[DEBUG] visitUnaryExp: power(d,mod-2)
[DEBUG] 函数调用: power
[DEBUG] CheckFuncCall: power
SymbolTable::lookup: found power in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: d
[DEBUG] visitUnaryExp: d
[DEBUG] visitPrimaryExp: d
SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = d, sym->kind = 0
绑定变量: d -> VarDefContext
CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: mod-2
[DEBUG] visitUnaryExp: mod
[DEBUG] visitPrimaryExp: mod
SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0
CheckLValue: found sym->name = mod, sym->kind = 3
绑定常量: mod -> ConstDefContext
CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putarray(n+m-1,a)
[DEBUG] visitUnaryExp: putarray(n+m-1,a)
[DEBUG] 函数调用: putarray
[DEBUG] CheckFuncCall: putarray
SymbolTable::lookup: found putarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: n+m-1
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55dd44b384b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x55dd44b39380, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: d
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 d
[DEBUG] HandleGlobalVariable: 变量 d 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: d
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理常量声明
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: temp
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 temp
[DEBUG] HandleGlobalVariable: 变量 temp 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 2097152
[DEBUG] HandleGlobalVariable: 创建全局数组: temp
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 a
[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 2097152
[DEBUG] HandleGlobalVariable: 创建全局数组: a
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: b
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 b
[DEBUG] HandleGlobalVariable: 变量 b 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 2097152
[DEBUG] HandleGlobalVariable: 创建全局数组: b
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: c
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 c
[DEBUG] HandleGlobalVariable: 变量 c 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 2097152
[DEBUG] HandleGlobalVariable: 创建全局数组: c
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: multiply
[DEBUG] visitFuncDef: 创建函数 multiply，返回类型: int，参数数量: 2
[DEBUG] visitFuncDef: 函数对象地址: 0x55dd45b6b150
[DEBUG] visitFuncDef: 为函数 multiply 添加参数 a，类型: int32
[DEBUG] visitFuncDef: 参数 a 处理完成
[DEBUG] visitFuncDef: 为函数 multiply 添加参数 b，类型: int32
[DEBUG] visitFuncDef: 参数 b 处理完成
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {if(b==0)return0;if(b==1)returna%mod;intcur=multiply(a,b/2);cur=(cur+cur)%mod;if(b%2==1)return(cur+a)%mod;elsereturncur;}
[DEBUG IRGEN] visitBlockItem: if(b==0)return0;
[DEBUG IRGEN] visitStmt: if(b==0)return0;
[DEBUG IRGEN] HandleIfStmt: if(b==0)return0;
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: entry
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] visitEqExp: left=0x55dd45b6ba80, type=int, right=0x55dd44a9d560, type=int
[DEBUG IF] Creating condbr: %t3 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: return0;
[DEBUG IRGEN] HandleReturnStmt: return0;
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x55dd44a9d560
[DEBUG IF] then branch terminated: 1
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=1, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IRGEN] visitBlockItem: if(b==1)returna%mod;
[DEBUG IRGEN] visitStmt: if(b==1)returna%mod;
[DEBUG IRGEN] HandleIfStmt: if(b==1)returna%mod;
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: merge
[DEBUG IRGEN] visitAddExp: b
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x55dd45b6bff0
[DEBUG] visitEqExp: left=0x55dd45b6bf30, type=int, right=0x55dd45b6bff0, type=int
[DEBUG IF] Creating condbr: %t5 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: returna%mod;
[DEBUG IRGEN] HandleReturnStmt: returna%mod;
[DEBUG IRGEN] EvalExpr: a%mod
[DEBUG IRGEN] visitAddExp: a%mod
[DEBUG IRGEN] visitMulExp: a%mod
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG IRGEN] visitPrimaryExp: mod
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: mod
[DEBUG] visitLVal: constant mod
[DEBUG] visitMulExp: left=0x55dd45b6c270, type=int, right=0x55dd44b58bd0, type=int
[DEBUG] EvalExpr: success, result = 0x55dd45b6c2f0
[DEBUG IF] then branch terminated: 1
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=1, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IRGEN] visitBlockItem: intcur=multiply(a,b/2);
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: cur
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 cur
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: multiply(a,b/2)
[DEBUG IRGEN] visitAddExp: multiply(a,b/2)
[DEBUG IRGEN] visitMulExp: multiply(a,b/2)
[DEBUG IRGEN] visitCallExp: 调用函数 multiply
[DEBUG IRGEN] EvalExpr: a
[DEBUG IRGEN] visitAddExp: a
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] EvalExpr: success, result = 0x55dd45b6c5d0
[DEBUG IRGEN] EvalExpr: b/2
[DEBUG IRGEN] visitAddExp: b/2
[DEBUG IRGEN] visitMulExp: b/2
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55dd45b6c780
[DEBUG] visitMulExp: left=0x55dd45b6c6e0, type=int, right=0x55dd45b6c780, type=int
[DEBUG] EvalExpr: success, result = 0x55dd45b6c7e0
[DEBUG IRGEN] visitCallExp: 收集到 2 个参数
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x55dd45b6c8e0
[DEBUG] EvalExpr: success, result = 0x55dd45b6c8e0
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: merge
[DEBUG IRGEN] visitBlockItem: cur=(cur+cur)%mod;
[DEBUG IRGEN] visitStmt: cur=(cur+cur)%mod;
[DEBUG IRGEN] HandleAssignStmt: cur=(cur+cur)%mod;
[DEBUG IRGEN] EvalExpr: (cur+cur)%mod
[DEBUG IRGEN] visitAddExp: (cur+cur)%mod
[DEBUG IRGEN] visitMulExp: (cur+cur)%mod
[DEBUG IRGEN] visitMulExp: (cur+cur)
[DEBUG IRGEN] visitPrimaryExp: (cur+cur)
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting parenthesized expression
[DEBUG IRGEN] EvalExpr: cur+cur
[DEBUG IRGEN] visitAddExp: cur+cur
[DEBUG IRGEN] visitAddExp: cur
[DEBUG IRGEN] visitMulExp: cur
[DEBUG IRGEN] visitPrimaryExp: cur
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: cur
[DEBUG IRGEN] visitMulExp: cur
[DEBUG IRGEN] visitPrimaryExp: cur
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: cur
[DEBUG] visitAddExp: left=0x55dd45b6cad0, type=int, right=0x55dd45b6cb50, type=int
[DEBUG] EvalExpr: success, result = 0x55dd45b6cc40
[DEBUG IRGEN] visitPrimaryExp: mod
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: mod
[DEBUG] visitLVal: constant mod
[DEBUG] visitMulExp: left=0x55dd45b6cc40, type=int, right=0x55dd44b58bd0, type=int
[DEBUG] EvalExpr: success, result = 0x55dd45b6cdb0
[DEBUG] HandleAssignStmt: assigning to cur
[DEBUG] HandleAssignStmt: found in storage_map_ for cur, ptr = 0x55dd45b6c490
[DEBUG] HandleAssignStmt: scalar assignment to cur, ptr = 0x55dd45b6c490, rhs = 0x55dd45b6cdb0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: merge
[DEBUG IRGEN] visitBlockItem: if(b%2==1)return(cur+a)%mod;elsereturncur;
[DEBUG IRGEN] visitStmt: if(b%2==1)return(cur+a)%mod;elsereturncur;
[DEBUG IRGEN] HandleIfStmt: if(b%2==1)return(cur+a)%mod;elsereturncur;
[DEBUG IF] thenBlock: then
[DEBUG IF] elseBlock: else
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: merge
[DEBUG IRGEN] visitAddExp: b%2
[DEBUG IRGEN] visitMulExp: b%2
[DEBUG IRGEN] visitMulExp: b
[DEBUG IRGEN] visitPrimaryExp: b
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: b
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x55dd45b6c780
[DEBUG] visitMulExp: left=0x55dd45b6d180, type=int, right=0x55dd45b6c780, type=int
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x55dd45b6bff0
[DEBUG] visitEqExp: left=0x55dd45b6d2d0, type=int, right=0x55dd45b6bff0, type=int
[DEBUG IF] Creating condbr: %t19 -> then, else
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: return(cur+a)%mod;
[DEBUG IRGEN] HandleReturnStmt: return(cur+a)%mod;
[DEBUG IRGEN] EvalExpr: (cur+a)%mod
[DEBUG IRGEN] visitAddExp: (cur+a)%mod
[DEBUG IRGEN] visitMulExp: (cur+a)%mod
[DEBUG IRGEN] visitMulExp: (cur+a)
[DEBUG IRGEN] visitPrimaryExp: (cur+a)
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting parenthesized expression
[DEBUG IRGEN] EvalExpr: cur+a
[DEBUG IRGEN] visitAddExp: cur+a
[DEBUG IRGEN] visitAddExp: cur
[DEBUG IRGEN] visitMulExp: cur
[DEBUG IRGEN] visitPrimaryExp: cur
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: cur
[DEBUG IRGEN] visitMulExp: a
[DEBUG IRGEN] visitPrimaryExp: a
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: a
[DEBUG] visitAddExp: left=0x55dd45b6d570, type=int, right=0x55dd45b6d700, type=int
[DEBUG] EvalExpr: success, result = 0x55dd45b6d7c0
[DEBUG IRGEN] visitPrimaryExp: mod
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: mod
[DEBUG] visitLVal: constant mod
[DEBUG] visitMulExp: left=0x55dd45b6d7c0, type=int, right=0x55dd44b58bd0, type=int
[DEBUG] EvalExpr: success, result = 0x55dd45b6d880
[DEBUG IF] then branch terminated: 1
[DEBUG IF] then block has terminator: 1
[DEBUG IF] Generating else branch in block: else
[DEBUG IRGEN] visitStmt: returncur;
[DEBUG IRGEN] HandleReturnStmt: returncur;
[DEBUG IRGEN] EvalExpr: cur
[DEBUG IRGEN] visitAddExp: cur
[DEBUG IRGEN] visitMulExp: cur
[DEBUG IRGEN] visitPrimaryExp: cur
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: cur
[DEBUG] EvalExpr: success, result = 0x55dd45b6d9e0
[DEBUG IF] else branch terminated: 1
[DEBUG IF] else block has terminator: 1
[DEBUG IF] thenTerminated=1, elseTerminated=1
[DEBUG IF] Both branches terminated, creating new block: after.if
[DEBUG IF] Final insert block: after.if
[DEBUG] current insert block: after.if
[ERROR] visitFuncDef: 验证函数结构失败: [irgen] 基本块未正确终结: merge
[error] [irgen] 基本块未正确终结: merge

========== test/test_case/performance/gameoflife-oscillator.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored read_map with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored put_map with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored swap12 with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored step with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: sheet1 base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: 500
[DEBUG] visitPrimaryExp: 500
[DEBUG]   dim[0] = 500
[DEBUG] visitUnaryExp: 500
[DEBUG] visitPrimaryExp: 500
[DEBUG]   dim[1] = 500
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 500 500 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored sheet1 with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: sheet1 type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: sheet2 base_type: int is_array: 1 dim_count: 2
[DEBUG] visitUnaryExp: 500
[DEBUG] visitPrimaryExp: 500
[DEBUG]   dim[0] = 500
[DEBUG] visitUnaryExp: 500
[DEBUG] visitPrimaryExp: 500
[DEBUG]   dim[1] = 500
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 500 500 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored sheet2 with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: sheet2 type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: active base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored active with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: active type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: width base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored width with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: width type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: height base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored height with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: height type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: steps base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored steps with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: steps type_kind: 1 is_array: 0
[DEBUG] 进入函数: read_map 返回类型: void
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = width, sym->kind = 0
绑定变量: width -> VarDefContext
CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = height, sym->kind = 0
绑定变量: height -> VarDefContext
CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found steps in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = steps, sym->kind = 0
绑定变量: steps -> VarDefContext
CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x5627859c1f70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: getch()
[DEBUG] visitUnaryExp: getch()
[DEBUG] 函数调用: getch
[DEBUG] CheckFuncCall: getch
SymbolTable::lookup: found getch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: height
[DEBUG] visitPrimaryExp: height
SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = height, sym->kind = 0
绑定变量: height -> VarDefContext
CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: width
[DEBUG] visitPrimaryExp: width
SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = width, sym->kind = 0
绑定变量: width -> VarDefContext
CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: get base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getch()
[DEBUG] visitUnaryExp: getch()
[DEBUG] 函数调用: getch
[DEBUG] CheckFuncCall: getch
SymbolTable::lookup: found getch in scope level 0, kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored get with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: get type_kind: 1 is_array: 0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: get
[DEBUG] visitPrimaryExp: get
SymbolTable::lookup: found get in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = get, sym->kind = 0
绑定变量: get -> VarDefContext
CheckLValue 绑定变量: get, sym->kind: 0, sym->var_def_ctx: 0x5627859d61e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 35
[DEBUG] visitPrimaryExp: 35
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sheet1, sym->kind = 0
绑定变量: sheet1 -> VarDefContext
CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sheet1, sym->kind = 0
绑定变量: sheet1 -> VarDefContext
CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: getch()
[DEBUG] visitUnaryExp: getch()
[DEBUG] 函数调用: getch
[DEBUG] CheckFuncCall: getch
SymbolTable::lookup: found getch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 函数 read_map has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: put_map 返回类型: void
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859e89b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: height
[DEBUG] visitPrimaryExp: height
SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = height, sym->kind = 0
绑定变量: height -> VarDefContext
CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: width
[DEBUG] visitPrimaryExp: width
SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = width, sym->kind = 0
绑定变量: width -> VarDefContext
CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: sheet1[j][i]
[DEBUG] visitPrimaryExp: sheet1[j][i]
SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sheet1, sym->kind = 0
绑定变量: sheet1 -> VarDefContext
CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859e89b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(35)
[DEBUG] visitUnaryExp: putch(35)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 35
[DEBUG] visitUnaryExp: 35
[DEBUG] visitPrimaryExp: 35
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(46)
[DEBUG] visitUnaryExp: putch(46)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 46
[DEBUG] visitUnaryExp: 46
[DEBUG] visitPrimaryExp: 46
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859e89b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859e89b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 函数 put_map has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: swap12 返回类型: void
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: height
[DEBUG] visitPrimaryExp: height
SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = height, sym->kind = 0
绑定变量: height -> VarDefContext
CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: width
[DEBUG] visitPrimaryExp: width
SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = width, sym->kind = 0
绑定变量: width -> VarDefContext
CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sheet1, sym->kind = 0
绑定变量: sheet1 -> VarDefContext
CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: sheet2[j][i]
[DEBUG] visitUnaryExp: sheet2[j][i]
[DEBUG] visitPrimaryExp: sheet2[j][i]
SymbolTable::lookup: found sheet2 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sheet2, sym->kind = 0
绑定变量: sheet2 -> VarDefContext
CheckLValue 绑定变量: sheet2, sym->kind: 0, sym->var_def_ctx: 0x5627859b9170, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 函数 swap12 has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: step 返回类型: void
SymbolTable::addSymbol: stored source with kind=2, const_def_ctx=0
[DEBUG] 添加参数: source type_kind: 3 is_array: 1 dims: 0 500 
SymbolTable::addSymbol: stored target with kind=2, const_def_ctx=0
[DEBUG] 添加参数: target type_kind: 3 is_array: 1 dims: 0 500 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: height
[DEBUG] visitPrimaryExp: height
SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = height, sym->kind = 0
绑定变量: height -> VarDefContext
CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: width
[DEBUG] visitPrimaryExp: width
SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = width, sym->kind = 0
绑定变量: width -> VarDefContext
CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] CheckVarDef: alive_count base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: source[j-1][i-1]+source[j-1][i]+source[j-1][i+1]+source[j][i-1]+source[j][i+1]+source[j+1][i-1]+source[j+1][i]+source[j+1][i+1]
[DEBUG] visitUnaryExp: source[j-1][i-1]
[DEBUG] visitPrimaryExp: source[j-1][i-1]
SymbolTable::lookup: found source in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = source, sym->kind = 2
CheckLValue 绑定变量: source, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j-1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: i-1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] visitUnaryExp: source[j-1][i]
[DEBUG] visitPrimaryExp: source[j-1][i]
SymbolTable::lookup: found source in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = source, sym->kind = 2
CheckLValue 绑定变量: source, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j-1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: source[j-1][i+1]
[DEBUG] visitPrimaryExp: source[j-1][i+1]
SymbolTable::lookup: found source in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = source, sym->kind = 2
CheckLValue 绑定变量: source, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j-1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] visitUnaryExp: source[j][i-1]
[DEBUG] visitPrimaryExp: source[j][i-1]
SymbolTable::lookup: found source in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = source, sym->kind = 2
CheckLValue 绑定变量: source, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i-1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] visitUnaryExp: source[j][i+1]
[DEBUG] visitPrimaryExp: source[j][i+1]
SymbolTable::lookup: found source in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = source, sym->kind = 2
CheckLValue 绑定变量: source, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] visitUnaryExp: source[j+1][i-1]
[DEBUG] visitPrimaryExp: source[j+1][i-1]
SymbolTable::lookup: found source in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = source, sym->kind = 2
CheckLValue 绑定变量: source, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: i-1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] visitUnaryExp: source[j+1][i]
[DEBUG] visitPrimaryExp: source[j+1][i]
SymbolTable::lookup: found source in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = source, sym->kind = 2
CheckLValue 绑定变量: source, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: source[j+1][i+1]
[DEBUG] visitPrimaryExp: source[j+1][i+1]
SymbolTable::lookup: found source in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = source, sym->kind = 2
CheckLValue 绑定变量: source, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
SymbolTable::addSymbol: stored alive_count with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: alive_count type_kind: 1 is_array: 0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: source[j][i]
[DEBUG] visitPrimaryExp: source[j][i]
SymbolTable::lookup: found source in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = source, sym->kind = 2
CheckLValue 绑定变量: source, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: alive_count
[DEBUG] visitPrimaryExp: alive_count
SymbolTable::lookup: found alive_count in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = alive_count, sym->kind = 0
绑定变量: alive_count -> VarDefContext
CheckLValue 绑定变量: alive_count, sym->kind: 0, sym->var_def_ctx: 0x5627859ff6e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found target in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = target, sym->kind = 2
CheckLValue 绑定变量: target, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: alive_count
[DEBUG] visitPrimaryExp: alive_count
SymbolTable::lookup: found alive_count in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = alive_count, sym->kind = 0
绑定变量: alive_count -> VarDefContext
CheckLValue 绑定变量: alive_count, sym->kind: 0, sym->var_def_ctx: 0x5627859ff6e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found target in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = target, sym->kind = 2
CheckLValue 绑定变量: target, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found target in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = target, sym->kind = 2
CheckLValue 绑定变量: target, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 2 维, dims: 0 500 
dim_count: 2, subscript_count: 2
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 函数 step has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: read_map()
[DEBUG] visitUnaryExp: read_map()
[DEBUG] 函数调用: read_map
[DEBUG] CheckFuncCall: read_map
SymbolTable::lookup: found read_map in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: steps
[DEBUG] visitPrimaryExp: steps
SymbolTable::lookup: found steps in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = steps, sym->kind = 0
绑定变量: steps -> VarDefContext
CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x5627859c1f70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: active
[DEBUG] visitPrimaryExp: active
SymbolTable::lookup: found active in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = active, sym->kind = 0
绑定变量: active -> VarDefContext
CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x5627859ba7e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: step(sheet1,sheet2)
[DEBUG] visitUnaryExp: step(sheet1,sheet2)
[DEBUG] 函数调用: step
[DEBUG] CheckFuncCall: step
SymbolTable::lookup: found step in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: sheet1
[DEBUG] visitUnaryExp: sheet1
[DEBUG] visitPrimaryExp: sheet1
SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sheet1, sym->kind = 0
绑定变量: sheet1 -> VarDefContext
CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: sheet2
[DEBUG] visitUnaryExp: sheet2
[DEBUG] visitPrimaryExp: sheet2
SymbolTable::lookup: found sheet2 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sheet2, sym->kind = 0
绑定变量: sheet2 -> VarDefContext
CheckLValue 绑定变量: sheet2, sym->kind: 0, sym->var_def_ctx: 0x5627859b9170, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found active in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = active, sym->kind = 0
绑定变量: active -> VarDefContext
CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x5627859ba7e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: step(sheet2,sheet1)
[DEBUG] visitUnaryExp: step(sheet2,sheet1)
[DEBUG] 函数调用: step
[DEBUG] CheckFuncCall: step
SymbolTable::lookup: found step in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: sheet2
[DEBUG] visitUnaryExp: sheet2
[DEBUG] visitPrimaryExp: sheet2
SymbolTable::lookup: found sheet2 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sheet2, sym->kind = 0
绑定变量: sheet2 -> VarDefContext
CheckLValue 绑定变量: sheet2, sym->kind: 0, sym->var_def_ctx: 0x5627859b9170, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: sheet1
[DEBUG] visitUnaryExp: sheet1
[DEBUG] visitPrimaryExp: sheet1
SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sheet1, sym->kind = 0
绑定变量: sheet1 -> VarDefContext
CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0
dim_count: 2, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found active in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = active, sym->kind = 0
绑定变量: active -> VarDefContext
CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x5627859ba7e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found steps in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = steps, sym->kind = 0
绑定变量: steps -> VarDefContext
CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x5627859c1f70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: steps-1
[DEBUG] visitUnaryExp: steps
[DEBUG] visitPrimaryExp: steps
SymbolTable::lookup: found steps in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = steps, sym->kind = 0
绑定变量: steps -> VarDefContext
CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x5627859c1f70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: active
[DEBUG] visitPrimaryExp: active
SymbolTable::lookup: found active in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = active, sym->kind = 0
绑定变量: active -> VarDefContext
CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x5627859ba7e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: swap12()
[DEBUG] visitUnaryExp: swap12()
[DEBUG] 函数调用: swap12
[DEBUG] CheckFuncCall: swap12
SymbolTable::lookup: found swap12 in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: put_map()
[DEBUG] visitUnaryExp: put_map()
[DEBUG] 函数调用: put_map
[DEBUG] CheckFuncCall: put_map
SymbolTable::lookup: found put_map in scope level 1, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: sheet1
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 sheet1
[DEBUG] HandleGlobalVariable: 变量 sheet1 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 250000
[DEBUG] HandleGlobalVariable: 创建全局数组: sheet1
[DEBUG] HandleGlobalVariable: 处理初始化值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 空初始化列表
[DEBUG] HandleGlobalVariable: 获取到初始化值列表, 大小: 0
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: sheet2
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 sheet2
[DEBUG] HandleGlobalVariable: 变量 sheet2 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 250000
[DEBUG] HandleGlobalVariable: 创建全局数组: sheet2
[DEBUG] HandleGlobalVariable: 处理初始化值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 空初始化列表
[DEBUG] HandleGlobalVariable: 获取到初始化值列表, 大小: 0
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: active
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 active
[DEBUG] HandleGlobalVariable: 变量 active 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: active
[DEBUG] HandleGlobalVariable: 处理标量初始化值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10
[DEBUG] EvalExpr: success, result = 0x562785c1ca10
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: width
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 width
[DEBUG] HandleGlobalVariable: 变量 width 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: width
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: height
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 height
[DEBUG] HandleGlobalVariable: 变量 height 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: height
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: steps
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 steps
[DEBUG] HandleGlobalVariable: 变量 steps 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: steps
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: read_map
[DEBUG] visitFuncDef: 创建函数 read_map，返回类型: void，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x562785c1cdc0
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {width=getint();height=getint();steps=getint();getch();inti=1;intj=1;while(j<=height){i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;}}
[DEBUG IRGEN] visitBlockItem: width=getint();
[DEBUG IRGEN] visitStmt: width=getint();
[DEBUG IRGEN] HandleAssignStmt: width=getint();
[DEBUG IRGEN] EvalExpr: getint()
[DEBUG IRGEN] visitAddExp: getint()
[DEBUG IRGEN] visitMulExp: getint()
[DEBUG IRGEN] visitCallExp: 调用函数 getint
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x562785c1d730
[DEBUG] EvalExpr: success, result = 0x562785c1d730
[DEBUG] HandleAssignStmt: assigning to width
[DEBUG] HandleAssignStmt: found in global_map_ for width, ptr = 0x562785c1cab0
[DEBUG] HandleAssignStmt: scalar assignment to width, ptr = 0x562785c1cab0, rhs = 0x562785c1d730
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: height=getint();
[DEBUG IRGEN] visitStmt: height=getint();
[DEBUG IRGEN] HandleAssignStmt: height=getint();
[DEBUG IRGEN] EvalExpr: getint()
[DEBUG IRGEN] visitAddExp: getint()
[DEBUG IRGEN] visitMulExp: getint()
[DEBUG IRGEN] visitCallExp: 调用函数 getint
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x562785c1d7d0
[DEBUG] EvalExpr: success, result = 0x562785c1d7d0
[DEBUG] HandleAssignStmt: assigning to height
[DEBUG] HandleAssignStmt: found in global_map_ for height, ptr = 0x562785c1cb80
[DEBUG] HandleAssignStmt: scalar assignment to height, ptr = 0x562785c1cb80, rhs = 0x562785c1d7d0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: steps=getint();
[DEBUG IRGEN] visitStmt: steps=getint();
[DEBUG IRGEN] HandleAssignStmt: steps=getint();
[DEBUG IRGEN] EvalExpr: getint()
[DEBUG IRGEN] visitAddExp: getint()
[DEBUG IRGEN] visitMulExp: getint()
[DEBUG IRGEN] visitCallExp: 调用函数 getint
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x562785c1d910
[DEBUG] EvalExpr: success, result = 0x562785c1d910
[DEBUG] HandleAssignStmt: assigning to steps
[DEBUG] HandleAssignStmt: found in global_map_ for steps, ptr = 0x562785c1cc90
[DEBUG] HandleAssignStmt: scalar assignment to steps, ptr = 0x562785c1cc90, rhs = 0x562785c1d910
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: getch();
[DEBUG IRGEN] visitStmt: getch();
[DEBUG IRGEN] EvalExpr: getch()
[DEBUG IRGEN] visitAddExp: getch()
[DEBUG IRGEN] visitMulExp: getch()
[DEBUG IRGEN] visitCallExp: 调用函数 getch
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x562785c1dae0
[DEBUG] EvalExpr: success, result = 0x562785c1dae0
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: inti=1;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: i
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 i
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10
[DEBUG] EvalExpr: success, result = 0x562785c1ca10
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intj=1;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: j
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 j
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10
[DEBUG] EvalExpr: success, result = 0x562785c1ca10
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: while(j<=height){i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;}
[DEBUG IRGEN] visitStmt: while(j<=height){i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;}
[DEBUG IRGEN] HandleWhileStmt: while(j<=height){i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;}
[DEBUG WHILE] Current insert block before while: entry
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 1
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: j
[DEBUG IRGEN] visitMulExp: j
[DEBUG IRGEN] visitPrimaryExp: j
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: j
[DEBUG IRGEN] visitAddExp: height
[DEBUG IRGEN] visitMulExp: height
[DEBUG IRGEN] visitPrimaryExp: height
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: height
[DEBUG] visitRelExp: left=0x562785c1df20, type=int, right=0x562785c1e2f0, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;}
[DEBUG IRGEN] visitBlock: {i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;}
[DEBUG IRGEN] visitBlockItem: i=1;
[DEBUG IRGEN] visitStmt: i=1;
[DEBUG IRGEN] HandleAssignStmt: i=1;
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10
[DEBUG] EvalExpr: success, result = 0x562785c1ca10
[DEBUG] HandleAssignStmt: assigning to i
[DEBUG] HandleAssignStmt: found in storage_map_ for i, ptr = 0x562785c1dba0
[DEBUG] HandleAssignStmt: scalar assignment to i, ptr = 0x562785c1dba0, rhs = 0x562785c1ca10
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: while.body
[DEBUG IRGEN] visitBlockItem: while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}
[DEBUG IRGEN] visitStmt: while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}
[DEBUG IRGEN] HandleWhileStmt: while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}
[DEBUG WHILE] Current insert block before while: while.body
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 2
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: width
[DEBUG IRGEN] visitMulExp: width
[DEBUG IRGEN] visitPrimaryExp: width
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: width
[DEBUG] visitRelExp: left=0x562785c1e900, type=int, right=0x562785c1e980, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}
[DEBUG IRGEN] visitBlock: {intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}
[DEBUG IRGEN] visitBlockItem: intget=getch();
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: get
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 get
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: getch()
[DEBUG IRGEN] visitAddExp: getch()
[DEBUG IRGEN] visitMulExp: getch()
[DEBUG IRGEN] visitCallExp: 调用函数 getch
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x562785c1ed00
[DEBUG] EvalExpr: success, result = 0x562785c1ed00
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: while.body
[DEBUG IRGEN] visitBlockItem: if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}
[DEBUG IRGEN] visitStmt: if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}
[DEBUG IRGEN] HandleIfStmt: if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}
[DEBUG IF] thenBlock: then
[DEBUG IF] elseBlock: else
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: while.body
[DEBUG IRGEN] visitAddExp: get
[DEBUG IRGEN] visitMulExp: get
[DEBUG IRGEN] visitPrimaryExp: get
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: get
[DEBUG IRGEN] visitAddExp: 35
[DEBUG IRGEN] visitMulExp: 35
[DEBUG IRGEN] visitPrimaryExp: 35
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 35 created as 0x562785c1d570
[DEBUG] visitEqExp: left=0x562785c1f160, type=int, right=0x562785c1d570, type=int
[DEBUG IF] Creating condbr: %t15 -> then, else
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {sheet1[j][i]=1;}
[DEBUG IRGEN] visitBlock: {sheet1[j][i]=1;}
[DEBUG IRGEN] visitBlockItem: sheet1[j][i]=1;
[DEBUG IRGEN] visitStmt: sheet1[j][i]=1;
[DEBUG IRGEN] HandleAssignStmt: sheet1[j][i]=1;
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10
[DEBUG] EvalExpr: success, result = 0x562785c1ca10
[DEBUG] HandleAssignStmt: assigning to sheet1
[DEBUG] HandleAssignStmt: found in global_map_ for sheet1, ptr = 0x562785a34330
[DEBUG IRGEN] EvalExpr: j
[DEBUG IRGEN] visitAddExp: j
[DEBUG IRGEN] visitMulExp: j
[DEBUG IRGEN] visitPrimaryExp: j
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: j
[DEBUG] EvalExpr: success, result = 0x562785c1f420
[DEBUG IRGEN] EvalExpr: i
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG] EvalExpr: success, result = 0x562785c1f570
[error] [ir] StoreInst 当前只支持写入 i32*

========== test/test_case/performance/if-combine3.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored func with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] 进入函数: func 返回类型: int
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
[DEBUG] CheckVarDef: sum base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: sum type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 200
[DEBUG] visitUnaryExp: 200
[DEBUG] visitPrimaryExp: 200
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: s base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 100
[DEBUG] visitPrimaryExp: 100
[DEBUG]   dim[0] = 100
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 100 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored s with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: s type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: m base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored m with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: m type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55a4da00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 100
[DEBUG] visitPrimaryExp: 100
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: m
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55a4da00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55a4da00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: m+1
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55a4da00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x560d55a47c00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
完全索引，返回元素类型
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
完全索引，返回元素类型
[DEBUG] CheckExp: 2
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
完全索引，返回元素类型
[DEBUG] CheckExp: 3
[DEBUG] visitUnaryExp: 3
[DEBUG] visitPrimaryExp: 3
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 4
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
完全索引，返回元素类型
[DEBUG] CheckExp: 4
[DEBUG] visitUnaryExp: 4
[DEBUG] visitPrimaryExp: 4
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 5
[DEBUG] visitPrimaryExp: 5
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 5
[DEBUG] visitUnaryExp: 5
[DEBUG] visitPrimaryExp: 5
完全索引，返回元素类型
[DEBUG] CheckExp: 5
[DEBUG] visitUnaryExp: 5
[DEBUG] visitPrimaryExp: 5
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 6
[DEBUG] visitPrimaryExp: 6
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 6
[DEBUG] visitUnaryExp: 6
[DEBUG] visitPrimaryExp: 6
完全索引，返回元素类型
[DEBUG] CheckExp: 6
[DEBUG] visitUnaryExp: 6
[DEBUG] visitPrimaryExp: 6
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 7
[DEBUG] visitPrimaryExp: 7
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 7
[DEBUG] visitUnaryExp: 7
[DEBUG] visitPrimaryExp: 7
完全索引，返回元素类型
[DEBUG] CheckExp: 7
[DEBUG] visitUnaryExp: 7
[DEBUG] visitPrimaryExp: 7
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 8
[DEBUG] visitPrimaryExp: 8
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 8
[DEBUG] visitUnaryExp: 8
[DEBUG] visitPrimaryExp: 8
完全索引，返回元素类型
[DEBUG] CheckExp: 8
[DEBUG] visitUnaryExp: 8
[DEBUG] visitPrimaryExp: 8
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 9
[DEBUG] visitPrimaryExp: 9
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 9
[DEBUG] visitUnaryExp: 9
[DEBUG] visitPrimaryExp: 9
完全索引，返回元素类型
[DEBUG] CheckExp: 9
[DEBUG] visitUnaryExp: 9
[DEBUG] visitPrimaryExp: 9
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
完全索引，返回元素类型
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 11
[DEBUG] visitPrimaryExp: 11
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 11
[DEBUG] visitUnaryExp: 11
[DEBUG] visitPrimaryExp: 11
完全索引，返回元素类型
[DEBUG] CheckExp: 11
[DEBUG] visitUnaryExp: 11
[DEBUG] visitPrimaryExp: 11
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 12
[DEBUG] visitPrimaryExp: 12
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 12
[DEBUG] visitUnaryExp: 12
[DEBUG] visitPrimaryExp: 12
完全索引，返回元素类型
[DEBUG] CheckExp: 12
[DEBUG] visitUnaryExp: 12
[DEBUG] visitPrimaryExp: 12
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 13
[DEBUG] visitPrimaryExp: 13
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 13
[DEBUG] visitUnaryExp: 13
[DEBUG] visitPrimaryExp: 13
完全索引，返回元素类型
[DEBUG] CheckExp: 13
[DEBUG] visitUnaryExp: 13
[DEBUG] visitPrimaryExp: 13
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 14
[DEBUG] visitPrimaryExp: 14
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 14
[DEBUG] visitUnaryExp: 14
[DEBUG] visitPrimaryExp: 14
完全索引，返回元素类型
[DEBUG] CheckExp: 14
[DEBUG] visitUnaryExp: 14
[DEBUG] visitPrimaryExp: 14
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 15
[DEBUG] visitPrimaryExp: 15
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 15
[DEBUG] visitUnaryExp: 15
[DEBUG] visitPrimaryExp: 15
完全索引，返回元素类型
[DEBUG] CheckExp: 15
[DEBUG] visitUnaryExp: 15
[DEBUG] visitPrimaryExp: 15
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 16
[DEBUG] visitPrimaryExp: 16
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 16
[DEBUG] visitUnaryExp: 16
[DEBUG] visitPrimaryExp: 16
完全索引，返回元素类型
[DEBUG] CheckExp: 16
[DEBUG] visitUnaryExp: 16
[DEBUG] visitPrimaryExp: 16
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 17
[DEBUG] visitPrimaryExp: 17
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 17
[DEBUG] visitUnaryExp: 17
[DEBUG] visitPrimaryExp: 17
完全索引，返回元素类型
[DEBUG] CheckExp: 17
[DEBUG] visitUnaryExp: 17
[DEBUG] visitPrimaryExp: 17
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 18
[DEBUG] visitPrimaryExp: 18
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 18
[DEBUG] visitUnaryExp: 18
[DEBUG] visitPrimaryExp: 18
完全索引，返回元素类型
[DEBUG] CheckExp: 18
[DEBUG] visitUnaryExp: 18
[DEBUG] visitPrimaryExp: 18
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 19
[DEBUG] visitPrimaryExp: 19
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 19
[DEBUG] visitUnaryExp: 19
[DEBUG] visitPrimaryExp: 19
完全索引，返回元素类型
[DEBUG] CheckExp: 19
[DEBUG] visitUnaryExp: 19
[DEBUG] visitPrimaryExp: 19
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 20
[DEBUG] visitPrimaryExp: 20
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 20
[DEBUG] visitUnaryExp: 20
[DEBUG] visitPrimaryExp: 20
完全索引，返回元素类型
[DEBUG] CheckExp: 20
[DEBUG] visitUnaryExp: 20
[DEBUG] visitPrimaryExp: 20
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 21
[DEBUG] visitPrimaryExp: 21
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 21
[DEBUG] visitUnaryExp: 21
[DEBUG] visitPrimaryExp: 21
完全索引，返回元素类型
[DEBUG] CheckExp: 21
[DEBUG] visitUnaryExp: 21
[DEBUG] visitPrimaryExp: 21
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 22
[DEBUG] visitPrimaryExp: 22
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 22
[DEBUG] visitUnaryExp: 22
[DEBUG] visitPrimaryExp: 22
完全索引，返回元素类型
[DEBUG] CheckExp: 22
[DEBUG] visitUnaryExp: 22
[DEBUG] visitPrimaryExp: 22
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 23
[DEBUG] visitPrimaryExp: 23
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 23
[DEBUG] visitUnaryExp: 23
[DEBUG] visitPrimaryExp: 23
完全索引，返回元素类型
[DEBUG] CheckExp: 23
[DEBUG] visitUnaryExp: 23
[DEBUG] visitPrimaryExp: 23
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 24
[DEBUG] visitPrimaryExp: 24
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 24
[DEBUG] visitUnaryExp: 24
[DEBUG] visitPrimaryExp: 24
完全索引，返回元素类型
[DEBUG] CheckExp: 24
[DEBUG] visitUnaryExp: 24
[DEBUG] visitPrimaryExp: 24
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 25
[DEBUG] visitPrimaryExp: 25
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 25
[DEBUG] visitUnaryExp: 25
[DEBUG] visitPrimaryExp: 25
完全索引，返回元素类型
[DEBUG] CheckExp: 25
[DEBUG] visitUnaryExp: 25
[DEBUG] visitPrimaryExp: 25
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 26
[DEBUG] visitPrimaryExp: 26
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 26
[DEBUG] visitUnaryExp: 26
[DEBUG] visitPrimaryExp: 26
完全索引，返回元素类型
[DEBUG] CheckExp: 26
[DEBUG] visitUnaryExp: 26
[DEBUG] visitPrimaryExp: 26
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 27
[DEBUG] visitPrimaryExp: 27
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 27
[DEBUG] visitUnaryExp: 27
[DEBUG] visitPrimaryExp: 27
完全索引，返回元素类型
[DEBUG] CheckExp: 27
[DEBUG] visitUnaryExp: 27
[DEBUG] visitPrimaryExp: 27
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 28
[DEBUG] visitPrimaryExp: 28
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 28
[DEBUG] visitUnaryExp: 28
[DEBUG] visitPrimaryExp: 28
完全索引，返回元素类型
[DEBUG] CheckExp: 28
[DEBUG] visitUnaryExp: 28
[DEBUG] visitPrimaryExp: 28
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 29
[DEBUG] visitPrimaryExp: 29
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 29
[DEBUG] visitUnaryExp: 29
[DEBUG] visitPrimaryExp: 29
完全索引，返回元素类型
[DEBUG] CheckExp: 29
[DEBUG] visitUnaryExp: 29
[DEBUG] visitPrimaryExp: 29
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 30
[DEBUG] visitPrimaryExp: 30
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 30
[DEBUG] visitUnaryExp: 30
[DEBUG] visitPrimaryExp: 30
完全索引，返回元素类型
[DEBUG] CheckExp: 30
[DEBUG] visitUnaryExp: 30
[DEBUG] visitPrimaryExp: 30
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 31
[DEBUG] visitPrimaryExp: 31
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 31
[DEBUG] visitUnaryExp: 31
[DEBUG] visitPrimaryExp: 31
完全索引，返回元素类型
[DEBUG] CheckExp: 31
[DEBUG] visitUnaryExp: 31
[DEBUG] visitPrimaryExp: 31
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 32
[DEBUG] visitPrimaryExp: 32
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 32
[DEBUG] visitUnaryExp: 32
[DEBUG] visitPrimaryExp: 32
完全索引，返回元素类型
[DEBUG] CheckExp: 32
[DEBUG] visitUnaryExp: 32
[DEBUG] visitPrimaryExp: 32
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 33
[DEBUG] visitPrimaryExp: 33
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 33
[DEBUG] visitUnaryExp: 33
[DEBUG] visitPrimaryExp: 33
完全索引，返回元素类型
[DEBUG] CheckExp: 33
[DEBUG] visitUnaryExp: 33
[DEBUG] visitPrimaryExp: 33
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 34
[DEBUG] visitPrimaryExp: 34
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 34
[DEBUG] visitUnaryExp: 34
[DEBUG] visitPrimaryExp: 34
完全索引，返回元素类型
[DEBUG] CheckExp: 34
[DEBUG] visitUnaryExp: 34
[DEBUG] visitPrimaryExp: 34
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 35
[DEBUG] visitPrimaryExp: 35
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 35
[DEBUG] visitUnaryExp: 35
[DEBUG] visitPrimaryExp: 35
完全索引，返回元素类型
[DEBUG] CheckExp: 35
[DEBUG] visitUnaryExp: 35
[DEBUG] visitPrimaryExp: 35
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 36
[DEBUG] visitPrimaryExp: 36
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 36
[DEBUG] visitUnaryExp: 36
[DEBUG] visitPrimaryExp: 36
完全索引，返回元素类型
[DEBUG] CheckExp: 36
[DEBUG] visitUnaryExp: 36
[DEBUG] visitPrimaryExp: 36
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 37
[DEBUG] visitPrimaryExp: 37
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 37
[DEBUG] visitUnaryExp: 37
[DEBUG] visitPrimaryExp: 37
完全索引，返回元素类型
[DEBUG] CheckExp: 37
[DEBUG] visitUnaryExp: 37
[DEBUG] visitPrimaryExp: 37
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 38
[DEBUG] visitPrimaryExp: 38
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 38
[DEBUG] visitUnaryExp: 38
[DEBUG] visitPrimaryExp: 38
完全索引，返回元素类型
[DEBUG] CheckExp: 38
[DEBUG] visitUnaryExp: 38
[DEBUG] visitPrimaryExp: 38
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 39
[DEBUG] visitPrimaryExp: 39
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 39
[DEBUG] visitUnaryExp: 39
[DEBUG] visitPrimaryExp: 39
完全索引，返回元素类型
[DEBUG] CheckExp: 39
[DEBUG] visitUnaryExp: 39
[DEBUG] visitPrimaryExp: 39
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 40
[DEBUG] visitPrimaryExp: 40
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 40
[DEBUG] visitUnaryExp: 40
[DEBUG] visitPrimaryExp: 40
完全索引，返回元素类型
[DEBUG] CheckExp: 40
[DEBUG] visitUnaryExp: 40
[DEBUG] visitPrimaryExp: 40
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 41
[DEBUG] visitPrimaryExp: 41
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 41
[DEBUG] visitUnaryExp: 41
[DEBUG] visitPrimaryExp: 41
完全索引，返回元素类型
[DEBUG] CheckExp: 41
[DEBUG] visitUnaryExp: 41
[DEBUG] visitPrimaryExp: 41
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 42
[DEBUG] visitPrimaryExp: 42
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 42
[DEBUG] visitUnaryExp: 42
[DEBUG] visitPrimaryExp: 42
完全索引，返回元素类型
[DEBUG] CheckExp: 42
[DEBUG] visitUnaryExp: 42
[DEBUG] visitPrimaryExp: 42
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 43
[DEBUG] visitPrimaryExp: 43
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 43
[DEBUG] visitUnaryExp: 43
[DEBUG] visitPrimaryExp: 43
完全索引，返回元素类型
[DEBUG] CheckExp: 43
[DEBUG] visitUnaryExp: 43
[DEBUG] visitPrimaryExp: 43
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 44
[DEBUG] visitPrimaryExp: 44
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 44
[DEBUG] visitUnaryExp: 44
[DEBUG] visitPrimaryExp: 44
完全索引，返回元素类型
[DEBUG] CheckExp: 44
[DEBUG] visitUnaryExp: 44
[DEBUG] visitPrimaryExp: 44
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 45
[DEBUG] visitPrimaryExp: 45
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 45
[DEBUG] visitUnaryExp: 45
[DEBUG] visitPrimaryExp: 45
完全索引，返回元素类型
[DEBUG] CheckExp: 45
[DEBUG] visitUnaryExp: 45
[DEBUG] visitPrimaryExp: 45
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 46
[DEBUG] visitPrimaryExp: 46
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 46
[DEBUG] visitUnaryExp: 46
[DEBUG] visitPrimaryExp: 46
完全索引，返回元素类型
[DEBUG] CheckExp: 46
[DEBUG] visitUnaryExp: 46
[DEBUG] visitPrimaryExp: 46
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 47
[DEBUG] visitPrimaryExp: 47
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 47
[DEBUG] visitUnaryExp: 47
[DEBUG] visitPrimaryExp: 47
完全索引，返回元素类型
[DEBUG] CheckExp: 47
[DEBUG] visitUnaryExp: 47
[DEBUG] visitPrimaryExp: 47
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 48
[DEBUG] visitPrimaryExp: 48
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 48
[DEBUG] visitUnaryExp: 48
[DEBUG] visitPrimaryExp: 48
完全索引，返回元素类型
[DEBUG] CheckExp: 48
[DEBUG] visitUnaryExp: 48
[DEBUG] visitPrimaryExp: 48
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 49
[DEBUG] visitPrimaryExp: 49
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 49
[DEBUG] visitUnaryExp: 49
[DEBUG] visitPrimaryExp: 49
完全索引，返回元素类型
[DEBUG] CheckExp: 49
[DEBUG] visitUnaryExp: 49
[DEBUG] visitPrimaryExp: 49
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 50
[DEBUG] visitPrimaryExp: 50
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 50
[DEBUG] visitUnaryExp: 50
[DEBUG] visitPrimaryExp: 50
完全索引，返回元素类型
[DEBUG] CheckExp: 50
[DEBUG] visitUnaryExp: 50
[DEBUG] visitPrimaryExp: 50
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 51
[DEBUG] visitPrimaryExp: 51
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 51
[DEBUG] visitUnaryExp: 51
[DEBUG] visitPrimaryExp: 51
完全索引，返回元素类型
[DEBUG] CheckExp: 51
[DEBUG] visitUnaryExp: 51
[DEBUG] visitPrimaryExp: 51
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 52
[DEBUG] visitPrimaryExp: 52
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 52
[DEBUG] visitUnaryExp: 52
[DEBUG] visitPrimaryExp: 52
完全索引，返回元素类型
[DEBUG] CheckExp: 52
[DEBUG] visitUnaryExp: 52
[DEBUG] visitPrimaryExp: 52
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 53
[DEBUG] visitPrimaryExp: 53
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 53
[DEBUG] visitUnaryExp: 53
[DEBUG] visitPrimaryExp: 53
完全索引，返回元素类型
[DEBUG] CheckExp: 53
[DEBUG] visitUnaryExp: 53
[DEBUG] visitPrimaryExp: 53
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 54
[DEBUG] visitPrimaryExp: 54
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 54
[DEBUG] visitUnaryExp: 54
[DEBUG] visitPrimaryExp: 54
完全索引，返回元素类型
[DEBUG] CheckExp: 54
[DEBUG] visitUnaryExp: 54
[DEBUG] visitPrimaryExp: 54
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 55
[DEBUG] visitPrimaryExp: 55
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 55
[DEBUG] visitUnaryExp: 55
[DEBUG] visitPrimaryExp: 55
完全索引，返回元素类型
[DEBUG] CheckExp: 55
[DEBUG] visitUnaryExp: 55
[DEBUG] visitPrimaryExp: 55
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 56
[DEBUG] visitPrimaryExp: 56
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 56
[DEBUG] visitUnaryExp: 56
[DEBUG] visitPrimaryExp: 56
完全索引，返回元素类型
[DEBUG] CheckExp: 56
[DEBUG] visitUnaryExp: 56
[DEBUG] visitPrimaryExp: 56
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 57
[DEBUG] visitPrimaryExp: 57
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 57
[DEBUG] visitUnaryExp: 57
[DEBUG] visitPrimaryExp: 57
完全索引，返回元素类型
[DEBUG] CheckExp: 57
[DEBUG] visitUnaryExp: 57
[DEBUG] visitPrimaryExp: 57
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 58
[DEBUG] visitPrimaryExp: 58
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 58
[DEBUG] visitUnaryExp: 58
[DEBUG] visitPrimaryExp: 58
完全索引，返回元素类型
[DEBUG] CheckExp: 58
[DEBUG] visitUnaryExp: 58
[DEBUG] visitPrimaryExp: 58
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 59
[DEBUG] visitPrimaryExp: 59
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 59
[DEBUG] visitUnaryExp: 59
[DEBUG] visitPrimaryExp: 59
完全索引，返回元素类型
[DEBUG] CheckExp: 59
[DEBUG] visitUnaryExp: 59
[DEBUG] visitPrimaryExp: 59
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 60
[DEBUG] visitPrimaryExp: 60
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 60
[DEBUG] visitUnaryExp: 60
[DEBUG] visitPrimaryExp: 60
完全索引，返回元素类型
[DEBUG] CheckExp: 60
[DEBUG] visitUnaryExp: 60
[DEBUG] visitPrimaryExp: 60
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 61
[DEBUG] visitPrimaryExp: 61
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 61
[DEBUG] visitUnaryExp: 61
[DEBUG] visitPrimaryExp: 61
完全索引，返回元素类型
[DEBUG] CheckExp: 61
[DEBUG] visitUnaryExp: 61
[DEBUG] visitPrimaryExp: 61
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 62
[DEBUG] visitPrimaryExp: 62
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 62
[DEBUG] visitUnaryExp: 62
[DEBUG] visitPrimaryExp: 62
完全索引，返回元素类型
[DEBUG] CheckExp: 62
[DEBUG] visitUnaryExp: 62
[DEBUG] visitPrimaryExp: 62
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 63
[DEBUG] visitPrimaryExp: 63
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 63
[DEBUG] visitUnaryExp: 63
[DEBUG] visitPrimaryExp: 63
完全索引，返回元素类型
[DEBUG] CheckExp: 63
[DEBUG] visitUnaryExp: 63
[DEBUG] visitPrimaryExp: 63
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 64
[DEBUG] visitPrimaryExp: 64
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 64
[DEBUG] visitUnaryExp: 64
[DEBUG] visitPrimaryExp: 64
完全索引，返回元素类型
[DEBUG] CheckExp: 64
[DEBUG] visitUnaryExp: 64
[DEBUG] visitPrimaryExp: 64
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 65
[DEBUG] visitPrimaryExp: 65
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 65
[DEBUG] visitUnaryExp: 65
[DEBUG] visitPrimaryExp: 65
完全索引，返回元素类型
[DEBUG] CheckExp: 65
[DEBUG] visitUnaryExp: 65
[DEBUG] visitPrimaryExp: 65
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 66
[DEBUG] visitPrimaryExp: 66
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 66
[DEBUG] visitUnaryExp: 66
[DEBUG] visitPrimaryExp: 66
完全索引，返回元素类型
[DEBUG] CheckExp: 66
[DEBUG] visitUnaryExp: 66
[DEBUG] visitPrimaryExp: 66
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 67
[DEBUG] visitPrimaryExp: 67
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 67
[DEBUG] visitUnaryExp: 67
[DEBUG] visitPrimaryExp: 67
完全索引，返回元素类型
[DEBUG] CheckExp: 67
[DEBUG] visitUnaryExp: 67
[DEBUG] visitPrimaryExp: 67
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 68
[DEBUG] visitPrimaryExp: 68
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 68
[DEBUG] visitUnaryExp: 68
[DEBUG] visitPrimaryExp: 68
完全索引，返回元素类型
[DEBUG] CheckExp: 68
[DEBUG] visitUnaryExp: 68
[DEBUG] visitPrimaryExp: 68
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 69
[DEBUG] visitPrimaryExp: 69
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 69
[DEBUG] visitUnaryExp: 69
[DEBUG] visitPrimaryExp: 69
完全索引，返回元素类型
[DEBUG] CheckExp: 69
[DEBUG] visitUnaryExp: 69
[DEBUG] visitPrimaryExp: 69
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 70
[DEBUG] visitPrimaryExp: 70
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 70
[DEBUG] visitUnaryExp: 70
[DEBUG] visitPrimaryExp: 70
完全索引，返回元素类型
[DEBUG] CheckExp: 70
[DEBUG] visitUnaryExp: 70
[DEBUG] visitPrimaryExp: 70
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 71
[DEBUG] visitPrimaryExp: 71
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 71
[DEBUG] visitUnaryExp: 71
[DEBUG] visitPrimaryExp: 71
完全索引，返回元素类型
[DEBUG] CheckExp: 71
[DEBUG] visitUnaryExp: 71
[DEBUG] visitPrimaryExp: 71
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 72
[DEBUG] visitPrimaryExp: 72
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 72
[DEBUG] visitUnaryExp: 72
[DEBUG] visitPrimaryExp: 72
完全索引，返回元素类型
[DEBUG] CheckExp: 72
[DEBUG] visitUnaryExp: 72
[DEBUG] visitPrimaryExp: 72
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 73
[DEBUG] visitPrimaryExp: 73
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 73
[DEBUG] visitUnaryExp: 73
[DEBUG] visitPrimaryExp: 73
完全索引，返回元素类型
[DEBUG] CheckExp: 73
[DEBUG] visitUnaryExp: 73
[DEBUG] visitPrimaryExp: 73
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 74
[DEBUG] visitPrimaryExp: 74
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 74
[DEBUG] visitUnaryExp: 74
[DEBUG] visitPrimaryExp: 74
完全索引，返回元素类型
[DEBUG] CheckExp: 74
[DEBUG] visitUnaryExp: 74
[DEBUG] visitPrimaryExp: 74
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 75
[DEBUG] visitPrimaryExp: 75
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 75
[DEBUG] visitUnaryExp: 75
[DEBUG] visitPrimaryExp: 75
完全索引，返回元素类型
[DEBUG] CheckExp: 75
[DEBUG] visitUnaryExp: 75
[DEBUG] visitPrimaryExp: 75
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 76
[DEBUG] visitPrimaryExp: 76
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 76
[DEBUG] visitUnaryExp: 76
[DEBUG] visitPrimaryExp: 76
完全索引，返回元素类型
[DEBUG] CheckExp: 76
[DEBUG] visitUnaryExp: 76
[DEBUG] visitPrimaryExp: 76
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 77
[DEBUG] visitPrimaryExp: 77
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 77
[DEBUG] visitUnaryExp: 77
[DEBUG] visitPrimaryExp: 77
完全索引，返回元素类型
[DEBUG] CheckExp: 77
[DEBUG] visitUnaryExp: 77
[DEBUG] visitPrimaryExp: 77
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 78
[DEBUG] visitPrimaryExp: 78
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 78
[DEBUG] visitUnaryExp: 78
[DEBUG] visitPrimaryExp: 78
完全索引，返回元素类型
[DEBUG] CheckExp: 78
[DEBUG] visitUnaryExp: 78
[DEBUG] visitPrimaryExp: 78
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 79
[DEBUG] visitPrimaryExp: 79
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 79
[DEBUG] visitUnaryExp: 79
[DEBUG] visitPrimaryExp: 79
完全索引，返回元素类型
[DEBUG] CheckExp: 79
[DEBUG] visitUnaryExp: 79
[DEBUG] visitPrimaryExp: 79
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 80
[DEBUG] visitPrimaryExp: 80
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 80
[DEBUG] visitUnaryExp: 80
[DEBUG] visitPrimaryExp: 80
完全索引，返回元素类型
[DEBUG] CheckExp: 80
[DEBUG] visitUnaryExp: 80
[DEBUG] visitPrimaryExp: 80
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 81
[DEBUG] visitPrimaryExp: 81
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 81
[DEBUG] visitUnaryExp: 81
[DEBUG] visitPrimaryExp: 81
完全索引，返回元素类型
[DEBUG] CheckExp: 81
[DEBUG] visitUnaryExp: 81
[DEBUG] visitPrimaryExp: 81
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 82
[DEBUG] visitPrimaryExp: 82
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 82
[DEBUG] visitUnaryExp: 82
[DEBUG] visitPrimaryExp: 82
完全索引，返回元素类型
[DEBUG] CheckExp: 82
[DEBUG] visitUnaryExp: 82
[DEBUG] visitPrimaryExp: 82
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 83
[DEBUG] visitPrimaryExp: 83
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 83
[DEBUG] visitUnaryExp: 83
[DEBUG] visitPrimaryExp: 83
完全索引，返回元素类型
[DEBUG] CheckExp: 83
[DEBUG] visitUnaryExp: 83
[DEBUG] visitPrimaryExp: 83
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 84
[DEBUG] visitPrimaryExp: 84
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 84
[DEBUG] visitUnaryExp: 84
[DEBUG] visitPrimaryExp: 84
完全索引，返回元素类型
[DEBUG] CheckExp: 84
[DEBUG] visitUnaryExp: 84
[DEBUG] visitPrimaryExp: 84
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 85
[DEBUG] visitPrimaryExp: 85
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 85
[DEBUG] visitUnaryExp: 85
[DEBUG] visitPrimaryExp: 85
完全索引，返回元素类型
[DEBUG] CheckExp: 85
[DEBUG] visitUnaryExp: 85
[DEBUG] visitPrimaryExp: 85
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 86
[DEBUG] visitPrimaryExp: 86
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 86
[DEBUG] visitUnaryExp: 86
[DEBUG] visitPrimaryExp: 86
完全索引，返回元素类型
[DEBUG] CheckExp: 86
[DEBUG] visitUnaryExp: 86
[DEBUG] visitPrimaryExp: 86
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 87
[DEBUG] visitPrimaryExp: 87
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 87
[DEBUG] visitUnaryExp: 87
[DEBUG] visitPrimaryExp: 87
完全索引，返回元素类型
[DEBUG] CheckExp: 87
[DEBUG] visitUnaryExp: 87
[DEBUG] visitPrimaryExp: 87
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 88
[DEBUG] visitPrimaryExp: 88
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 88
[DEBUG] visitUnaryExp: 88
[DEBUG] visitPrimaryExp: 88
完全索引，返回元素类型
[DEBUG] CheckExp: 88
[DEBUG] visitUnaryExp: 88
[DEBUG] visitPrimaryExp: 88
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 89
[DEBUG] visitPrimaryExp: 89
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 89
[DEBUG] visitUnaryExp: 89
[DEBUG] visitPrimaryExp: 89
完全索引，返回元素类型
[DEBUG] CheckExp: 89
[DEBUG] visitUnaryExp: 89
[DEBUG] visitPrimaryExp: 89
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 90
[DEBUG] visitPrimaryExp: 90
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 90
[DEBUG] visitUnaryExp: 90
[DEBUG] visitPrimaryExp: 90
完全索引，返回元素类型
[DEBUG] CheckExp: 90
[DEBUG] visitUnaryExp: 90
[DEBUG] visitPrimaryExp: 90
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 91
[DEBUG] visitPrimaryExp: 91
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 91
[DEBUG] visitUnaryExp: 91
[DEBUG] visitPrimaryExp: 91
完全索引，返回元素类型
[DEBUG] CheckExp: 91
[DEBUG] visitUnaryExp: 91
[DEBUG] visitPrimaryExp: 91
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 92
[DEBUG] visitPrimaryExp: 92
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 92
[DEBUG] visitUnaryExp: 92
[DEBUG] visitPrimaryExp: 92
完全索引，返回元素类型
[DEBUG] CheckExp: 92
[DEBUG] visitUnaryExp: 92
[DEBUG] visitPrimaryExp: 92
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 93
[DEBUG] visitPrimaryExp: 93
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 93
[DEBUG] visitUnaryExp: 93
[DEBUG] visitPrimaryExp: 93
完全索引，返回元素类型
[DEBUG] CheckExp: 93
[DEBUG] visitUnaryExp: 93
[DEBUG] visitPrimaryExp: 93
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 94
[DEBUG] visitPrimaryExp: 94
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 94
[DEBUG] visitUnaryExp: 94
[DEBUG] visitPrimaryExp: 94
完全索引，返回元素类型
[DEBUG] CheckExp: 94
[DEBUG] visitUnaryExp: 94
[DEBUG] visitPrimaryExp: 94
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 95
[DEBUG] visitPrimaryExp: 95
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 95
[DEBUG] visitUnaryExp: 95
[DEBUG] visitPrimaryExp: 95
完全索引，返回元素类型
[DEBUG] CheckExp: 95
[DEBUG] visitUnaryExp: 95
[DEBUG] visitPrimaryExp: 95
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 96
[DEBUG] visitPrimaryExp: 96
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 96
[DEBUG] visitUnaryExp: 96
[DEBUG] visitPrimaryExp: 96
完全索引，返回元素类型
[DEBUG] CheckExp: 96
[DEBUG] visitUnaryExp: 96
[DEBUG] visitPrimaryExp: 96
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 97
[DEBUG] visitPrimaryExp: 97
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 97
[DEBUG] visitUnaryExp: 97
[DEBUG] visitPrimaryExp: 97
完全索引，返回元素类型
[DEBUG] CheckExp: 97
[DEBUG] visitUnaryExp: 97
[DEBUG] visitPrimaryExp: 97
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 98
[DEBUG] visitPrimaryExp: 98
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 98
[DEBUG] visitUnaryExp: 98
[DEBUG] visitPrimaryExp: 98
完全索引，返回元素类型
[DEBUG] CheckExp: 98
[DEBUG] visitUnaryExp: 98
[DEBUG] visitPrimaryExp: 98
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 99
[DEBUG] visitPrimaryExp: 99
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: 99
[DEBUG] visitUnaryExp: 99
[DEBUG] visitPrimaryExp: 99
完全索引，返回元素类型
[DEBUG] CheckExp: 99
[DEBUG] visitUnaryExp: 99
[DEBUG] visitPrimaryExp: 99
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x560d55a47c00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x560d55a47c00, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckVarDef: m base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored m with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: m type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55b23510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 100
[DEBUG] visitPrimaryExp: 100
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: sum+s[m]
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: s[m]
[DEBUG] visitPrimaryExp: s[m]
SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = s, sym->kind = 0
绑定变量: s -> VarDefContext
CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: m
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55b23510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found m in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55b23510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: m+1
[DEBUG] visitUnaryExp: m
[DEBUG] visitPrimaryExp: m
SymbolTable::lookup: found m in scope level 4, kind=0, const_def_ctx=0
CheckLValue: found sym->name = m, sym->kind = 0
绑定变量: m -> VarDefContext
CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55b23510, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: sum%65535
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 65535
[DEBUG] visitPrimaryExp: 65535
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: sum
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 func has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: loopcount base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored loopcount with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: loopcount type_kind: 1 is_array: 0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(func(loopcount))
[DEBUG] visitUnaryExp: putint(func(loopcount))
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: func(loopcount)
[DEBUG] visitUnaryExp: func(loopcount)
[DEBUG] 函数调用: func
[DEBUG] CheckFuncCall: func
SymbolTable::lookup: found func in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: loopcount
[DEBUG] visitUnaryExp: loopcount
[DEBUG] visitPrimaryExp: loopcount
SymbolTable::lookup: found loopcount in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = loopcount, sym->kind = 0
绑定变量: loopcount -> VarDefContext
CheckLValue 绑定变量: loopcount, sym->kind: 0, sym->var_def_ctx: 0x560d55b2c140, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG IRGEN] visitFuncDef: func
[DEBUG] visitFuncDef: 创建函数 func，返回类型: int，参数数量: 1
[DEBUG] visitFuncDef: 函数对象地址: 0x560d55b3f320
[DEBUG] visitFuncDef: 为函数 func 添加参数 n，类型: int32
[DEBUG] visitFuncDef: 参数 n 处理完成
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {intsum=0;inti=200;intj=0;ints[100];intm=0;while(m<100){s[m]=0;m=m+1;}while(j<n){if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}j=j+1;intm=0;while(m<100){sum=sum+s[m];m=m+1;}sum=sum%65535;}returnsum;}
[DEBUG IRGEN] visitBlockItem: intsum=0;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: sum
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 sum
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: inti=200;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: i
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 i
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 200
[DEBUG IRGEN] visitAddExp: 200
[DEBUG IRGEN] visitMulExp: 200
[DEBUG IRGEN] visitPrimaryExp: 200
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 200 created as 0x560d55b3b200
[DEBUG] EvalExpr: success, result = 0x560d55b3b200
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intj=0;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: j
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 j
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: ints[100];
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: s
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 s
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intm=0;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: m
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 m
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: while(m<100){s[m]=0;m=m+1;}
[DEBUG IRGEN] visitStmt: while(m<100){s[m]=0;m=m+1;}
[DEBUG IRGEN] HandleWhileStmt: while(m<100){s[m]=0;m=m+1;}
[DEBUG WHILE] Current insert block before while: entry
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 1
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: m
[DEBUG IRGEN] visitMulExp: m
[DEBUG IRGEN] visitPrimaryExp: m
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: m
[DEBUG IRGEN] visitAddExp: 100
[DEBUG IRGEN] visitMulExp: 100
[DEBUG IRGEN] visitPrimaryExp: 100
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 100 created as 0x560d55b651b0
[DEBUG] visitRelExp: left=0x560d55b65130, type=int, right=0x560d55b651b0, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {s[m]=0;m=m+1;}
[DEBUG IRGEN] visitBlock: {s[m]=0;m=m+1;}
[DEBUG IRGEN] visitBlockItem: s[m]=0;
[DEBUG IRGEN] visitStmt: s[m]=0;
[DEBUG IRGEN] HandleAssignStmt: s[m]=0;
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: m
[DEBUG IRGEN] visitAddExp: m
[DEBUG IRGEN] visitMulExp: m
[DEBUG IRGEN] visitPrimaryExp: m
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: m
[DEBUG] EvalExpr: success, result = 0x560d55b65420
[DEBUG] current insert block: while.body
[DEBUG IRGEN] visitBlockItem: m=m+1;
[DEBUG IRGEN] visitStmt: m=m+1;
[DEBUG IRGEN] HandleAssignStmt: m=m+1;
[DEBUG IRGEN] EvalExpr: m+1
[DEBUG IRGEN] visitAddExp: m+1
[DEBUG IRGEN] visitAddExp: m
[DEBUG IRGEN] visitMulExp: m
[DEBUG IRGEN] visitPrimaryExp: m
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: m
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0
[DEBUG] visitAddExp: left=0x560d55b65620, type=int, right=0x560d55b656a0, type=int
[DEBUG] EvalExpr: success, result = 0x560d55b65700
[DEBUG] HandleAssignStmt: assigning to m
[DEBUG] HandleAssignStmt: found in storage_map_ for m, ptr = 0x560d55b64e00
[DEBUG] HandleAssignStmt: scalar assignment to m, ptr = 0x560d55b64e00, rhs = 0x560d55b65700
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: while.body
[DEBUG WHILE] body terminated: 0
[DEBUG WHILE] Adding br to condBlock from body
[DEBUG WHILE] bodyBlock has terminator: 1
[DEBUG WHILE] loopStack size after pop: 0
[DEBUG WHILE] Setting insert point to exitBlock: while.exit
[DEBUG WHILE] exitBlock has terminator before return: 0
[DEBUG] current insert block: while.exit
[DEBUG IRGEN] visitBlockItem: while(j<n){if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}j=j+1;intm=0;while(m<100){sum=sum+s[m];m=m+1;}sum=sum%65535;}
[DEBUG IRGEN] visitStmt: while(j<n){if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}j=j+1;intm=0;while(m<100){sum=sum+s[m];m=m+1;}sum=sum%65535;}
[DEBUG IRGEN] HandleWhileStmt: while(j<n){if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}j=j+1;intm=0;while(m<100){sum=sum+s[m];m=m+1;}sum=sum%65535;}
[DEBUG WHILE] Current insert block before while: while.exit
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 1
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: j
[DEBUG IRGEN] visitMulExp: j
[DEBUG IRGEN] visitPrimaryExp: j
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: j
[DEBUG IRGEN] visitAddExp: n
[DEBUG IRGEN] visitMulExp: n
[DEBUG IRGEN] visitPrimaryExp: n
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: n
[DEBUG] visitRelExp: left=0x560d55b659f0, type=int, right=0x560d55b65e90, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}j=j+1;intm=0;while(m<100){sum=sum+s[m];m=m+1;}sum=sum%65535;}
[DEBUG IRGEN] visitBlock: {if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}j=j+1;intm=0;while(m<100){sum=sum+s[m];m=m+1;}sum=sum%65535;}
[DEBUG IRGEN] visitBlockItem: if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: while.body
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0
[DEBUG] visitRelExp: left=0x560d55b66130, type=int, right=0x560d55b656a0, type=int
[DEBUG IF] Creating condbr: %t115 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[1]=1;
[DEBUG IRGEN] visitStmt: s[1]=1;
[DEBUG IRGEN] HandleAssignStmt: s[1]=1;
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0
[DEBUG] EvalExpr: success, result = 0x560d55b656a0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 1
[DEBUG IRGEN] visitAddExp: 1
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0
[DEBUG] EvalExpr: success, result = 0x560d55b656a0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x560d55b65990
[DEBUG] visitRelExp: left=0x560d55b66a20, type=int, right=0x560d55b65990, type=int
[DEBUG IF] Creating condbr: %t118 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[2]=2;
[DEBUG IRGEN] visitStmt: s[2]=2;
[DEBUG IRGEN] HandleAssignStmt: s[2]=2;
[DEBUG IRGEN] EvalExpr: 2
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x560d55b65990
[DEBUG] EvalExpr: success, result = 0x560d55b65990
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 2
[DEBUG IRGEN] visitAddExp: 2
[DEBUG IRGEN] visitMulExp: 2
[DEBUG IRGEN] visitPrimaryExp: 2
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 2 created as 0x560d55b65990
[DEBUG] EvalExpr: success, result = 0x560d55b65990
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 3
[DEBUG IRGEN] visitMulExp: 3
[DEBUG IRGEN] visitPrimaryExp: 3
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 3 created as 0x560d55b66cb0
[DEBUG] visitRelExp: left=0x560d55b67120, type=int, right=0x560d55b66cb0, type=int
[DEBUG IF] Creating condbr: %t121 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[3]=3;
[DEBUG IRGEN] visitStmt: s[3]=3;
[DEBUG IRGEN] HandleAssignStmt: s[3]=3;
[DEBUG IRGEN] EvalExpr: 3
[DEBUG IRGEN] visitAddExp: 3
[DEBUG IRGEN] visitMulExp: 3
[DEBUG IRGEN] visitPrimaryExp: 3
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 3 created as 0x560d55b66cb0
[DEBUG] EvalExpr: success, result = 0x560d55b66cb0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 3
[DEBUG IRGEN] visitAddExp: 3
[DEBUG IRGEN] visitMulExp: 3
[DEBUG IRGEN] visitPrimaryExp: 3
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 3 created as 0x560d55b66cb0
[DEBUG] EvalExpr: success, result = 0x560d55b66cb0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 4
[DEBUG IRGEN] visitMulExp: 4
[DEBUG IRGEN] visitPrimaryExp: 4
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 4 created as 0x560d55b67400
[DEBUG] visitRelExp: left=0x560d55b67790, type=int, right=0x560d55b67400, type=int
[DEBUG IF] Creating condbr: %t124 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[4]=4;
[DEBUG IRGEN] visitStmt: s[4]=4;
[DEBUG IRGEN] HandleAssignStmt: s[4]=4;
[DEBUG IRGEN] EvalExpr: 4
[DEBUG IRGEN] visitAddExp: 4
[DEBUG IRGEN] visitMulExp: 4
[DEBUG IRGEN] visitPrimaryExp: 4
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 4 created as 0x560d55b67400
[DEBUG] EvalExpr: success, result = 0x560d55b67400
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 4
[DEBUG IRGEN] visitAddExp: 4
[DEBUG IRGEN] visitMulExp: 4
[DEBUG IRGEN] visitPrimaryExp: 4
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 4 created as 0x560d55b67400
[DEBUG] EvalExpr: success, result = 0x560d55b67400
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 5
[DEBUG IRGEN] visitMulExp: 5
[DEBUG IRGEN] visitPrimaryExp: 5
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 5 created as 0x560d55b67b40
[DEBUG] visitRelExp: left=0x560d55b67fa0, type=int, right=0x560d55b67b40, type=int
[DEBUG IF] Creating condbr: %t127 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[5]=5;
[DEBUG IRGEN] visitStmt: s[5]=5;
[DEBUG IRGEN] HandleAssignStmt: s[5]=5;
[DEBUG IRGEN] EvalExpr: 5
[DEBUG IRGEN] visitAddExp: 5
[DEBUG IRGEN] visitMulExp: 5
[DEBUG IRGEN] visitPrimaryExp: 5
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 5 created as 0x560d55b67b40
[DEBUG] EvalExpr: success, result = 0x560d55b67b40
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 5
[DEBUG IRGEN] visitAddExp: 5
[DEBUG IRGEN] visitMulExp: 5
[DEBUG IRGEN] visitPrimaryExp: 5
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 5 created as 0x560d55b67b40
[DEBUG] EvalExpr: success, result = 0x560d55b67b40
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 6
[DEBUG IRGEN] visitMulExp: 6
[DEBUG IRGEN] visitPrimaryExp: 6
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 6 created as 0x560d55b68280
[DEBUG] visitRelExp: left=0x560d55b685f0, type=int, right=0x560d55b68280, type=int
[DEBUG IF] Creating condbr: %t130 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[6]=6;
[DEBUG IRGEN] visitStmt: s[6]=6;
[DEBUG IRGEN] HandleAssignStmt: s[6]=6;
[DEBUG IRGEN] EvalExpr: 6
[DEBUG IRGEN] visitAddExp: 6
[DEBUG IRGEN] visitMulExp: 6
[DEBUG IRGEN] visitPrimaryExp: 6
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 6 created as 0x560d55b68280
[DEBUG] EvalExpr: success, result = 0x560d55b68280
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 6
[DEBUG IRGEN] visitAddExp: 6
[DEBUG IRGEN] visitMulExp: 6
[DEBUG IRGEN] visitPrimaryExp: 6
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 6 created as 0x560d55b68280
[DEBUG] EvalExpr: success, result = 0x560d55b68280
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 7
[DEBUG IRGEN] visitMulExp: 7
[DEBUG IRGEN] visitPrimaryExp: 7
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 7 created as 0x560d55b688d0
[DEBUG] visitRelExp: left=0x560d55b68cd0, type=int, right=0x560d55b688d0, type=int
[DEBUG IF] Creating condbr: %t133 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[7]=7;
[DEBUG IRGEN] visitStmt: s[7]=7;
[DEBUG IRGEN] HandleAssignStmt: s[7]=7;
[DEBUG IRGEN] EvalExpr: 7
[DEBUG IRGEN] visitAddExp: 7
[DEBUG IRGEN] visitMulExp: 7
[DEBUG IRGEN] visitPrimaryExp: 7
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 7 created as 0x560d55b688d0
[DEBUG] EvalExpr: success, result = 0x560d55b688d0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 7
[DEBUG IRGEN] visitAddExp: 7
[DEBUG IRGEN] visitMulExp: 7
[DEBUG IRGEN] visitPrimaryExp: 7
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 7 created as 0x560d55b688d0
[DEBUG] EvalExpr: success, result = 0x560d55b688d0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 8
[DEBUG IRGEN] visitMulExp: 8
[DEBUG IRGEN] visitPrimaryExp: 8
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 8 created as 0x560d55b68fb0
[DEBUG] visitRelExp: left=0x560d55b693b0, type=int, right=0x560d55b68fb0, type=int
[DEBUG IF] Creating condbr: %t136 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[8]=8;
[DEBUG IRGEN] visitStmt: s[8]=8;
[DEBUG IRGEN] HandleAssignStmt: s[8]=8;
[DEBUG IRGEN] EvalExpr: 8
[DEBUG IRGEN] visitAddExp: 8
[DEBUG IRGEN] visitMulExp: 8
[DEBUG IRGEN] visitPrimaryExp: 8
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 8 created as 0x560d55b68fb0
[DEBUG] EvalExpr: success, result = 0x560d55b68fb0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 8
[DEBUG IRGEN] visitAddExp: 8
[DEBUG IRGEN] visitMulExp: 8
[DEBUG IRGEN] visitPrimaryExp: 8
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 8 created as 0x560d55b68fb0
[DEBUG] EvalExpr: success, result = 0x560d55b68fb0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 9
[DEBUG IRGEN] visitMulExp: 9
[DEBUG IRGEN] visitPrimaryExp: 9
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 9 created as 0x560d55b69820
[DEBUG] visitRelExp: left=0x560d55b69db0, type=int, right=0x560d55b69820, type=int
[DEBUG IF] Creating condbr: %t139 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[9]=9;
[DEBUG IRGEN] visitStmt: s[9]=9;
[DEBUG IRGEN] HandleAssignStmt: s[9]=9;
[DEBUG IRGEN] EvalExpr: 9
[DEBUG IRGEN] visitAddExp: 9
[DEBUG IRGEN] visitMulExp: 9
[DEBUG IRGEN] visitPrimaryExp: 9
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 9 created as 0x560d55b69820
[DEBUG] EvalExpr: success, result = 0x560d55b69820
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 9
[DEBUG IRGEN] visitAddExp: 9
[DEBUG IRGEN] visitMulExp: 9
[DEBUG IRGEN] visitPrimaryExp: 9
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 9 created as 0x560d55b69820
[DEBUG] EvalExpr: success, result = 0x560d55b69820
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 10
[DEBUG IRGEN] visitMulExp: 10
[DEBUG IRGEN] visitPrimaryExp: 10
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 10 created as 0x560d55b6a090
[DEBUG] visitRelExp: left=0x560d55b6a490, type=int, right=0x560d55b6a090, type=int
[DEBUG IF] Creating condbr: %t142 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[10]=10;
[DEBUG IRGEN] visitStmt: s[10]=10;
[DEBUG IRGEN] HandleAssignStmt: s[10]=10;
[DEBUG IRGEN] EvalExpr: 10
[DEBUG IRGEN] visitAddExp: 10
[DEBUG IRGEN] visitMulExp: 10
[DEBUG IRGEN] visitPrimaryExp: 10
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 10 created as 0x560d55b6a090
[DEBUG] EvalExpr: success, result = 0x560d55b6a090
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 10
[DEBUG IRGEN] visitAddExp: 10
[DEBUG IRGEN] visitMulExp: 10
[DEBUG IRGEN] visitPrimaryExp: 10
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 10 created as 0x560d55b6a090
[DEBUG] EvalExpr: success, result = 0x560d55b6a090
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 11
[DEBUG IRGEN] visitMulExp: 11
[DEBUG IRGEN] visitPrimaryExp: 11
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 11 created as 0x560d55b6a770
[DEBUG] visitRelExp: left=0x560d55b6ab70, type=int, right=0x560d55b6a770, type=int
[DEBUG IF] Creating condbr: %t145 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[11]=11;
[DEBUG IRGEN] visitStmt: s[11]=11;
[DEBUG IRGEN] HandleAssignStmt: s[11]=11;
[DEBUG IRGEN] EvalExpr: 11
[DEBUG IRGEN] visitAddExp: 11
[DEBUG IRGEN] visitMulExp: 11
[DEBUG IRGEN] visitPrimaryExp: 11
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 11 created as 0x560d55b6a770
[DEBUG] EvalExpr: success, result = 0x560d55b6a770
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 11
[DEBUG IRGEN] visitAddExp: 11
[DEBUG IRGEN] visitMulExp: 11
[DEBUG IRGEN] visitPrimaryExp: 11
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 11 created as 0x560d55b6a770
[DEBUG] EvalExpr: success, result = 0x560d55b6a770
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 12
[DEBUG IRGEN] visitMulExp: 12
[DEBUG IRGEN] visitPrimaryExp: 12
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 12 created as 0x560d55b6ae50
[DEBUG] visitRelExp: left=0x560d55b6b1e0, type=int, right=0x560d55b6ae50, type=int
[DEBUG IF] Creating condbr: %t148 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[12]=12;
[DEBUG IRGEN] visitStmt: s[12]=12;
[DEBUG IRGEN] HandleAssignStmt: s[12]=12;
[DEBUG IRGEN] EvalExpr: 12
[DEBUG IRGEN] visitAddExp: 12
[DEBUG IRGEN] visitMulExp: 12
[DEBUG IRGEN] visitPrimaryExp: 12
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 12 created as 0x560d55b6ae50
[DEBUG] EvalExpr: success, result = 0x560d55b6ae50
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 12
[DEBUG IRGEN] visitAddExp: 12
[DEBUG IRGEN] visitMulExp: 12
[DEBUG IRGEN] visitPrimaryExp: 12
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 12 created as 0x560d55b6ae50
[DEBUG] EvalExpr: success, result = 0x560d55b6ae50
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 13
[DEBUG IRGEN] visitMulExp: 13
[DEBUG IRGEN] visitPrimaryExp: 13
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 13 created as 0x560d55b6b4c0
[DEBUG] visitRelExp: left=0x560d55b6b8c0, type=int, right=0x560d55b6b4c0, type=int
[DEBUG IF] Creating condbr: %t151 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[13]=13;
[DEBUG IRGEN] visitStmt: s[13]=13;
[DEBUG IRGEN] HandleAssignStmt: s[13]=13;
[DEBUG IRGEN] EvalExpr: 13
[DEBUG IRGEN] visitAddExp: 13
[DEBUG IRGEN] visitMulExp: 13
[DEBUG IRGEN] visitPrimaryExp: 13
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 13 created as 0x560d55b6b4c0
[DEBUG] EvalExpr: success, result = 0x560d55b6b4c0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 13
[DEBUG IRGEN] visitAddExp: 13
[DEBUG IRGEN] visitMulExp: 13
[DEBUG IRGEN] visitPrimaryExp: 13
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 13 created as 0x560d55b6b4c0
[DEBUG] EvalExpr: success, result = 0x560d55b6b4c0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 14
[DEBUG IRGEN] visitMulExp: 14
[DEBUG IRGEN] visitPrimaryExp: 14
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 14 created as 0x560d55b6bba0
[DEBUG] visitRelExp: left=0x560d55b6bfa0, type=int, right=0x560d55b6bba0, type=int
[DEBUG IF] Creating condbr: %t154 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[14]=14;
[DEBUG IRGEN] visitStmt: s[14]=14;
[DEBUG IRGEN] HandleAssignStmt: s[14]=14;
[DEBUG IRGEN] EvalExpr: 14
[DEBUG IRGEN] visitAddExp: 14
[DEBUG IRGEN] visitMulExp: 14
[DEBUG IRGEN] visitPrimaryExp: 14
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 14 created as 0x560d55b6bba0
[DEBUG] EvalExpr: success, result = 0x560d55b6bba0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 14
[DEBUG IRGEN] visitAddExp: 14
[DEBUG IRGEN] visitMulExp: 14
[DEBUG IRGEN] visitPrimaryExp: 14
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 14 created as 0x560d55b6bba0
[DEBUG] EvalExpr: success, result = 0x560d55b6bba0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 15
[DEBUG IRGEN] visitMulExp: 15
[DEBUG IRGEN] visitPrimaryExp: 15
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 15 created as 0x560d55b6c280
[DEBUG] visitRelExp: left=0x560d55b6c680, type=int, right=0x560d55b6c280, type=int
[DEBUG IF] Creating condbr: %t157 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[15]=15;
[DEBUG IRGEN] visitStmt: s[15]=15;
[DEBUG IRGEN] HandleAssignStmt: s[15]=15;
[DEBUG IRGEN] EvalExpr: 15
[DEBUG IRGEN] visitAddExp: 15
[DEBUG IRGEN] visitMulExp: 15
[DEBUG IRGEN] visitPrimaryExp: 15
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 15 created as 0x560d55b6c280
[DEBUG] EvalExpr: success, result = 0x560d55b6c280
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 15
[DEBUG IRGEN] visitAddExp: 15
[DEBUG IRGEN] visitMulExp: 15
[DEBUG IRGEN] visitPrimaryExp: 15
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 15 created as 0x560d55b6c280
[DEBUG] EvalExpr: success, result = 0x560d55b6c280
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 16
[DEBUG IRGEN] visitMulExp: 16
[DEBUG IRGEN] visitPrimaryExp: 16
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 16 created as 0x560d55b6c960
[DEBUG] visitRelExp: left=0x560d55b6cd60, type=int, right=0x560d55b6c960, type=int
[DEBUG IF] Creating condbr: %t160 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[16]=16;
[DEBUG IRGEN] visitStmt: s[16]=16;
[DEBUG IRGEN] HandleAssignStmt: s[16]=16;
[DEBUG IRGEN] EvalExpr: 16
[DEBUG IRGEN] visitAddExp: 16
[DEBUG IRGEN] visitMulExp: 16
[DEBUG IRGEN] visitPrimaryExp: 16
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 16 created as 0x560d55b6c960
[DEBUG] EvalExpr: success, result = 0x560d55b6c960
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 16
[DEBUG IRGEN] visitAddExp: 16
[DEBUG IRGEN] visitMulExp: 16
[DEBUG IRGEN] visitPrimaryExp: 16
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 16 created as 0x560d55b6c960
[DEBUG] EvalExpr: success, result = 0x560d55b6c960
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 17
[DEBUG IRGEN] visitMulExp: 17
[DEBUG IRGEN] visitPrimaryExp: 17
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 17 created as 0x560d55b6d350
[DEBUG] visitRelExp: left=0x560d55b6da60, type=int, right=0x560d55b6d350, type=int
[DEBUG IF] Creating condbr: %t163 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[17]=17;
[DEBUG IRGEN] visitStmt: s[17]=17;
[DEBUG IRGEN] HandleAssignStmt: s[17]=17;
[DEBUG IRGEN] EvalExpr: 17
[DEBUG IRGEN] visitAddExp: 17
[DEBUG IRGEN] visitMulExp: 17
[DEBUG IRGEN] visitPrimaryExp: 17
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 17 created as 0x560d55b6d350
[DEBUG] EvalExpr: success, result = 0x560d55b6d350
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 17
[DEBUG IRGEN] visitAddExp: 17
[DEBUG IRGEN] visitMulExp: 17
[DEBUG IRGEN] visitPrimaryExp: 17
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 17 created as 0x560d55b6d350
[DEBUG] EvalExpr: success, result = 0x560d55b6d350
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 18
[DEBUG IRGEN] visitMulExp: 18
[DEBUG IRGEN] visitPrimaryExp: 18
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 18 created as 0x560d55b6dd40
[DEBUG] visitRelExp: left=0x560d55b6e140, type=int, right=0x560d55b6dd40, type=int
[DEBUG IF] Creating condbr: %t166 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[18]=18;
[DEBUG IRGEN] visitStmt: s[18]=18;
[DEBUG IRGEN] HandleAssignStmt: s[18]=18;
[DEBUG IRGEN] EvalExpr: 18
[DEBUG IRGEN] visitAddExp: 18
[DEBUG IRGEN] visitMulExp: 18
[DEBUG IRGEN] visitPrimaryExp: 18
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 18 created as 0x560d55b6dd40
[DEBUG] EvalExpr: success, result = 0x560d55b6dd40
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 18
[DEBUG IRGEN] visitAddExp: 18
[DEBUG IRGEN] visitMulExp: 18
[DEBUG IRGEN] visitPrimaryExp: 18
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 18 created as 0x560d55b6dd40
[DEBUG] EvalExpr: success, result = 0x560d55b6dd40
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 19
[DEBUG IRGEN] visitMulExp: 19
[DEBUG IRGEN] visitPrimaryExp: 19
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 19 created as 0x560d55b6e420
[DEBUG] visitRelExp: left=0x560d55b6e820, type=int, right=0x560d55b6e420, type=int
[DEBUG IF] Creating condbr: %t169 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[19]=19;
[DEBUG IRGEN] visitStmt: s[19]=19;
[DEBUG IRGEN] HandleAssignStmt: s[19]=19;
[DEBUG IRGEN] EvalExpr: 19
[DEBUG IRGEN] visitAddExp: 19
[DEBUG IRGEN] visitMulExp: 19
[DEBUG IRGEN] visitPrimaryExp: 19
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 19 created as 0x560d55b6e420
[DEBUG] EvalExpr: success, result = 0x560d55b6e420
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 19
[DEBUG IRGEN] visitAddExp: 19
[DEBUG IRGEN] visitMulExp: 19
[DEBUG IRGEN] visitPrimaryExp: 19
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 19 created as 0x560d55b6e420
[DEBUG] EvalExpr: success, result = 0x560d55b6e420
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 20
[DEBUG IRGEN] visitMulExp: 20
[DEBUG IRGEN] visitPrimaryExp: 20
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 20 created as 0x560d55b6eb00
[DEBUG] visitRelExp: left=0x560d55b6ef00, type=int, right=0x560d55b6eb00, type=int
[DEBUG IF] Creating condbr: %t172 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[20]=20;
[DEBUG IRGEN] visitStmt: s[20]=20;
[DEBUG IRGEN] HandleAssignStmt: s[20]=20;
[DEBUG IRGEN] EvalExpr: 20
[DEBUG IRGEN] visitAddExp: 20
[DEBUG IRGEN] visitMulExp: 20
[DEBUG IRGEN] visitPrimaryExp: 20
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 20 created as 0x560d55b6eb00
[DEBUG] EvalExpr: success, result = 0x560d55b6eb00
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 20
[DEBUG IRGEN] visitAddExp: 20
[DEBUG IRGEN] visitMulExp: 20
[DEBUG IRGEN] visitPrimaryExp: 20
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 20 created as 0x560d55b6eb00
[DEBUG] EvalExpr: success, result = 0x560d55b6eb00
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 21
[DEBUG IRGEN] visitMulExp: 21
[DEBUG IRGEN] visitPrimaryExp: 21
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 21 created as 0x560d55b6f1e0
[DEBUG] visitRelExp: left=0x560d55b6f5e0, type=int, right=0x560d55b6f1e0, type=int
[DEBUG IF] Creating condbr: %t175 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[21]=21;
[DEBUG IRGEN] visitStmt: s[21]=21;
[DEBUG IRGEN] HandleAssignStmt: s[21]=21;
[DEBUG IRGEN] EvalExpr: 21
[DEBUG IRGEN] visitAddExp: 21
[DEBUG IRGEN] visitMulExp: 21
[DEBUG IRGEN] visitPrimaryExp: 21
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 21 created as 0x560d55b6f1e0
[DEBUG] EvalExpr: success, result = 0x560d55b6f1e0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 21
[DEBUG IRGEN] visitAddExp: 21
[DEBUG IRGEN] visitMulExp: 21
[DEBUG IRGEN] visitPrimaryExp: 21
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 21 created as 0x560d55b6f1e0
[DEBUG] EvalExpr: success, result = 0x560d55b6f1e0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 22
[DEBUG IRGEN] visitMulExp: 22
[DEBUG IRGEN] visitPrimaryExp: 22
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 22 created as 0x560d55b6f8c0
[DEBUG] visitRelExp: left=0x560d55b6fcc0, type=int, right=0x560d55b6f8c0, type=int
[DEBUG IF] Creating condbr: %t178 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[22]=22;
[DEBUG IRGEN] visitStmt: s[22]=22;
[DEBUG IRGEN] HandleAssignStmt: s[22]=22;
[DEBUG IRGEN] EvalExpr: 22
[DEBUG IRGEN] visitAddExp: 22
[DEBUG IRGEN] visitMulExp: 22
[DEBUG IRGEN] visitPrimaryExp: 22
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 22 created as 0x560d55b6f8c0
[DEBUG] EvalExpr: success, result = 0x560d55b6f8c0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 22
[DEBUG IRGEN] visitAddExp: 22
[DEBUG IRGEN] visitMulExp: 22
[DEBUG IRGEN] visitPrimaryExp: 22
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 22 created as 0x560d55b6f8c0
[DEBUG] EvalExpr: success, result = 0x560d55b6f8c0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 23
[DEBUG IRGEN] visitMulExp: 23
[DEBUG IRGEN] visitPrimaryExp: 23
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 23 created as 0x560d55b6ffa0
[DEBUG] visitRelExp: left=0x560d55b703a0, type=int, right=0x560d55b6ffa0, type=int
[DEBUG IF] Creating condbr: %t181 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[23]=23;
[DEBUG IRGEN] visitStmt: s[23]=23;
[DEBUG IRGEN] HandleAssignStmt: s[23]=23;
[DEBUG IRGEN] EvalExpr: 23
[DEBUG IRGEN] visitAddExp: 23
[DEBUG IRGEN] visitMulExp: 23
[DEBUG IRGEN] visitPrimaryExp: 23
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 23 created as 0x560d55b6ffa0
[DEBUG] EvalExpr: success, result = 0x560d55b6ffa0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 23
[DEBUG IRGEN] visitAddExp: 23
[DEBUG IRGEN] visitMulExp: 23
[DEBUG IRGEN] visitPrimaryExp: 23
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 23 created as 0x560d55b6ffa0
[DEBUG] EvalExpr: success, result = 0x560d55b6ffa0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 24
[DEBUG IRGEN] visitMulExp: 24
[DEBUG IRGEN] visitPrimaryExp: 24
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 24 created as 0x560d55b70680
[DEBUG] visitRelExp: left=0x560d55b70a80, type=int, right=0x560d55b70680, type=int
[DEBUG IF] Creating condbr: %t184 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[24]=24;
[DEBUG IRGEN] visitStmt: s[24]=24;
[DEBUG IRGEN] HandleAssignStmt: s[24]=24;
[DEBUG IRGEN] EvalExpr: 24
[DEBUG IRGEN] visitAddExp: 24
[DEBUG IRGEN] visitMulExp: 24
[DEBUG IRGEN] visitPrimaryExp: 24
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 24 created as 0x560d55b70680
[DEBUG] EvalExpr: success, result = 0x560d55b70680
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 24
[DEBUG IRGEN] visitAddExp: 24
[DEBUG IRGEN] visitMulExp: 24
[DEBUG IRGEN] visitPrimaryExp: 24
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 24 created as 0x560d55b70680
[DEBUG] EvalExpr: success, result = 0x560d55b70680
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 25
[DEBUG IRGEN] visitMulExp: 25
[DEBUG IRGEN] visitPrimaryExp: 25
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 25 created as 0x560d55b70d60
[DEBUG] visitRelExp: left=0x560d55b63170, type=int, right=0x560d55b70d60, type=int
[DEBUG IF] Creating condbr: %t187 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[25]=25;
[DEBUG IRGEN] visitStmt: s[25]=25;
[DEBUG IRGEN] HandleAssignStmt: s[25]=25;
[DEBUG IRGEN] EvalExpr: 25
[DEBUG IRGEN] visitAddExp: 25
[DEBUG IRGEN] visitMulExp: 25
[DEBUG IRGEN] visitPrimaryExp: 25
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 25 created as 0x560d55b70d60
[DEBUG] EvalExpr: success, result = 0x560d55b70d60
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 25
[DEBUG IRGEN] visitAddExp: 25
[DEBUG IRGEN] visitMulExp: 25
[DEBUG IRGEN] visitPrimaryExp: 25
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 25 created as 0x560d55b70d60
[DEBUG] EvalExpr: success, result = 0x560d55b70d60
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 26
[DEBUG IRGEN] visitMulExp: 26
[DEBUG IRGEN] visitPrimaryExp: 26
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 26 created as 0x560d55b63450
[DEBUG] visitRelExp: left=0x560d55b63850, type=int, right=0x560d55b63450, type=int
[DEBUG IF] Creating condbr: %t190 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[26]=26;
[DEBUG IRGEN] visitStmt: s[26]=26;
[DEBUG IRGEN] HandleAssignStmt: s[26]=26;
[DEBUG IRGEN] EvalExpr: 26
[DEBUG IRGEN] visitAddExp: 26
[DEBUG IRGEN] visitMulExp: 26
[DEBUG IRGEN] visitPrimaryExp: 26
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 26 created as 0x560d55b63450
[DEBUG] EvalExpr: success, result = 0x560d55b63450
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 26
[DEBUG IRGEN] visitAddExp: 26
[DEBUG IRGEN] visitMulExp: 26
[DEBUG IRGEN] visitPrimaryExp: 26
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 26 created as 0x560d55b63450
[DEBUG] EvalExpr: success, result = 0x560d55b63450
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 27
[DEBUG IRGEN] visitMulExp: 27
[DEBUG IRGEN] visitPrimaryExp: 27
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 27 created as 0x560d55b63b30
[DEBUG] visitRelExp: left=0x560d55b72b20, type=int, right=0x560d55b63b30, type=int
[DEBUG IF] Creating condbr: %t193 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[27]=27;
[DEBUG IRGEN] visitStmt: s[27]=27;
[DEBUG IRGEN] HandleAssignStmt: s[27]=27;
[DEBUG IRGEN] EvalExpr: 27
[DEBUG IRGEN] visitAddExp: 27
[DEBUG IRGEN] visitMulExp: 27
[DEBUG IRGEN] visitPrimaryExp: 27
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 27 created as 0x560d55b63b30
[DEBUG] EvalExpr: success, result = 0x560d55b63b30
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 27
[DEBUG IRGEN] visitAddExp: 27
[DEBUG IRGEN] visitMulExp: 27
[DEBUG IRGEN] visitPrimaryExp: 27
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 27 created as 0x560d55b63b30
[DEBUG] EvalExpr: success, result = 0x560d55b63b30
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 28
[DEBUG IRGEN] visitMulExp: 28
[DEBUG IRGEN] visitPrimaryExp: 28
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 28 created as 0x560d55b72e00
[DEBUG] visitRelExp: left=0x560d55b733e0, type=int, right=0x560d55b72e00, type=int
[DEBUG IF] Creating condbr: %t196 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[28]=28;
[DEBUG IRGEN] visitStmt: s[28]=28;
[DEBUG IRGEN] HandleAssignStmt: s[28]=28;
[DEBUG IRGEN] EvalExpr: 28
[DEBUG IRGEN] visitAddExp: 28
[DEBUG IRGEN] visitMulExp: 28
[DEBUG IRGEN] visitPrimaryExp: 28
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 28 created as 0x560d55b72e00
[DEBUG] EvalExpr: success, result = 0x560d55b72e00
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 28
[DEBUG IRGEN] visitAddExp: 28
[DEBUG IRGEN] visitMulExp: 28
[DEBUG IRGEN] visitPrimaryExp: 28
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 28 created as 0x560d55b72e00
[DEBUG] EvalExpr: success, result = 0x560d55b72e00
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 29
[DEBUG IRGEN] visitMulExp: 29
[DEBUG IRGEN] visitPrimaryExp: 29
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 29 created as 0x560d55b736c0
[DEBUG] visitRelExp: left=0x560d55b73ac0, type=int, right=0x560d55b736c0, type=int
[DEBUG IF] Creating condbr: %t199 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[29]=29;
[DEBUG IRGEN] visitStmt: s[29]=29;
[DEBUG IRGEN] HandleAssignStmt: s[29]=29;
[DEBUG IRGEN] EvalExpr: 29
[DEBUG IRGEN] visitAddExp: 29
[DEBUG IRGEN] visitMulExp: 29
[DEBUG IRGEN] visitPrimaryExp: 29
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 29 created as 0x560d55b736c0
[DEBUG] EvalExpr: success, result = 0x560d55b736c0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 29
[DEBUG IRGEN] visitAddExp: 29
[DEBUG IRGEN] visitMulExp: 29
[DEBUG IRGEN] visitPrimaryExp: 29
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 29 created as 0x560d55b736c0
[DEBUG] EvalExpr: success, result = 0x560d55b736c0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 30
[DEBUG IRGEN] visitMulExp: 30
[DEBUG IRGEN] visitPrimaryExp: 30
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 30 created as 0x560d55b73da0
[DEBUG] visitRelExp: left=0x560d55b745b0, type=int, right=0x560d55b73da0, type=int
[DEBUG IF] Creating condbr: %t202 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[30]=30;
[DEBUG IRGEN] visitStmt: s[30]=30;
[DEBUG IRGEN] HandleAssignStmt: s[30]=30;
[DEBUG IRGEN] EvalExpr: 30
[DEBUG IRGEN] visitAddExp: 30
[DEBUG IRGEN] visitMulExp: 30
[DEBUG IRGEN] visitPrimaryExp: 30
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 30 created as 0x560d55b73da0
[DEBUG] EvalExpr: success, result = 0x560d55b73da0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 30
[DEBUG IRGEN] visitAddExp: 30
[DEBUG IRGEN] visitMulExp: 30
[DEBUG IRGEN] visitPrimaryExp: 30
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 30 created as 0x560d55b73da0
[DEBUG] EvalExpr: success, result = 0x560d55b73da0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 31
[DEBUG IRGEN] visitMulExp: 31
[DEBUG IRGEN] visitPrimaryExp: 31
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 31 created as 0x560d55b74890
[DEBUG] visitRelExp: left=0x560d55b74c90, type=int, right=0x560d55b74890, type=int
[DEBUG IF] Creating condbr: %t205 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[31]=31;
[DEBUG IRGEN] visitStmt: s[31]=31;
[DEBUG IRGEN] HandleAssignStmt: s[31]=31;
[DEBUG IRGEN] EvalExpr: 31
[DEBUG IRGEN] visitAddExp: 31
[DEBUG IRGEN] visitMulExp: 31
[DEBUG IRGEN] visitPrimaryExp: 31
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 31 created as 0x560d55b74890
[DEBUG] EvalExpr: success, result = 0x560d55b74890
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 31
[DEBUG IRGEN] visitAddExp: 31
[DEBUG IRGEN] visitMulExp: 31
[DEBUG IRGEN] visitPrimaryExp: 31
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 31 created as 0x560d55b74890
[DEBUG] EvalExpr: success, result = 0x560d55b74890
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 32
[DEBUG IRGEN] visitMulExp: 32
[DEBUG IRGEN] visitPrimaryExp: 32
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 32 created as 0x560d55b74f70
[DEBUG] visitRelExp: left=0x560d55b75980, type=int, right=0x560d55b74f70, type=int
[DEBUG IF] Creating condbr: %t208 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[32]=32;
[DEBUG IRGEN] visitStmt: s[32]=32;
[DEBUG IRGEN] HandleAssignStmt: s[32]=32;
[DEBUG IRGEN] EvalExpr: 32
[DEBUG IRGEN] visitAddExp: 32
[DEBUG IRGEN] visitMulExp: 32
[DEBUG IRGEN] visitPrimaryExp: 32
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 32 created as 0x560d55b74f70
[DEBUG] EvalExpr: success, result = 0x560d55b74f70
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 32
[DEBUG IRGEN] visitAddExp: 32
[DEBUG IRGEN] visitMulExp: 32
[DEBUG IRGEN] visitPrimaryExp: 32
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 32 created as 0x560d55b74f70
[DEBUG] EvalExpr: success, result = 0x560d55b74f70
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 33
[DEBUG IRGEN] visitMulExp: 33
[DEBUG IRGEN] visitPrimaryExp: 33
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 33 created as 0x560d55b76270
[DEBUG] visitRelExp: left=0x560d55b76670, type=int, right=0x560d55b76270, type=int
[DEBUG IF] Creating condbr: %t211 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[33]=33;
[DEBUG IRGEN] visitStmt: s[33]=33;
[DEBUG IRGEN] HandleAssignStmt: s[33]=33;
[DEBUG IRGEN] EvalExpr: 33
[DEBUG IRGEN] visitAddExp: 33
[DEBUG IRGEN] visitMulExp: 33
[DEBUG IRGEN] visitPrimaryExp: 33
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 33 created as 0x560d55b76270
[DEBUG] EvalExpr: success, result = 0x560d55b76270
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 33
[DEBUG IRGEN] visitAddExp: 33
[DEBUG IRGEN] visitMulExp: 33
[DEBUG IRGEN] visitPrimaryExp: 33
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 33 created as 0x560d55b76270
[DEBUG] EvalExpr: success, result = 0x560d55b76270
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 34
[DEBUG IRGEN] visitMulExp: 34
[DEBUG IRGEN] visitPrimaryExp: 34
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 34 created as 0x560d55b76950
[DEBUG] visitRelExp: left=0x560d55b76d50, type=int, right=0x560d55b76950, type=int
[DEBUG IF] Creating condbr: %t214 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[34]=34;
[DEBUG IRGEN] visitStmt: s[34]=34;
[DEBUG IRGEN] HandleAssignStmt: s[34]=34;
[DEBUG IRGEN] EvalExpr: 34
[DEBUG IRGEN] visitAddExp: 34
[DEBUG IRGEN] visitMulExp: 34
[DEBUG IRGEN] visitPrimaryExp: 34
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 34 created as 0x560d55b76950
[DEBUG] EvalExpr: success, result = 0x560d55b76950
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 34
[DEBUG IRGEN] visitAddExp: 34
[DEBUG IRGEN] visitMulExp: 34
[DEBUG IRGEN] visitPrimaryExp: 34
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 34 created as 0x560d55b76950
[DEBUG] EvalExpr: success, result = 0x560d55b76950
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 35
[DEBUG IRGEN] visitMulExp: 35
[DEBUG IRGEN] visitPrimaryExp: 35
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 35 created as 0x560d55b77030
[DEBUG] visitRelExp: left=0x560d55b77430, type=int, right=0x560d55b77030, type=int
[DEBUG IF] Creating condbr: %t217 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[35]=35;
[DEBUG IRGEN] visitStmt: s[35]=35;
[DEBUG IRGEN] HandleAssignStmt: s[35]=35;
[DEBUG IRGEN] EvalExpr: 35
[DEBUG IRGEN] visitAddExp: 35
[DEBUG IRGEN] visitMulExp: 35
[DEBUG IRGEN] visitPrimaryExp: 35
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 35 created as 0x560d55b77030
[DEBUG] EvalExpr: success, result = 0x560d55b77030
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 35
[DEBUG IRGEN] visitAddExp: 35
[DEBUG IRGEN] visitMulExp: 35
[DEBUG IRGEN] visitPrimaryExp: 35
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 35 created as 0x560d55b77030
[DEBUG] EvalExpr: success, result = 0x560d55b77030
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 36
[DEBUG IRGEN] visitMulExp: 36
[DEBUG IRGEN] visitPrimaryExp: 36
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 36 created as 0x560d55b77710
[DEBUG] visitRelExp: left=0x560d55b77b10, type=int, right=0x560d55b77710, type=int
[DEBUG IF] Creating condbr: %t220 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[36]=36;
[DEBUG IRGEN] visitStmt: s[36]=36;
[DEBUG IRGEN] HandleAssignStmt: s[36]=36;
[DEBUG IRGEN] EvalExpr: 36
[DEBUG IRGEN] visitAddExp: 36
[DEBUG IRGEN] visitMulExp: 36
[DEBUG IRGEN] visitPrimaryExp: 36
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 36 created as 0x560d55b77710
[DEBUG] EvalExpr: success, result = 0x560d55b77710
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 36
[DEBUG IRGEN] visitAddExp: 36
[DEBUG IRGEN] visitMulExp: 36
[DEBUG IRGEN] visitPrimaryExp: 36
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 36 created as 0x560d55b77710
[DEBUG] EvalExpr: success, result = 0x560d55b77710
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 37
[DEBUG IRGEN] visitMulExp: 37
[DEBUG IRGEN] visitPrimaryExp: 37
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 37 created as 0x560d55b77df0
[DEBUG] visitRelExp: left=0x560d55b781f0, type=int, right=0x560d55b77df0, type=int
[DEBUG IF] Creating condbr: %t223 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[37]=37;
[DEBUG IRGEN] visitStmt: s[37]=37;
[DEBUG IRGEN] HandleAssignStmt: s[37]=37;
[DEBUG IRGEN] EvalExpr: 37
[DEBUG IRGEN] visitAddExp: 37
[DEBUG IRGEN] visitMulExp: 37
[DEBUG IRGEN] visitPrimaryExp: 37
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 37 created as 0x560d55b77df0
[DEBUG] EvalExpr: success, result = 0x560d55b77df0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 37
[DEBUG IRGEN] visitAddExp: 37
[DEBUG IRGEN] visitMulExp: 37
[DEBUG IRGEN] visitPrimaryExp: 37
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 37 created as 0x560d55b77df0
[DEBUG] EvalExpr: success, result = 0x560d55b77df0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 38
[DEBUG IRGEN] visitMulExp: 38
[DEBUG IRGEN] visitPrimaryExp: 38
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 38 created as 0x560d55b784d0
[DEBUG] visitRelExp: left=0x560d55b788d0, type=int, right=0x560d55b784d0, type=int
[DEBUG IF] Creating condbr: %t226 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[38]=38;
[DEBUG IRGEN] visitStmt: s[38]=38;
[DEBUG IRGEN] HandleAssignStmt: s[38]=38;
[DEBUG IRGEN] EvalExpr: 38
[DEBUG IRGEN] visitAddExp: 38
[DEBUG IRGEN] visitMulExp: 38
[DEBUG IRGEN] visitPrimaryExp: 38
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 38 created as 0x560d55b784d0
[DEBUG] EvalExpr: success, result = 0x560d55b784d0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 38
[DEBUG IRGEN] visitAddExp: 38
[DEBUG IRGEN] visitMulExp: 38
[DEBUG IRGEN] visitPrimaryExp: 38
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 38 created as 0x560d55b784d0
[DEBUG] EvalExpr: success, result = 0x560d55b784d0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 39
[DEBUG IRGEN] visitMulExp: 39
[DEBUG IRGEN] visitPrimaryExp: 39
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 39 created as 0x560d55b78bb0
[DEBUG] visitRelExp: left=0x560d55b78fb0, type=int, right=0x560d55b78bb0, type=int
[DEBUG IF] Creating condbr: %t229 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[39]=39;
[DEBUG IRGEN] visitStmt: s[39]=39;
[DEBUG IRGEN] HandleAssignStmt: s[39]=39;
[DEBUG IRGEN] EvalExpr: 39
[DEBUG IRGEN] visitAddExp: 39
[DEBUG IRGEN] visitMulExp: 39
[DEBUG IRGEN] visitPrimaryExp: 39
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 39 created as 0x560d55b78bb0
[DEBUG] EvalExpr: success, result = 0x560d55b78bb0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 39
[DEBUG IRGEN] visitAddExp: 39
[DEBUG IRGEN] visitMulExp: 39
[DEBUG IRGEN] visitPrimaryExp: 39
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 39 created as 0x560d55b78bb0
[DEBUG] EvalExpr: success, result = 0x560d55b78bb0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 40
[DEBUG IRGEN] visitMulExp: 40
[DEBUG IRGEN] visitPrimaryExp: 40
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 40 created as 0x560d55b79290
[DEBUG] visitRelExp: left=0x560d55b79690, type=int, right=0x560d55b79290, type=int
[DEBUG IF] Creating condbr: %t232 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[40]=40;
[DEBUG IRGEN] visitStmt: s[40]=40;
[DEBUG IRGEN] HandleAssignStmt: s[40]=40;
[DEBUG IRGEN] EvalExpr: 40
[DEBUG IRGEN] visitAddExp: 40
[DEBUG IRGEN] visitMulExp: 40
[DEBUG IRGEN] visitPrimaryExp: 40
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 40 created as 0x560d55b79290
[DEBUG] EvalExpr: success, result = 0x560d55b79290
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 40
[DEBUG IRGEN] visitAddExp: 40
[DEBUG IRGEN] visitMulExp: 40
[DEBUG IRGEN] visitPrimaryExp: 40
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 40 created as 0x560d55b79290
[DEBUG] EvalExpr: success, result = 0x560d55b79290
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 41
[DEBUG IRGEN] visitMulExp: 41
[DEBUG IRGEN] visitPrimaryExp: 41
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 41 created as 0x560d55b79970
[DEBUG] visitRelExp: left=0x560d55b79d70, type=int, right=0x560d55b79970, type=int
[DEBUG IF] Creating condbr: %t235 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[41]=41;
[DEBUG IRGEN] visitStmt: s[41]=41;
[DEBUG IRGEN] HandleAssignStmt: s[41]=41;
[DEBUG IRGEN] EvalExpr: 41
[DEBUG IRGEN] visitAddExp: 41
[DEBUG IRGEN] visitMulExp: 41
[DEBUG IRGEN] visitPrimaryExp: 41
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 41 created as 0x560d55b79970
[DEBUG] EvalExpr: success, result = 0x560d55b79970
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 41
[DEBUG IRGEN] visitAddExp: 41
[DEBUG IRGEN] visitMulExp: 41
[DEBUG IRGEN] visitPrimaryExp: 41
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 41 created as 0x560d55b79970
[DEBUG] EvalExpr: success, result = 0x560d55b79970
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 42
[DEBUG IRGEN] visitMulExp: 42
[DEBUG IRGEN] visitPrimaryExp: 42
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 42 created as 0x560d55b7a050
[DEBUG] visitRelExp: left=0x560d55b7a450, type=int, right=0x560d55b7a050, type=int
[DEBUG IF] Creating condbr: %t238 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[42]=42;
[DEBUG IRGEN] visitStmt: s[42]=42;
[DEBUG IRGEN] HandleAssignStmt: s[42]=42;
[DEBUG IRGEN] EvalExpr: 42
[DEBUG IRGEN] visitAddExp: 42
[DEBUG IRGEN] visitMulExp: 42
[DEBUG IRGEN] visitPrimaryExp: 42
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 42 created as 0x560d55b7a050
[DEBUG] EvalExpr: success, result = 0x560d55b7a050
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 42
[DEBUG IRGEN] visitAddExp: 42
[DEBUG IRGEN] visitMulExp: 42
[DEBUG IRGEN] visitPrimaryExp: 42
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 42 created as 0x560d55b7a050
[DEBUG] EvalExpr: success, result = 0x560d55b7a050
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 43
[DEBUG IRGEN] visitMulExp: 43
[DEBUG IRGEN] visitPrimaryExp: 43
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 43 created as 0x560d55b7a730
[DEBUG] visitRelExp: left=0x560d55b7ab30, type=int, right=0x560d55b7a730, type=int
[DEBUG IF] Creating condbr: %t241 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[43]=43;
[DEBUG IRGEN] visitStmt: s[43]=43;
[DEBUG IRGEN] HandleAssignStmt: s[43]=43;
[DEBUG IRGEN] EvalExpr: 43
[DEBUG IRGEN] visitAddExp: 43
[DEBUG IRGEN] visitMulExp: 43
[DEBUG IRGEN] visitPrimaryExp: 43
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 43 created as 0x560d55b7a730
[DEBUG] EvalExpr: success, result = 0x560d55b7a730
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 43
[DEBUG IRGEN] visitAddExp: 43
[DEBUG IRGEN] visitMulExp: 43
[DEBUG IRGEN] visitPrimaryExp: 43
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 43 created as 0x560d55b7a730
[DEBUG] EvalExpr: success, result = 0x560d55b7a730
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 44
[DEBUG IRGEN] visitMulExp: 44
[DEBUG IRGEN] visitPrimaryExp: 44
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 44 created as 0x560d55b7ae10
[DEBUG] visitRelExp: left=0x560d55b7b210, type=int, right=0x560d55b7ae10, type=int
[DEBUG IF] Creating condbr: %t244 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[44]=44;
[DEBUG IRGEN] visitStmt: s[44]=44;
[DEBUG IRGEN] HandleAssignStmt: s[44]=44;
[DEBUG IRGEN] EvalExpr: 44
[DEBUG IRGEN] visitAddExp: 44
[DEBUG IRGEN] visitMulExp: 44
[DEBUG IRGEN] visitPrimaryExp: 44
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 44 created as 0x560d55b7ae10
[DEBUG] EvalExpr: success, result = 0x560d55b7ae10
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 44
[DEBUG IRGEN] visitAddExp: 44
[DEBUG IRGEN] visitMulExp: 44
[DEBUG IRGEN] visitPrimaryExp: 44
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 44 created as 0x560d55b7ae10
[DEBUG] EvalExpr: success, result = 0x560d55b7ae10
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 45
[DEBUG IRGEN] visitMulExp: 45
[DEBUG IRGEN] visitPrimaryExp: 45
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 45 created as 0x560d55b7b4f0
[DEBUG] visitRelExp: left=0x560d55b7b8f0, type=int, right=0x560d55b7b4f0, type=int
[DEBUG IF] Creating condbr: %t247 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[45]=45;
[DEBUG IRGEN] visitStmt: s[45]=45;
[DEBUG IRGEN] HandleAssignStmt: s[45]=45;
[DEBUG IRGEN] EvalExpr: 45
[DEBUG IRGEN] visitAddExp: 45
[DEBUG IRGEN] visitMulExp: 45
[DEBUG IRGEN] visitPrimaryExp: 45
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 45 created as 0x560d55b7b4f0
[DEBUG] EvalExpr: success, result = 0x560d55b7b4f0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 45
[DEBUG IRGEN] visitAddExp: 45
[DEBUG IRGEN] visitMulExp: 45
[DEBUG IRGEN] visitPrimaryExp: 45
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 45 created as 0x560d55b7b4f0
[DEBUG] EvalExpr: success, result = 0x560d55b7b4f0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 46
[DEBUG IRGEN] visitMulExp: 46
[DEBUG IRGEN] visitPrimaryExp: 46
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 46 created as 0x560d55b7bbd0
[DEBUG] visitRelExp: left=0x560d55b7bfd0, type=int, right=0x560d55b7bbd0, type=int
[DEBUG IF] Creating condbr: %t250 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[46]=46;
[DEBUG IRGEN] visitStmt: s[46]=46;
[DEBUG IRGEN] HandleAssignStmt: s[46]=46;
[DEBUG IRGEN] EvalExpr: 46
[DEBUG IRGEN] visitAddExp: 46
[DEBUG IRGEN] visitMulExp: 46
[DEBUG IRGEN] visitPrimaryExp: 46
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 46 created as 0x560d55b7bbd0
[DEBUG] EvalExpr: success, result = 0x560d55b7bbd0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 46
[DEBUG IRGEN] visitAddExp: 46
[DEBUG IRGEN] visitMulExp: 46
[DEBUG IRGEN] visitPrimaryExp: 46
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 46 created as 0x560d55b7bbd0
[DEBUG] EvalExpr: success, result = 0x560d55b7bbd0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 47
[DEBUG IRGEN] visitMulExp: 47
[DEBUG IRGEN] visitPrimaryExp: 47
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 47 created as 0x560d55b7c2b0
[DEBUG] visitRelExp: left=0x560d55b7c6b0, type=int, right=0x560d55b7c2b0, type=int
[DEBUG IF] Creating condbr: %t253 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[47]=47;
[DEBUG IRGEN] visitStmt: s[47]=47;
[DEBUG IRGEN] HandleAssignStmt: s[47]=47;
[DEBUG IRGEN] EvalExpr: 47
[DEBUG IRGEN] visitAddExp: 47
[DEBUG IRGEN] visitMulExp: 47
[DEBUG IRGEN] visitPrimaryExp: 47
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 47 created as 0x560d55b7c2b0
[DEBUG] EvalExpr: success, result = 0x560d55b7c2b0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 47
[DEBUG IRGEN] visitAddExp: 47
[DEBUG IRGEN] visitMulExp: 47
[DEBUG IRGEN] visitPrimaryExp: 47
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 47 created as 0x560d55b7c2b0
[DEBUG] EvalExpr: success, result = 0x560d55b7c2b0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 48
[DEBUG IRGEN] visitMulExp: 48
[DEBUG IRGEN] visitPrimaryExp: 48
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 48 created as 0x560d55b7c990
[DEBUG] visitRelExp: left=0x560d55b7cd90, type=int, right=0x560d55b7c990, type=int
[DEBUG IF] Creating condbr: %t256 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[48]=48;
[DEBUG IRGEN] visitStmt: s[48]=48;
[DEBUG IRGEN] HandleAssignStmt: s[48]=48;
[DEBUG IRGEN] EvalExpr: 48
[DEBUG IRGEN] visitAddExp: 48
[DEBUG IRGEN] visitMulExp: 48
[DEBUG IRGEN] visitPrimaryExp: 48
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 48 created as 0x560d55b7c990
[DEBUG] EvalExpr: success, result = 0x560d55b7c990
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 48
[DEBUG IRGEN] visitAddExp: 48
[DEBUG IRGEN] visitMulExp: 48
[DEBUG IRGEN] visitPrimaryExp: 48
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 48 created as 0x560d55b7c990
[DEBUG] EvalExpr: success, result = 0x560d55b7c990
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 49
[DEBUG IRGEN] visitMulExp: 49
[DEBUG IRGEN] visitPrimaryExp: 49
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 49 created as 0x560d55b7d070
[DEBUG] visitRelExp: left=0x560d55b7d470, type=int, right=0x560d55b7d070, type=int
[DEBUG IF] Creating condbr: %t259 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[49]=49;
[DEBUG IRGEN] visitStmt: s[49]=49;
[DEBUG IRGEN] HandleAssignStmt: s[49]=49;
[DEBUG IRGEN] EvalExpr: 49
[DEBUG IRGEN] visitAddExp: 49
[DEBUG IRGEN] visitMulExp: 49
[DEBUG IRGEN] visitPrimaryExp: 49
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 49 created as 0x560d55b7d070
[DEBUG] EvalExpr: success, result = 0x560d55b7d070
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 49
[DEBUG IRGEN] visitAddExp: 49
[DEBUG IRGEN] visitMulExp: 49
[DEBUG IRGEN] visitPrimaryExp: 49
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 49 created as 0x560d55b7d070
[DEBUG] EvalExpr: success, result = 0x560d55b7d070
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 50
[DEBUG IRGEN] visitMulExp: 50
[DEBUG IRGEN] visitPrimaryExp: 50
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 50 created as 0x560d55b7d750
[DEBUG] visitRelExp: left=0x560d55b7db50, type=int, right=0x560d55b7d750, type=int
[DEBUG IF] Creating condbr: %t262 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[50]=50;
[DEBUG IRGEN] visitStmt: s[50]=50;
[DEBUG IRGEN] HandleAssignStmt: s[50]=50;
[DEBUG IRGEN] EvalExpr: 50
[DEBUG IRGEN] visitAddExp: 50
[DEBUG IRGEN] visitMulExp: 50
[DEBUG IRGEN] visitPrimaryExp: 50
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 50 created as 0x560d55b7d750
[DEBUG] EvalExpr: success, result = 0x560d55b7d750
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 50
[DEBUG IRGEN] visitAddExp: 50
[DEBUG IRGEN] visitMulExp: 50
[DEBUG IRGEN] visitPrimaryExp: 50
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 50 created as 0x560d55b7d750
[DEBUG] EvalExpr: success, result = 0x560d55b7d750
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 51
[DEBUG IRGEN] visitMulExp: 51
[DEBUG IRGEN] visitPrimaryExp: 51
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 51 created as 0x560d55b7de30
[DEBUG] visitRelExp: left=0x560d55b7e230, type=int, right=0x560d55b7de30, type=int
[DEBUG IF] Creating condbr: %t265 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[51]=51;
[DEBUG IRGEN] visitStmt: s[51]=51;
[DEBUG IRGEN] HandleAssignStmt: s[51]=51;
[DEBUG IRGEN] EvalExpr: 51
[DEBUG IRGEN] visitAddExp: 51
[DEBUG IRGEN] visitMulExp: 51
[DEBUG IRGEN] visitPrimaryExp: 51
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 51 created as 0x560d55b7de30
[DEBUG] EvalExpr: success, result = 0x560d55b7de30
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 51
[DEBUG IRGEN] visitAddExp: 51
[DEBUG IRGEN] visitMulExp: 51
[DEBUG IRGEN] visitPrimaryExp: 51
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 51 created as 0x560d55b7de30
[DEBUG] EvalExpr: success, result = 0x560d55b7de30
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 52
[DEBUG IRGEN] visitMulExp: 52
[DEBUG IRGEN] visitPrimaryExp: 52
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 52 created as 0x560d55b7e510
[DEBUG] visitRelExp: left=0x560d55b7e910, type=int, right=0x560d55b7e510, type=int
[DEBUG IF] Creating condbr: %t268 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[52]=52;
[DEBUG IRGEN] visitStmt: s[52]=52;
[DEBUG IRGEN] HandleAssignStmt: s[52]=52;
[DEBUG IRGEN] EvalExpr: 52
[DEBUG IRGEN] visitAddExp: 52
[DEBUG IRGEN] visitMulExp: 52
[DEBUG IRGEN] visitPrimaryExp: 52
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 52 created as 0x560d55b7e510
[DEBUG] EvalExpr: success, result = 0x560d55b7e510
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 52
[DEBUG IRGEN] visitAddExp: 52
[DEBUG IRGEN] visitMulExp: 52
[DEBUG IRGEN] visitPrimaryExp: 52
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 52 created as 0x560d55b7e510
[DEBUG] EvalExpr: success, result = 0x560d55b7e510
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 53
[DEBUG IRGEN] visitMulExp: 53
[DEBUG IRGEN] visitPrimaryExp: 53
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 53 created as 0x560d55b7ebf0
[DEBUG] visitRelExp: left=0x560d55b7eff0, type=int, right=0x560d55b7ebf0, type=int
[DEBUG IF] Creating condbr: %t271 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[53]=53;
[DEBUG IRGEN] visitStmt: s[53]=53;
[DEBUG IRGEN] HandleAssignStmt: s[53]=53;
[DEBUG IRGEN] EvalExpr: 53
[DEBUG IRGEN] visitAddExp: 53
[DEBUG IRGEN] visitMulExp: 53
[DEBUG IRGEN] visitPrimaryExp: 53
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 53 created as 0x560d55b7ebf0
[DEBUG] EvalExpr: success, result = 0x560d55b7ebf0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 53
[DEBUG IRGEN] visitAddExp: 53
[DEBUG IRGEN] visitMulExp: 53
[DEBUG IRGEN] visitPrimaryExp: 53
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 53 created as 0x560d55b7ebf0
[DEBUG] EvalExpr: success, result = 0x560d55b7ebf0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 54
[DEBUG IRGEN] visitMulExp: 54
[DEBUG IRGEN] visitPrimaryExp: 54
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 54 created as 0x560d55b7f2d0
[DEBUG] visitRelExp: left=0x560d55b7f6d0, type=int, right=0x560d55b7f2d0, type=int
[DEBUG IF] Creating condbr: %t274 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[54]=54;
[DEBUG IRGEN] visitStmt: s[54]=54;
[DEBUG IRGEN] HandleAssignStmt: s[54]=54;
[DEBUG IRGEN] EvalExpr: 54
[DEBUG IRGEN] visitAddExp: 54
[DEBUG IRGEN] visitMulExp: 54
[DEBUG IRGEN] visitPrimaryExp: 54
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 54 created as 0x560d55b7f2d0
[DEBUG] EvalExpr: success, result = 0x560d55b7f2d0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 54
[DEBUG IRGEN] visitAddExp: 54
[DEBUG IRGEN] visitMulExp: 54
[DEBUG IRGEN] visitPrimaryExp: 54
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 54 created as 0x560d55b7f2d0
[DEBUG] EvalExpr: success, result = 0x560d55b7f2d0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 55
[DEBUG IRGEN] visitMulExp: 55
[DEBUG IRGEN] visitPrimaryExp: 55
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 55 created as 0x560d55b7f9b0
[DEBUG] visitRelExp: left=0x560d55b7fdb0, type=int, right=0x560d55b7f9b0, type=int
[DEBUG IF] Creating condbr: %t277 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[55]=55;
[DEBUG IRGEN] visitStmt: s[55]=55;
[DEBUG IRGEN] HandleAssignStmt: s[55]=55;
[DEBUG IRGEN] EvalExpr: 55
[DEBUG IRGEN] visitAddExp: 55
[DEBUG IRGEN] visitMulExp: 55
[DEBUG IRGEN] visitPrimaryExp: 55
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 55 created as 0x560d55b7f9b0
[DEBUG] EvalExpr: success, result = 0x560d55b7f9b0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 55
[DEBUG IRGEN] visitAddExp: 55
[DEBUG IRGEN] visitMulExp: 55
[DEBUG IRGEN] visitPrimaryExp: 55
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 55 created as 0x560d55b7f9b0
[DEBUG] EvalExpr: success, result = 0x560d55b7f9b0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 56
[DEBUG IRGEN] visitMulExp: 56
[DEBUG IRGEN] visitPrimaryExp: 56
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 56 created as 0x560d55b80090
[DEBUG] visitRelExp: left=0x560d55b80490, type=int, right=0x560d55b80090, type=int
[DEBUG IF] Creating condbr: %t280 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[56]=56;
[DEBUG IRGEN] visitStmt: s[56]=56;
[DEBUG IRGEN] HandleAssignStmt: s[56]=56;
[DEBUG IRGEN] EvalExpr: 56
[DEBUG IRGEN] visitAddExp: 56
[DEBUG IRGEN] visitMulExp: 56
[DEBUG IRGEN] visitPrimaryExp: 56
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 56 created as 0x560d55b80090
[DEBUG] EvalExpr: success, result = 0x560d55b80090
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 56
[DEBUG IRGEN] visitAddExp: 56
[DEBUG IRGEN] visitMulExp: 56
[DEBUG IRGEN] visitPrimaryExp: 56
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 56 created as 0x560d55b80090
[DEBUG] EvalExpr: success, result = 0x560d55b80090
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 57
[DEBUG IRGEN] visitMulExp: 57
[DEBUG IRGEN] visitPrimaryExp: 57
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 57 created as 0x560d55b80770
[DEBUG] visitRelExp: left=0x560d55b80b70, type=int, right=0x560d55b80770, type=int
[DEBUG IF] Creating condbr: %t283 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[57]=57;
[DEBUG IRGEN] visitStmt: s[57]=57;
[DEBUG IRGEN] HandleAssignStmt: s[57]=57;
[DEBUG IRGEN] EvalExpr: 57
[DEBUG IRGEN] visitAddExp: 57
[DEBUG IRGEN] visitMulExp: 57
[DEBUG IRGEN] visitPrimaryExp: 57
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 57 created as 0x560d55b80770
[DEBUG] EvalExpr: success, result = 0x560d55b80770
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 57
[DEBUG IRGEN] visitAddExp: 57
[DEBUG IRGEN] visitMulExp: 57
[DEBUG IRGEN] visitPrimaryExp: 57
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 57 created as 0x560d55b80770
[DEBUG] EvalExpr: success, result = 0x560d55b80770
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 58
[DEBUG IRGEN] visitMulExp: 58
[DEBUG IRGEN] visitPrimaryExp: 58
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 58 created as 0x560d55b80e50
[DEBUG] visitRelExp: left=0x560d55b81250, type=int, right=0x560d55b80e50, type=int
[DEBUG IF] Creating condbr: %t286 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[58]=58;
[DEBUG IRGEN] visitStmt: s[58]=58;
[DEBUG IRGEN] HandleAssignStmt: s[58]=58;
[DEBUG IRGEN] EvalExpr: 58
[DEBUG IRGEN] visitAddExp: 58
[DEBUG IRGEN] visitMulExp: 58
[DEBUG IRGEN] visitPrimaryExp: 58
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 58 created as 0x560d55b80e50
[DEBUG] EvalExpr: success, result = 0x560d55b80e50
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 58
[DEBUG IRGEN] visitAddExp: 58
[DEBUG IRGEN] visitMulExp: 58
[DEBUG IRGEN] visitPrimaryExp: 58
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 58 created as 0x560d55b80e50
[DEBUG] EvalExpr: success, result = 0x560d55b80e50
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 59
[DEBUG IRGEN] visitMulExp: 59
[DEBUG IRGEN] visitPrimaryExp: 59
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 59 created as 0x560d55b81530
[DEBUG] visitRelExp: left=0x560d55b81930, type=int, right=0x560d55b81530, type=int
[DEBUG IF] Creating condbr: %t289 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[59]=59;
[DEBUG IRGEN] visitStmt: s[59]=59;
[DEBUG IRGEN] HandleAssignStmt: s[59]=59;
[DEBUG IRGEN] EvalExpr: 59
[DEBUG IRGEN] visitAddExp: 59
[DEBUG IRGEN] visitMulExp: 59
[DEBUG IRGEN] visitPrimaryExp: 59
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 59 created as 0x560d55b81530
[DEBUG] EvalExpr: success, result = 0x560d55b81530
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 59
[DEBUG IRGEN] visitAddExp: 59
[DEBUG IRGEN] visitMulExp: 59
[DEBUG IRGEN] visitPrimaryExp: 59
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 59 created as 0x560d55b81530
[DEBUG] EvalExpr: success, result = 0x560d55b81530
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 60
[DEBUG IRGEN] visitMulExp: 60
[DEBUG IRGEN] visitPrimaryExp: 60
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 60 created as 0x560d55b81c10
[DEBUG] visitRelExp: left=0x560d55b82010, type=int, right=0x560d55b81c10, type=int
[DEBUG IF] Creating condbr: %t292 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[60]=60;
[DEBUG IRGEN] visitStmt: s[60]=60;
[DEBUG IRGEN] HandleAssignStmt: s[60]=60;
[DEBUG IRGEN] EvalExpr: 60
[DEBUG IRGEN] visitAddExp: 60
[DEBUG IRGEN] visitMulExp: 60
[DEBUG IRGEN] visitPrimaryExp: 60
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 60 created as 0x560d55b81c10
[DEBUG] EvalExpr: success, result = 0x560d55b81c10
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 60
[DEBUG IRGEN] visitAddExp: 60
[DEBUG IRGEN] visitMulExp: 60
[DEBUG IRGEN] visitPrimaryExp: 60
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 60 created as 0x560d55b81c10
[DEBUG] EvalExpr: success, result = 0x560d55b81c10
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 61
[DEBUG IRGEN] visitMulExp: 61
[DEBUG IRGEN] visitPrimaryExp: 61
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 61 created as 0x560d55b822f0
[DEBUG] visitRelExp: left=0x560d55b826f0, type=int, right=0x560d55b822f0, type=int
[DEBUG IF] Creating condbr: %t295 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[61]=61;
[DEBUG IRGEN] visitStmt: s[61]=61;
[DEBUG IRGEN] HandleAssignStmt: s[61]=61;
[DEBUG IRGEN] EvalExpr: 61
[DEBUG IRGEN] visitAddExp: 61
[DEBUG IRGEN] visitMulExp: 61
[DEBUG IRGEN] visitPrimaryExp: 61
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 61 created as 0x560d55b822f0
[DEBUG] EvalExpr: success, result = 0x560d55b822f0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 61
[DEBUG IRGEN] visitAddExp: 61
[DEBUG IRGEN] visitMulExp: 61
[DEBUG IRGEN] visitPrimaryExp: 61
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 61 created as 0x560d55b822f0
[DEBUG] EvalExpr: success, result = 0x560d55b822f0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 62
[DEBUG IRGEN] visitMulExp: 62
[DEBUG IRGEN] visitPrimaryExp: 62
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 62 created as 0x560d55b831e0
[DEBUG] visitRelExp: left=0x560d55b835e0, type=int, right=0x560d55b831e0, type=int
[DEBUG IF] Creating condbr: %t298 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[62]=62;
[DEBUG IRGEN] visitStmt: s[62]=62;
[DEBUG IRGEN] HandleAssignStmt: s[62]=62;
[DEBUG IRGEN] EvalExpr: 62
[DEBUG IRGEN] visitAddExp: 62
[DEBUG IRGEN] visitMulExp: 62
[DEBUG IRGEN] visitPrimaryExp: 62
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 62 created as 0x560d55b831e0
[DEBUG] EvalExpr: success, result = 0x560d55b831e0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 62
[DEBUG IRGEN] visitAddExp: 62
[DEBUG IRGEN] visitMulExp: 62
[DEBUG IRGEN] visitPrimaryExp: 62
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 62 created as 0x560d55b831e0
[DEBUG] EvalExpr: success, result = 0x560d55b831e0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 63
[DEBUG IRGEN] visitMulExp: 63
[DEBUG IRGEN] visitPrimaryExp: 63
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 63 created as 0x560d55b838c0
[DEBUG] visitRelExp: left=0x560d55b83cc0, type=int, right=0x560d55b838c0, type=int
[DEBUG IF] Creating condbr: %t301 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[63]=63;
[DEBUG IRGEN] visitStmt: s[63]=63;
[DEBUG IRGEN] HandleAssignStmt: s[63]=63;
[DEBUG IRGEN] EvalExpr: 63
[DEBUG IRGEN] visitAddExp: 63
[DEBUG IRGEN] visitMulExp: 63
[DEBUG IRGEN] visitPrimaryExp: 63
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 63 created as 0x560d55b838c0
[DEBUG] EvalExpr: success, result = 0x560d55b838c0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 63
[DEBUG IRGEN] visitAddExp: 63
[DEBUG IRGEN] visitMulExp: 63
[DEBUG IRGEN] visitPrimaryExp: 63
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 63 created as 0x560d55b838c0
[DEBUG] EvalExpr: success, result = 0x560d55b838c0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 64
[DEBUG IRGEN] visitMulExp: 64
[DEBUG IRGEN] visitPrimaryExp: 64
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 64 created as 0x560d55b83fa0
[DEBUG] visitRelExp: left=0x560d55b75370, type=int, right=0x560d55b83fa0, type=int
[DEBUG IF] Creating condbr: %t304 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[64]=64;
[DEBUG IRGEN] visitStmt: s[64]=64;
[DEBUG IRGEN] HandleAssignStmt: s[64]=64;
[DEBUG IRGEN] EvalExpr: 64
[DEBUG IRGEN] visitAddExp: 64
[DEBUG IRGEN] visitMulExp: 64
[DEBUG IRGEN] visitPrimaryExp: 64
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 64 created as 0x560d55b83fa0
[DEBUG] EvalExpr: success, result = 0x560d55b83fa0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 64
[DEBUG IRGEN] visitAddExp: 64
[DEBUG IRGEN] visitMulExp: 64
[DEBUG IRGEN] visitPrimaryExp: 64
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 64 created as 0x560d55b83fa0
[DEBUG] EvalExpr: success, result = 0x560d55b83fa0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 65
[DEBUG IRGEN] visitMulExp: 65
[DEBUG IRGEN] visitPrimaryExp: 65
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 65 created as 0x560d55b75650
[DEBUG] visitRelExp: left=0x560d55b75d40, type=int, right=0x560d55b75650, type=int
[DEBUG IF] Creating condbr: %t307 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[65]=65;
[DEBUG IRGEN] visitStmt: s[65]=65;
[DEBUG IRGEN] HandleAssignStmt: s[65]=65;
[DEBUG IRGEN] EvalExpr: 65
[DEBUG IRGEN] visitAddExp: 65
[DEBUG IRGEN] visitMulExp: 65
[DEBUG IRGEN] visitPrimaryExp: 65
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 65 created as 0x560d55b75650
[DEBUG] EvalExpr: success, result = 0x560d55b75650
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 65
[DEBUG IRGEN] visitAddExp: 65
[DEBUG IRGEN] visitMulExp: 65
[DEBUG IRGEN] visitPrimaryExp: 65
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 65 created as 0x560d55b75650
[DEBUG] EvalExpr: success, result = 0x560d55b75650
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 66
[DEBUG IRGEN] visitMulExp: 66
[DEBUG IRGEN] visitPrimaryExp: 66
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 66 created as 0x560d55b757c0
[DEBUG] visitRelExp: left=0x560d55b85d60, type=int, right=0x560d55b757c0, type=int
[DEBUG IF] Creating condbr: %t310 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[66]=66;
[DEBUG IRGEN] visitStmt: s[66]=66;
[DEBUG IRGEN] HandleAssignStmt: s[66]=66;
[DEBUG IRGEN] EvalExpr: 66
[DEBUG IRGEN] visitAddExp: 66
[DEBUG IRGEN] visitMulExp: 66
[DEBUG IRGEN] visitPrimaryExp: 66
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 66 created as 0x560d55b757c0
[DEBUG] EvalExpr: success, result = 0x560d55b757c0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 66
[DEBUG IRGEN] visitAddExp: 66
[DEBUG IRGEN] visitMulExp: 66
[DEBUG IRGEN] visitPrimaryExp: 66
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 66 created as 0x560d55b757c0
[DEBUG] EvalExpr: success, result = 0x560d55b757c0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 67
[DEBUG IRGEN] visitMulExp: 67
[DEBUG IRGEN] visitPrimaryExp: 67
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 67 created as 0x560d55b86040
[DEBUG] visitRelExp: left=0x560d55b86440, type=int, right=0x560d55b86040, type=int
[DEBUG IF] Creating condbr: %t313 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[67]=67;
[DEBUG IRGEN] visitStmt: s[67]=67;
[DEBUG IRGEN] HandleAssignStmt: s[67]=67;
[DEBUG IRGEN] EvalExpr: 67
[DEBUG IRGEN] visitAddExp: 67
[DEBUG IRGEN] visitMulExp: 67
[DEBUG IRGEN] visitPrimaryExp: 67
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 67 created as 0x560d55b86040
[DEBUG] EvalExpr: success, result = 0x560d55b86040
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 67
[DEBUG IRGEN] visitAddExp: 67
[DEBUG IRGEN] visitMulExp: 67
[DEBUG IRGEN] visitPrimaryExp: 67
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 67 created as 0x560d55b86040
[DEBUG] EvalExpr: success, result = 0x560d55b86040
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 68
[DEBUG IRGEN] visitMulExp: 68
[DEBUG IRGEN] visitPrimaryExp: 68
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 68 created as 0x560d55b86720
[DEBUG] visitRelExp: left=0x560d55b86b20, type=int, right=0x560d55b86720, type=int
[DEBUG IF] Creating condbr: %t316 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[68]=68;
[DEBUG IRGEN] visitStmt: s[68]=68;
[DEBUG IRGEN] HandleAssignStmt: s[68]=68;
[DEBUG IRGEN] EvalExpr: 68
[DEBUG IRGEN] visitAddExp: 68
[DEBUG IRGEN] visitMulExp: 68
[DEBUG IRGEN] visitPrimaryExp: 68
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 68 created as 0x560d55b86720
[DEBUG] EvalExpr: success, result = 0x560d55b86720
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 68
[DEBUG IRGEN] visitAddExp: 68
[DEBUG IRGEN] visitMulExp: 68
[DEBUG IRGEN] visitPrimaryExp: 68
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 68 created as 0x560d55b86720
[DEBUG] EvalExpr: success, result = 0x560d55b86720
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 69
[DEBUG IRGEN] visitMulExp: 69
[DEBUG IRGEN] visitPrimaryExp: 69
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 69 created as 0x560d55b86e00
[DEBUG] visitRelExp: left=0x560d55b87200, type=int, right=0x560d55b86e00, type=int
[DEBUG IF] Creating condbr: %t319 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[69]=69;
[DEBUG IRGEN] visitStmt: s[69]=69;
[DEBUG IRGEN] HandleAssignStmt: s[69]=69;
[DEBUG IRGEN] EvalExpr: 69
[DEBUG IRGEN] visitAddExp: 69
[DEBUG IRGEN] visitMulExp: 69
[DEBUG IRGEN] visitPrimaryExp: 69
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 69 created as 0x560d55b86e00
[DEBUG] EvalExpr: success, result = 0x560d55b86e00
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 69
[DEBUG IRGEN] visitAddExp: 69
[DEBUG IRGEN] visitMulExp: 69
[DEBUG IRGEN] visitPrimaryExp: 69
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 69 created as 0x560d55b86e00
[DEBUG] EvalExpr: success, result = 0x560d55b86e00
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 70
[DEBUG IRGEN] visitMulExp: 70
[DEBUG IRGEN] visitPrimaryExp: 70
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 70 created as 0x560d55b874e0
[DEBUG] visitRelExp: left=0x560d55b878e0, type=int, right=0x560d55b874e0, type=int
[DEBUG IF] Creating condbr: %t322 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[70]=70;
[DEBUG IRGEN] visitStmt: s[70]=70;
[DEBUG IRGEN] HandleAssignStmt: s[70]=70;
[DEBUG IRGEN] EvalExpr: 70
[DEBUG IRGEN] visitAddExp: 70
[DEBUG IRGEN] visitMulExp: 70
[DEBUG IRGEN] visitPrimaryExp: 70
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 70 created as 0x560d55b874e0
[DEBUG] EvalExpr: success, result = 0x560d55b874e0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 70
[DEBUG IRGEN] visitAddExp: 70
[DEBUG IRGEN] visitMulExp: 70
[DEBUG IRGEN] visitPrimaryExp: 70
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 70 created as 0x560d55b874e0
[DEBUG] EvalExpr: success, result = 0x560d55b874e0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 71
[DEBUG IRGEN] visitMulExp: 71
[DEBUG IRGEN] visitPrimaryExp: 71
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 71 created as 0x560d55b87bc0
[DEBUG] visitRelExp: left=0x560d55b87fc0, type=int, right=0x560d55b87bc0, type=int
[DEBUG IF] Creating condbr: %t325 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[71]=71;
[DEBUG IRGEN] visitStmt: s[71]=71;
[DEBUG IRGEN] HandleAssignStmt: s[71]=71;
[DEBUG IRGEN] EvalExpr: 71
[DEBUG IRGEN] visitAddExp: 71
[DEBUG IRGEN] visitMulExp: 71
[DEBUG IRGEN] visitPrimaryExp: 71
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 71 created as 0x560d55b87bc0
[DEBUG] EvalExpr: success, result = 0x560d55b87bc0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 71
[DEBUG IRGEN] visitAddExp: 71
[DEBUG IRGEN] visitMulExp: 71
[DEBUG IRGEN] visitPrimaryExp: 71
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 71 created as 0x560d55b87bc0
[DEBUG] EvalExpr: success, result = 0x560d55b87bc0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 72
[DEBUG IRGEN] visitMulExp: 72
[DEBUG IRGEN] visitPrimaryExp: 72
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 72 created as 0x560d55b882a0
[DEBUG] visitRelExp: left=0x560d55b886a0, type=int, right=0x560d55b882a0, type=int
[DEBUG IF] Creating condbr: %t328 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[72]=72;
[DEBUG IRGEN] visitStmt: s[72]=72;
[DEBUG IRGEN] HandleAssignStmt: s[72]=72;
[DEBUG IRGEN] EvalExpr: 72
[DEBUG IRGEN] visitAddExp: 72
[DEBUG IRGEN] visitMulExp: 72
[DEBUG IRGEN] visitPrimaryExp: 72
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 72 created as 0x560d55b882a0
[DEBUG] EvalExpr: success, result = 0x560d55b882a0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 72
[DEBUG IRGEN] visitAddExp: 72
[DEBUG IRGEN] visitMulExp: 72
[DEBUG IRGEN] visitPrimaryExp: 72
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 72 created as 0x560d55b882a0
[DEBUG] EvalExpr: success, result = 0x560d55b882a0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 73
[DEBUG IRGEN] visitMulExp: 73
[DEBUG IRGEN] visitPrimaryExp: 73
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 73 created as 0x560d55b88980
[DEBUG] visitRelExp: left=0x560d55b88d80, type=int, right=0x560d55b88980, type=int
[DEBUG IF] Creating condbr: %t331 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[73]=73;
[DEBUG IRGEN] visitStmt: s[73]=73;
[DEBUG IRGEN] HandleAssignStmt: s[73]=73;
[DEBUG IRGEN] EvalExpr: 73
[DEBUG IRGEN] visitAddExp: 73
[DEBUG IRGEN] visitMulExp: 73
[DEBUG IRGEN] visitPrimaryExp: 73
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 73 created as 0x560d55b88980
[DEBUG] EvalExpr: success, result = 0x560d55b88980
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 73
[DEBUG IRGEN] visitAddExp: 73
[DEBUG IRGEN] visitMulExp: 73
[DEBUG IRGEN] visitPrimaryExp: 73
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 73 created as 0x560d55b88980
[DEBUG] EvalExpr: success, result = 0x560d55b88980
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 74
[DEBUG IRGEN] visitMulExp: 74
[DEBUG IRGEN] visitPrimaryExp: 74
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 74 created as 0x560d55b89060
[DEBUG] visitRelExp: left=0x560d55b89460, type=int, right=0x560d55b89060, type=int
[DEBUG IF] Creating condbr: %t334 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[74]=74;
[DEBUG IRGEN] visitStmt: s[74]=74;
[DEBUG IRGEN] HandleAssignStmt: s[74]=74;
[DEBUG IRGEN] EvalExpr: 74
[DEBUG IRGEN] visitAddExp: 74
[DEBUG IRGEN] visitMulExp: 74
[DEBUG IRGEN] visitPrimaryExp: 74
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 74 created as 0x560d55b89060
[DEBUG] EvalExpr: success, result = 0x560d55b89060
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 74
[DEBUG IRGEN] visitAddExp: 74
[DEBUG IRGEN] visitMulExp: 74
[DEBUG IRGEN] visitPrimaryExp: 74
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 74 created as 0x560d55b89060
[DEBUG] EvalExpr: success, result = 0x560d55b89060
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 75
[DEBUG IRGEN] visitMulExp: 75
[DEBUG IRGEN] visitPrimaryExp: 75
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 75 created as 0x560d55b89740
[DEBUG] visitRelExp: left=0x560d55b89b40, type=int, right=0x560d55b89740, type=int
[DEBUG IF] Creating condbr: %t337 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[75]=75;
[DEBUG IRGEN] visitStmt: s[75]=75;
[DEBUG IRGEN] HandleAssignStmt: s[75]=75;
[DEBUG IRGEN] EvalExpr: 75
[DEBUG IRGEN] visitAddExp: 75
[DEBUG IRGEN] visitMulExp: 75
[DEBUG IRGEN] visitPrimaryExp: 75
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 75 created as 0x560d55b89740
[DEBUG] EvalExpr: success, result = 0x560d55b89740
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 75
[DEBUG IRGEN] visitAddExp: 75
[DEBUG IRGEN] visitMulExp: 75
[DEBUG IRGEN] visitPrimaryExp: 75
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 75 created as 0x560d55b89740
[DEBUG] EvalExpr: success, result = 0x560d55b89740
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 76
[DEBUG IRGEN] visitMulExp: 76
[DEBUG IRGEN] visitPrimaryExp: 76
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 76 created as 0x560d55b89e20
[DEBUG] visitRelExp: left=0x560d55b8a220, type=int, right=0x560d55b89e20, type=int
[DEBUG IF] Creating condbr: %t340 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[76]=76;
[DEBUG IRGEN] visitStmt: s[76]=76;
[DEBUG IRGEN] HandleAssignStmt: s[76]=76;
[DEBUG IRGEN] EvalExpr: 76
[DEBUG IRGEN] visitAddExp: 76
[DEBUG IRGEN] visitMulExp: 76
[DEBUG IRGEN] visitPrimaryExp: 76
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 76 created as 0x560d55b89e20
[DEBUG] EvalExpr: success, result = 0x560d55b89e20
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 76
[DEBUG IRGEN] visitAddExp: 76
[DEBUG IRGEN] visitMulExp: 76
[DEBUG IRGEN] visitPrimaryExp: 76
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 76 created as 0x560d55b89e20
[DEBUG] EvalExpr: success, result = 0x560d55b89e20
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 77
[DEBUG IRGEN] visitMulExp: 77
[DEBUG IRGEN] visitPrimaryExp: 77
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 77 created as 0x560d55b8a500
[DEBUG] visitRelExp: left=0x560d55b8a900, type=int, right=0x560d55b8a500, type=int
[DEBUG IF] Creating condbr: %t343 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[77]=77;
[DEBUG IRGEN] visitStmt: s[77]=77;
[DEBUG IRGEN] HandleAssignStmt: s[77]=77;
[DEBUG IRGEN] EvalExpr: 77
[DEBUG IRGEN] visitAddExp: 77
[DEBUG IRGEN] visitMulExp: 77
[DEBUG IRGEN] visitPrimaryExp: 77
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 77 created as 0x560d55b8a500
[DEBUG] EvalExpr: success, result = 0x560d55b8a500
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 77
[DEBUG IRGEN] visitAddExp: 77
[DEBUG IRGEN] visitMulExp: 77
[DEBUG IRGEN] visitPrimaryExp: 77
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 77 created as 0x560d55b8a500
[DEBUG] EvalExpr: success, result = 0x560d55b8a500
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 78
[DEBUG IRGEN] visitMulExp: 78
[DEBUG IRGEN] visitPrimaryExp: 78
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 78 created as 0x560d55b8abe0
[DEBUG] visitRelExp: left=0x560d55b8afe0, type=int, right=0x560d55b8abe0, type=int
[DEBUG IF] Creating condbr: %t346 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[78]=78;
[DEBUG IRGEN] visitStmt: s[78]=78;
[DEBUG IRGEN] HandleAssignStmt: s[78]=78;
[DEBUG IRGEN] EvalExpr: 78
[DEBUG IRGEN] visitAddExp: 78
[DEBUG IRGEN] visitMulExp: 78
[DEBUG IRGEN] visitPrimaryExp: 78
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 78 created as 0x560d55b8abe0
[DEBUG] EvalExpr: success, result = 0x560d55b8abe0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 78
[DEBUG IRGEN] visitAddExp: 78
[DEBUG IRGEN] visitMulExp: 78
[DEBUG IRGEN] visitPrimaryExp: 78
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 78 created as 0x560d55b8abe0
[DEBUG] EvalExpr: success, result = 0x560d55b8abe0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 79
[DEBUG IRGEN] visitMulExp: 79
[DEBUG IRGEN] visitPrimaryExp: 79
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 79 created as 0x560d55b8b2c0
[DEBUG] visitRelExp: left=0x560d55b8b6c0, type=int, right=0x560d55b8b2c0, type=int
[DEBUG IF] Creating condbr: %t349 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[79]=79;
[DEBUG IRGEN] visitStmt: s[79]=79;
[DEBUG IRGEN] HandleAssignStmt: s[79]=79;
[DEBUG IRGEN] EvalExpr: 79
[DEBUG IRGEN] visitAddExp: 79
[DEBUG IRGEN] visitMulExp: 79
[DEBUG IRGEN] visitPrimaryExp: 79
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 79 created as 0x560d55b8b2c0
[DEBUG] EvalExpr: success, result = 0x560d55b8b2c0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 79
[DEBUG IRGEN] visitAddExp: 79
[DEBUG IRGEN] visitMulExp: 79
[DEBUG IRGEN] visitPrimaryExp: 79
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 79 created as 0x560d55b8b2c0
[DEBUG] EvalExpr: success, result = 0x560d55b8b2c0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 80
[DEBUG IRGEN] visitMulExp: 80
[DEBUG IRGEN] visitPrimaryExp: 80
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 80 created as 0x560d55b8b9a0
[DEBUG] visitRelExp: left=0x560d55b8bda0, type=int, right=0x560d55b8b9a0, type=int
[DEBUG IF] Creating condbr: %t352 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[80]=80;
[DEBUG IRGEN] visitStmt: s[80]=80;
[DEBUG IRGEN] HandleAssignStmt: s[80]=80;
[DEBUG IRGEN] EvalExpr: 80
[DEBUG IRGEN] visitAddExp: 80
[DEBUG IRGEN] visitMulExp: 80
[DEBUG IRGEN] visitPrimaryExp: 80
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 80 created as 0x560d55b8b9a0
[DEBUG] EvalExpr: success, result = 0x560d55b8b9a0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 80
[DEBUG IRGEN] visitAddExp: 80
[DEBUG IRGEN] visitMulExp: 80
[DEBUG IRGEN] visitPrimaryExp: 80
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 80 created as 0x560d55b8b9a0
[DEBUG] EvalExpr: success, result = 0x560d55b8b9a0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 81
[DEBUG IRGEN] visitMulExp: 81
[DEBUG IRGEN] visitPrimaryExp: 81
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 81 created as 0x560d55b8c080
[DEBUG] visitRelExp: left=0x560d55b8c480, type=int, right=0x560d55b8c080, type=int
[DEBUG IF] Creating condbr: %t355 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[81]=81;
[DEBUG IRGEN] visitStmt: s[81]=81;
[DEBUG IRGEN] HandleAssignStmt: s[81]=81;
[DEBUG IRGEN] EvalExpr: 81
[DEBUG IRGEN] visitAddExp: 81
[DEBUG IRGEN] visitMulExp: 81
[DEBUG IRGEN] visitPrimaryExp: 81
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 81 created as 0x560d55b8c080
[DEBUG] EvalExpr: success, result = 0x560d55b8c080
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 81
[DEBUG IRGEN] visitAddExp: 81
[DEBUG IRGEN] visitMulExp: 81
[DEBUG IRGEN] visitPrimaryExp: 81
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 81 created as 0x560d55b8c080
[DEBUG] EvalExpr: success, result = 0x560d55b8c080
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 82
[DEBUG IRGEN] visitMulExp: 82
[DEBUG IRGEN] visitPrimaryExp: 82
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 82 created as 0x560d55b8c760
[DEBUG] visitRelExp: left=0x560d55b8cb60, type=int, right=0x560d55b8c760, type=int
[DEBUG IF] Creating condbr: %t358 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[82]=82;
[DEBUG IRGEN] visitStmt: s[82]=82;
[DEBUG IRGEN] HandleAssignStmt: s[82]=82;
[DEBUG IRGEN] EvalExpr: 82
[DEBUG IRGEN] visitAddExp: 82
[DEBUG IRGEN] visitMulExp: 82
[DEBUG IRGEN] visitPrimaryExp: 82
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 82 created as 0x560d55b8c760
[DEBUG] EvalExpr: success, result = 0x560d55b8c760
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 82
[DEBUG IRGEN] visitAddExp: 82
[DEBUG IRGEN] visitMulExp: 82
[DEBUG IRGEN] visitPrimaryExp: 82
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 82 created as 0x560d55b8c760
[DEBUG] EvalExpr: success, result = 0x560d55b8c760
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 83
[DEBUG IRGEN] visitMulExp: 83
[DEBUG IRGEN] visitPrimaryExp: 83
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 83 created as 0x560d55b8ce40
[DEBUG] visitRelExp: left=0x560d55b8d240, type=int, right=0x560d55b8ce40, type=int
[DEBUG IF] Creating condbr: %t361 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[83]=83;
[DEBUG IRGEN] visitStmt: s[83]=83;
[DEBUG IRGEN] HandleAssignStmt: s[83]=83;
[DEBUG IRGEN] EvalExpr: 83
[DEBUG IRGEN] visitAddExp: 83
[DEBUG IRGEN] visitMulExp: 83
[DEBUG IRGEN] visitPrimaryExp: 83
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 83 created as 0x560d55b8ce40
[DEBUG] EvalExpr: success, result = 0x560d55b8ce40
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 83
[DEBUG IRGEN] visitAddExp: 83
[DEBUG IRGEN] visitMulExp: 83
[DEBUG IRGEN] visitPrimaryExp: 83
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 83 created as 0x560d55b8ce40
[DEBUG] EvalExpr: success, result = 0x560d55b8ce40
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 84
[DEBUG IRGEN] visitMulExp: 84
[DEBUG IRGEN] visitPrimaryExp: 84
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 84 created as 0x560d55b8d520
[DEBUG] visitRelExp: left=0x560d55b8d920, type=int, right=0x560d55b8d520, type=int
[DEBUG IF] Creating condbr: %t364 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[84]=84;
[DEBUG IRGEN] visitStmt: s[84]=84;
[DEBUG IRGEN] HandleAssignStmt: s[84]=84;
[DEBUG IRGEN] EvalExpr: 84
[DEBUG IRGEN] visitAddExp: 84
[DEBUG IRGEN] visitMulExp: 84
[DEBUG IRGEN] visitPrimaryExp: 84
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 84 created as 0x560d55b8d520
[DEBUG] EvalExpr: success, result = 0x560d55b8d520
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 84
[DEBUG IRGEN] visitAddExp: 84
[DEBUG IRGEN] visitMulExp: 84
[DEBUG IRGEN] visitPrimaryExp: 84
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 84 created as 0x560d55b8d520
[DEBUG] EvalExpr: success, result = 0x560d55b8d520
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 85
[DEBUG IRGEN] visitMulExp: 85
[DEBUG IRGEN] visitPrimaryExp: 85
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 85 created as 0x560d55b8dc00
[DEBUG] visitRelExp: left=0x560d55b8e000, type=int, right=0x560d55b8dc00, type=int
[DEBUG IF] Creating condbr: %t367 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[85]=85;
[DEBUG IRGEN] visitStmt: s[85]=85;
[DEBUG IRGEN] HandleAssignStmt: s[85]=85;
[DEBUG IRGEN] EvalExpr: 85
[DEBUG IRGEN] visitAddExp: 85
[DEBUG IRGEN] visitMulExp: 85
[DEBUG IRGEN] visitPrimaryExp: 85
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 85 created as 0x560d55b8dc00
[DEBUG] EvalExpr: success, result = 0x560d55b8dc00
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 85
[DEBUG IRGEN] visitAddExp: 85
[DEBUG IRGEN] visitMulExp: 85
[DEBUG IRGEN] visitPrimaryExp: 85
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 85 created as 0x560d55b8dc00
[DEBUG] EvalExpr: success, result = 0x560d55b8dc00
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 86
[DEBUG IRGEN] visitMulExp: 86
[DEBUG IRGEN] visitPrimaryExp: 86
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 86 created as 0x560d55b8e2e0
[DEBUG] visitRelExp: left=0x560d55b8e6e0, type=int, right=0x560d55b8e2e0, type=int
[DEBUG IF] Creating condbr: %t370 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[86]=86;
[DEBUG IRGEN] visitStmt: s[86]=86;
[DEBUG IRGEN] HandleAssignStmt: s[86]=86;
[DEBUG IRGEN] EvalExpr: 86
[DEBUG IRGEN] visitAddExp: 86
[DEBUG IRGEN] visitMulExp: 86
[DEBUG IRGEN] visitPrimaryExp: 86
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 86 created as 0x560d55b8e2e0
[DEBUG] EvalExpr: success, result = 0x560d55b8e2e0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 86
[DEBUG IRGEN] visitAddExp: 86
[DEBUG IRGEN] visitMulExp: 86
[DEBUG IRGEN] visitPrimaryExp: 86
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 86 created as 0x560d55b8e2e0
[DEBUG] EvalExpr: success, result = 0x560d55b8e2e0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 87
[DEBUG IRGEN] visitMulExp: 87
[DEBUG IRGEN] visitPrimaryExp: 87
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 87 created as 0x560d55b8e9c0
[DEBUG] visitRelExp: left=0x560d55b8edc0, type=int, right=0x560d55b8e9c0, type=int
[DEBUG IF] Creating condbr: %t373 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[87]=87;
[DEBUG IRGEN] visitStmt: s[87]=87;
[DEBUG IRGEN] HandleAssignStmt: s[87]=87;
[DEBUG IRGEN] EvalExpr: 87
[DEBUG IRGEN] visitAddExp: 87
[DEBUG IRGEN] visitMulExp: 87
[DEBUG IRGEN] visitPrimaryExp: 87
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 87 created as 0x560d55b8e9c0
[DEBUG] EvalExpr: success, result = 0x560d55b8e9c0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 87
[DEBUG IRGEN] visitAddExp: 87
[DEBUG IRGEN] visitMulExp: 87
[DEBUG IRGEN] visitPrimaryExp: 87
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 87 created as 0x560d55b8e9c0
[DEBUG] EvalExpr: success, result = 0x560d55b8e9c0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 88
[DEBUG IRGEN] visitMulExp: 88
[DEBUG IRGEN] visitPrimaryExp: 88
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 88 created as 0x560d55b8f0a0
[DEBUG] visitRelExp: left=0x560d55b8f4a0, type=int, right=0x560d55b8f0a0, type=int
[DEBUG IF] Creating condbr: %t376 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[88]=88;
[DEBUG IRGEN] visitStmt: s[88]=88;
[DEBUG IRGEN] HandleAssignStmt: s[88]=88;
[DEBUG IRGEN] EvalExpr: 88
[DEBUG IRGEN] visitAddExp: 88
[DEBUG IRGEN] visitMulExp: 88
[DEBUG IRGEN] visitPrimaryExp: 88
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 88 created as 0x560d55b8f0a0
[DEBUG] EvalExpr: success, result = 0x560d55b8f0a0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 88
[DEBUG IRGEN] visitAddExp: 88
[DEBUG IRGEN] visitMulExp: 88
[DEBUG IRGEN] visitPrimaryExp: 88
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 88 created as 0x560d55b8f0a0
[DEBUG] EvalExpr: success, result = 0x560d55b8f0a0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 89
[DEBUG IRGEN] visitMulExp: 89
[DEBUG IRGEN] visitPrimaryExp: 89
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 89 created as 0x560d55b8f780
[DEBUG] visitRelExp: left=0x560d55b8fb80, type=int, right=0x560d55b8f780, type=int
[DEBUG IF] Creating condbr: %t379 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[89]=89;
[DEBUG IRGEN] visitStmt: s[89]=89;
[DEBUG IRGEN] HandleAssignStmt: s[89]=89;
[DEBUG IRGEN] EvalExpr: 89
[DEBUG IRGEN] visitAddExp: 89
[DEBUG IRGEN] visitMulExp: 89
[DEBUG IRGEN] visitPrimaryExp: 89
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 89 created as 0x560d55b8f780
[DEBUG] EvalExpr: success, result = 0x560d55b8f780
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 89
[DEBUG IRGEN] visitAddExp: 89
[DEBUG IRGEN] visitMulExp: 89
[DEBUG IRGEN] visitPrimaryExp: 89
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 89 created as 0x560d55b8f780
[DEBUG] EvalExpr: success, result = 0x560d55b8f780
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 90
[DEBUG IRGEN] visitMulExp: 90
[DEBUG IRGEN] visitPrimaryExp: 90
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 90 created as 0x560d55b8fe60
[DEBUG] visitRelExp: left=0x560d55b90260, type=int, right=0x560d55b8fe60, type=int
[DEBUG IF] Creating condbr: %t382 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[90]=90;
[DEBUG IRGEN] visitStmt: s[90]=90;
[DEBUG IRGEN] HandleAssignStmt: s[90]=90;
[DEBUG IRGEN] EvalExpr: 90
[DEBUG IRGEN] visitAddExp: 90
[DEBUG IRGEN] visitMulExp: 90
[DEBUG IRGEN] visitPrimaryExp: 90
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 90 created as 0x560d55b8fe60
[DEBUG] EvalExpr: success, result = 0x560d55b8fe60
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 90
[DEBUG IRGEN] visitAddExp: 90
[DEBUG IRGEN] visitMulExp: 90
[DEBUG IRGEN] visitPrimaryExp: 90
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 90 created as 0x560d55b8fe60
[DEBUG] EvalExpr: success, result = 0x560d55b8fe60
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 91
[DEBUG IRGEN] visitMulExp: 91
[DEBUG IRGEN] visitPrimaryExp: 91
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 91 created as 0x560d55b90540
[DEBUG] visitRelExp: left=0x560d55b90940, type=int, right=0x560d55b90540, type=int
[DEBUG IF] Creating condbr: %t385 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[91]=91;
[DEBUG IRGEN] visitStmt: s[91]=91;
[DEBUG IRGEN] HandleAssignStmt: s[91]=91;
[DEBUG IRGEN] EvalExpr: 91
[DEBUG IRGEN] visitAddExp: 91
[DEBUG IRGEN] visitMulExp: 91
[DEBUG IRGEN] visitPrimaryExp: 91
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 91 created as 0x560d55b90540
[DEBUG] EvalExpr: success, result = 0x560d55b90540
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 91
[DEBUG IRGEN] visitAddExp: 91
[DEBUG IRGEN] visitMulExp: 91
[DEBUG IRGEN] visitPrimaryExp: 91
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 91 created as 0x560d55b90540
[DEBUG] EvalExpr: success, result = 0x560d55b90540
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 92
[DEBUG IRGEN] visitMulExp: 92
[DEBUG IRGEN] visitPrimaryExp: 92
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 92 created as 0x560d55b90c20
[DEBUG] visitRelExp: left=0x560d55b91020, type=int, right=0x560d55b90c20, type=int
[DEBUG IF] Creating condbr: %t388 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}
[DEBUG IRGEN] visitBlock: {s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[92]=92;
[DEBUG IRGEN] visitStmt: s[92]=92;
[DEBUG IRGEN] HandleAssignStmt: s[92]=92;
[DEBUG IRGEN] EvalExpr: 92
[DEBUG IRGEN] visitAddExp: 92
[DEBUG IRGEN] visitMulExp: 92
[DEBUG IRGEN] visitPrimaryExp: 92
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 92 created as 0x560d55b90c20
[DEBUG] EvalExpr: success, result = 0x560d55b90c20
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 92
[DEBUG IRGEN] visitAddExp: 92
[DEBUG IRGEN] visitMulExp: 92
[DEBUG IRGEN] visitPrimaryExp: 92
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 92 created as 0x560d55b90c20
[DEBUG] EvalExpr: success, result = 0x560d55b90c20
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}
[DEBUG IRGEN] visitStmt: if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 93
[DEBUG IRGEN] visitMulExp: 93
[DEBUG IRGEN] visitPrimaryExp: 93
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 93 created as 0x560d55b91300
[DEBUG] visitRelExp: left=0x560d55b91650, type=int, right=0x560d55b91300, type=int
[DEBUG IF] Creating condbr: %t391 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}
[DEBUG IRGEN] visitBlock: {s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}
[DEBUG IRGEN] visitBlockItem: s[93]=93;
[DEBUG IRGEN] visitStmt: s[93]=93;
[DEBUG IRGEN] HandleAssignStmt: s[93]=93;
[DEBUG IRGEN] EvalExpr: 93
[DEBUG IRGEN] visitAddExp: 93
[DEBUG IRGEN] visitMulExp: 93
[DEBUG IRGEN] visitPrimaryExp: 93
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 93 created as 0x560d55b91300
[DEBUG] EvalExpr: success, result = 0x560d55b91300
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 93
[DEBUG IRGEN] visitAddExp: 93
[DEBUG IRGEN] visitMulExp: 93
[DEBUG IRGEN] visitPrimaryExp: 93
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 93 created as 0x560d55b91300
[DEBUG] EvalExpr: success, result = 0x560d55b91300
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}
[DEBUG IRGEN] visitStmt: if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 94
[DEBUG IRGEN] visitMulExp: 94
[DEBUG IRGEN] visitPrimaryExp: 94
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 94 created as 0x560d55b919e0
[DEBUG] visitRelExp: left=0x560d55b91d30, type=int, right=0x560d55b919e0, type=int
[DEBUG IF] Creating condbr: %t394 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}
[DEBUG IRGEN] visitBlock: {s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}
[DEBUG IRGEN] visitBlockItem: s[94]=94;
[DEBUG IRGEN] visitStmt: s[94]=94;
[DEBUG IRGEN] HandleAssignStmt: s[94]=94;
[DEBUG IRGEN] EvalExpr: 94
[DEBUG IRGEN] visitAddExp: 94
[DEBUG IRGEN] visitMulExp: 94
[DEBUG IRGEN] visitPrimaryExp: 94
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 94 created as 0x560d55b919e0
[DEBUG] EvalExpr: success, result = 0x560d55b919e0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 94
[DEBUG IRGEN] visitAddExp: 94
[DEBUG IRGEN] visitMulExp: 94
[DEBUG IRGEN] visitPrimaryExp: 94
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 94 created as 0x560d55b919e0
[DEBUG] EvalExpr: success, result = 0x560d55b919e0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}
[DEBUG IRGEN] visitStmt: if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 95
[DEBUG IRGEN] visitMulExp: 95
[DEBUG IRGEN] visitPrimaryExp: 95
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 95 created as 0x560d55b920c0
[DEBUG] visitRelExp: left=0x560d55b924e0, type=int, right=0x560d55b920c0, type=int
[DEBUG IF] Creating condbr: %t397 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}
[DEBUG IRGEN] visitBlock: {s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}
[DEBUG IRGEN] visitBlockItem: s[95]=95;
[DEBUG IRGEN] visitStmt: s[95]=95;
[DEBUG IRGEN] HandleAssignStmt: s[95]=95;
[DEBUG IRGEN] EvalExpr: 95
[DEBUG IRGEN] visitAddExp: 95
[DEBUG IRGEN] visitMulExp: 95
[DEBUG IRGEN] visitPrimaryExp: 95
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 95 created as 0x560d55b920c0
[DEBUG] EvalExpr: success, result = 0x560d55b920c0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 95
[DEBUG IRGEN] visitAddExp: 95
[DEBUG IRGEN] visitMulExp: 95
[DEBUG IRGEN] visitPrimaryExp: 95
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 95 created as 0x560d55b920c0
[DEBUG] EvalExpr: success, result = 0x560d55b920c0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}
[DEBUG IRGEN] visitStmt: if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}
[DEBUG IRGEN] HandleIfStmt: if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 96
[DEBUG IRGEN] visitMulExp: 96
[DEBUG IRGEN] visitPrimaryExp: 96
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 96 created as 0x560d55b927a0
[DEBUG] visitRelExp: left=0x560d55b92b50, type=int, right=0x560d55b927a0, type=int
[DEBUG IF] Creating condbr: %t400 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}
[DEBUG IRGEN] visitBlock: {s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}
[DEBUG IRGEN] visitBlockItem: s[96]=96;
[DEBUG IRGEN] visitStmt: s[96]=96;
[DEBUG IRGEN] HandleAssignStmt: s[96]=96;
[DEBUG IRGEN] EvalExpr: 96
[DEBUG IRGEN] visitAddExp: 96
[DEBUG IRGEN] visitMulExp: 96
[DEBUG IRGEN] visitPrimaryExp: 96
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 96 created as 0x560d55b927a0
[DEBUG] EvalExpr: success, result = 0x560d55b927a0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 96
[DEBUG IRGEN] visitAddExp: 96
[DEBUG IRGEN] visitMulExp: 96
[DEBUG IRGEN] visitPrimaryExp: 96
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 96 created as 0x560d55b927a0
[DEBUG] EvalExpr: success, result = 0x560d55b927a0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}
[DEBUG IRGEN] visitStmt: if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}
[DEBUG IRGEN] HandleIfStmt: if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 97
[DEBUG IRGEN] visitMulExp: 97
[DEBUG IRGEN] visitPrimaryExp: 97
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 97 created as 0x560d55b93250
[DEBUG] visitRelExp: left=0x560d55b931d0, type=int, right=0x560d55b93250, type=int
[DEBUG IF] Creating condbr: %t403 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}
[DEBUG IRGEN] visitBlock: {s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}
[DEBUG IRGEN] visitBlockItem: s[97]=97;
[DEBUG IRGEN] visitStmt: s[97]=97;
[DEBUG IRGEN] HandleAssignStmt: s[97]=97;
[DEBUG IRGEN] EvalExpr: 97
[DEBUG IRGEN] visitAddExp: 97
[DEBUG IRGEN] visitMulExp: 97
[DEBUG IRGEN] visitPrimaryExp: 97
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 97 created as 0x560d55b93250
[DEBUG] EvalExpr: success, result = 0x560d55b93250
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 97
[DEBUG IRGEN] visitAddExp: 97
[DEBUG IRGEN] visitMulExp: 97
[DEBUG IRGEN] visitPrimaryExp: 97
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 97 created as 0x560d55b93250
[DEBUG] EvalExpr: success, result = 0x560d55b93250
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>98){s[98]=98;if(i>99){s[99]=99;}}
[DEBUG IRGEN] visitStmt: if(i>98){s[98]=98;if(i>99){s[99]=99;}}
[DEBUG IRGEN] HandleIfStmt: if(i>98){s[98]=98;if(i>99){s[99]=99;}}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 98
[DEBUG IRGEN] visitMulExp: 98
[DEBUG IRGEN] visitPrimaryExp: 98
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 98 created as 0x560d55b938e0
[DEBUG] visitRelExp: left=0x560d55b93860, type=int, right=0x560d55b938e0, type=int
[DEBUG IF] Creating condbr: %t406 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[98]=98;if(i>99){s[99]=99;}}
[DEBUG IRGEN] visitBlock: {s[98]=98;if(i>99){s[99]=99;}}
[DEBUG IRGEN] visitBlockItem: s[98]=98;
[DEBUG IRGEN] visitStmt: s[98]=98;
[DEBUG IRGEN] HandleAssignStmt: s[98]=98;
[DEBUG IRGEN] EvalExpr: 98
[DEBUG IRGEN] visitAddExp: 98
[DEBUG IRGEN] visitMulExp: 98
[DEBUG IRGEN] visitPrimaryExp: 98
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 98 created as 0x560d55b938e0
[DEBUG] EvalExpr: success, result = 0x560d55b938e0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 98
[DEBUG IRGEN] visitAddExp: 98
[DEBUG IRGEN] visitMulExp: 98
[DEBUG IRGEN] visitPrimaryExp: 98
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 98 created as 0x560d55b938e0
[DEBUG] EvalExpr: success, result = 0x560d55b938e0
[DEBUG] current insert block: then
[DEBUG IRGEN] visitBlockItem: if(i>99){s[99]=99;}
[DEBUG IRGEN] visitStmt: if(i>99){s[99]=99;}
[DEBUG IRGEN] HandleIfStmt: if(i>99){s[99]=99;}
[DEBUG IF] thenBlock: then
[DEBUG IF] mergeBlock: merge
[DEBUG IF] current insert block before cond: then
[DEBUG IRGEN] visitAddExp: i
[DEBUG IRGEN] visitMulExp: i
[DEBUG IRGEN] visitPrimaryExp: i
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: i
[DEBUG IRGEN] visitAddExp: 99
[DEBUG IRGEN] visitMulExp: 99
[DEBUG IRGEN] visitPrimaryExp: 99
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 99 created as 0x560d55b93fc0
[DEBUG] visitRelExp: left=0x560d55b93f40, type=int, right=0x560d55b93fc0, type=int
[DEBUG IF] Creating condbr: %t409 -> then, merge
[DEBUG IF] Generating then branch in block: then
[DEBUG IRGEN] visitStmt: {s[99]=99;}
[DEBUG IRGEN] visitBlock: {s[99]=99;}
[DEBUG IRGEN] visitBlockItem: s[99]=99;
[DEBUG IRGEN] visitStmt: s[99]=99;
[DEBUG IRGEN] HandleAssignStmt: s[99]=99;
[DEBUG IRGEN] EvalExpr: 99
[DEBUG IRGEN] visitAddExp: 99
[DEBUG IRGEN] visitMulExp: 99
[DEBUG IRGEN] visitPrimaryExp: 99
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 99 created as 0x560d55b93fc0
[DEBUG] EvalExpr: success, result = 0x560d55b93fc0
[DEBUG] HandleAssignStmt: assigning to s
[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40
[DEBUG IRGEN] EvalExpr: 99
[DEBUG IRGEN] visitAddExp: 99
[DEBUG IRGEN] visitMulExp: 99
[DEBUG IRGEN] visitPrimaryExp: 99
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 99 created as 0x560d55b93fc0
[DEBUG] EvalExpr: success, result = 0x560d55b93fc0
[DEBUG] current insert block: then
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IF] then branch terminated: 0
[DEBUG IF] Adding br to merge block from then
[DEBUG IF] then block has terminator: 1
[DEBUG IF] thenTerminated=0, elseTerminated=0
[DEBUG IF] No else, setting insert point to merge block: merge
[DEBUG IF] Final insert block: merge
[DEBUG] current insert block: merge
[DEBUG IRGEN] visitBlockItem: j=j+1;
[DEBUG IRGEN] visitStmt: j=j+1;
[DEBUG IRGEN] HandleAssignStmt: j=j+1;
[DEBUG IRGEN] EvalExpr: j+1
[DEBUG IRGEN] visitAddExp: j+1
[DEBUG IRGEN] visitAddExp: j
[DEBUG IRGEN] visitMulExp: j
[DEBUG IRGEN] visitPrimaryExp: j
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: j
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0
[DEBUG] visitAddExp: left=0x560d55b988d0, type=int, right=0x560d55b656a0, type=int
[DEBUG] EvalExpr: success, result = 0x560d55b989c0
[DEBUG] HandleAssignStmt: assigning to j
[DEBUG] HandleAssignStmt: found in storage_map_ for j, ptr = 0x560d55b5cd80
[DEBUG] HandleAssignStmt: scalar assignment to j, ptr = 0x560d55b5cd80, rhs = 0x560d55b989c0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: merge
[DEBUG IRGEN] visitBlockItem: intm=0;
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: m
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 m
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: merge
[DEBUG IRGEN] visitBlockItem: while(m<100){sum=sum+s[m];m=m+1;}
[DEBUG IRGEN] visitStmt: while(m<100){sum=sum+s[m];m=m+1;}
[DEBUG IRGEN] HandleWhileStmt: while(m<100){sum=sum+s[m];m=m+1;}
[DEBUG WHILE] Current insert block before while: merge
[DEBUG WHILE] condBlock: while.cond
[DEBUG WHILE] bodyBlock: while.body
[DEBUG WHILE] exitBlock: while.exit
[DEBUG WHILE] Adding br to condBlock from current block
[DEBUG WHILE] loopStack size: 2
[DEBUG WHILE] Generating condition in block: while.cond
[DEBUG IRGEN] visitAddExp: m
[DEBUG IRGEN] visitMulExp: m
[DEBUG IRGEN] visitPrimaryExp: m
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: m
[DEBUG IRGEN] visitAddExp: 100
[DEBUG IRGEN] visitMulExp: 100
[DEBUG IRGEN] visitPrimaryExp: 100
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 100 created as 0x560d55b651b0
[DEBUG] visitRelExp: left=0x560d55b98f80, type=int, right=0x560d55b651b0, type=int
[DEBUG WHILE] condBlock has terminator: 1
[DEBUG WHILE] Generating body in block: while.body
[DEBUG IRGEN] visitStmt: {sum=sum+s[m];m=m+1;}
[DEBUG IRGEN] visitBlock: {sum=sum+s[m];m=m+1;}
[DEBUG IRGEN] visitBlockItem: sum=sum+s[m];
[DEBUG IRGEN] visitStmt: sum=sum+s[m];
[DEBUG IRGEN] HandleAssignStmt: sum=sum+s[m];
[DEBUG IRGEN] EvalExpr: sum+s[m]
[DEBUG IRGEN] visitAddExp: sum+s[m]
[DEBUG IRGEN] visitAddExp: sum
[DEBUG IRGEN] visitMulExp: sum
[DEBUG IRGEN] visitPrimaryExp: sum
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: sum
[DEBUG IRGEN] visitMulExp: s[m]
[DEBUG IRGEN] visitPrimaryExp: s[m]
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: s
[DEBUG IRGEN] EvalExpr: m
[DEBUG IRGEN] visitAddExp: m
[DEBUG IRGEN] visitMulExp: m
[DEBUG IRGEN] visitPrimaryExp: m
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: m
[DEBUG] EvalExpr: success, result = 0x560d55b992e0
[DEBUG] visitAddExp: left=0x560d55b99220, type=int, right=0x560d55b99450, type=int
[DEBUG] EvalExpr: success, result = 0x560d55b994d0
[DEBUG] HandleAssignStmt: assigning to sum
[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x560d559ff670
[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x560d559ff670, rhs = 0x560d55b994d0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: while.body
[DEBUG IRGEN] visitBlockItem: m=m+1;
[DEBUG IRGEN] visitStmt: m=m+1;
[DEBUG IRGEN] HandleAssignStmt: m=m+1;
[DEBUG IRGEN] EvalExpr: m+1
[DEBUG IRGEN] visitAddExp: m+1
[DEBUG IRGEN] visitAddExp: m
[DEBUG IRGEN] visitMulExp: m
[DEBUG IRGEN] visitPrimaryExp: m
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: m
[DEBUG IRGEN] visitMulExp: 1
[DEBUG IRGEN] visitPrimaryExp: 1
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0
[DEBUG] visitAddExp: left=0x560d55b99730, type=int, right=0x560d55b656a0, type=int
[DEBUG] EvalExpr: success, result = 0x560d55b997b0
[DEBUG] HandleAssignStmt: assigning to m
[DEBUG] HandleAssignStmt: found in storage_map_ for m, ptr = 0x560d55b98b30
[DEBUG] HandleAssignStmt: scalar assignment to m, ptr = 0x560d55b98b30, rhs = 0x560d55b997b0
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: while.body
[DEBUG WHILE] body terminated: 0
[DEBUG WHILE] Adding br to condBlock from body
[DEBUG WHILE] bodyBlock has terminator: 1
[DEBUG WHILE] loopStack size after pop: 1
[DEBUG WHILE] Setting insert point to exitBlock: while.exit
[DEBUG WHILE] exitBlock has terminator before return: 0
[DEBUG] current insert block: while.exit
[DEBUG IRGEN] visitBlockItem: sum=sum%65535;
[DEBUG IRGEN] visitStmt: sum=sum%65535;
[DEBUG IRGEN] HandleAssignStmt: sum=sum%65535;
[DEBUG IRGEN] EvalExpr: sum%65535
[DEBUG IRGEN] visitAddExp: sum%65535
[DEBUG IRGEN] visitMulExp: sum%65535
[DEBUG IRGEN] visitMulExp: sum
[DEBUG IRGEN] visitPrimaryExp: sum
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: sum
[DEBUG IRGEN] visitPrimaryExp: 65535
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 65535 created as 0x560d55b99b10
[DEBUG] visitMulExp: left=0x560d55b99a90, type=int, right=0x560d55b99b10, type=int
[DEBUG] EvalExpr: success, result = 0x560d55b99b90
[DEBUG] HandleAssignStmt: assigning to sum
[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x560d559ff670
[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x560d559ff670, rhs = 0x560d55b99b90
[DEBUG] Is int32: 0
[DEBUG] Is float: 0
[DEBUG] Is ptr int32: 1
[DEBUG] Is ptr float: 0
[DEBUG] Is array: 0
[DEBUG] Value is int32: 1
[DEBUG] current insert block: while.exit
[DEBUG WHILE] body terminated: 0
[DEBUG WHILE] Adding br to condBlock from body
[DEBUG WHILE] bodyBlock has terminator: 1
[DEBUG WHILE] loopStack size after pop: 0
[DEBUG WHILE] Setting insert point to exitBlock: while.exit
[DEBUG WHILE] exitBlock has terminator before return: 0
[DEBUG] current insert block: while.exit
[DEBUG IRGEN] visitBlockItem: returnsum;
[DEBUG IRGEN] visitStmt: returnsum;
[DEBUG IRGEN] HandleReturnStmt: returnsum;
[DEBUG IRGEN] EvalExpr: sum
[DEBUG IRGEN] visitAddExp: sum
[DEBUG IRGEN] visitMulExp: sum
[DEBUG IRGEN] visitPrimaryExp: sum
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: sum
[DEBUG] EvalExpr: success, result = 0x560d55b99e30
[DEBUG] visitFuncDef: 函数 func 生成完成
[DEBUG IRGEN] visitFuncDef: main
[DEBUG] visitFuncDef: 创建函数 main，返回类型: int，参数数量: 0
[DEBUG] visitFuncDef: 函数对象地址: 0x560d55b99f90
[DEBUG] visitFuncDef: 开始生成函数体
[DEBUG IRGEN] visitBlock: {starttime();intloopcount=getint();putint(func(loopcount));putch(10);stoptime();return0;}
[DEBUG IRGEN] visitBlockItem: starttime();
[DEBUG IRGEN] visitStmt: starttime();
[DEBUG IRGEN] EvalExpr: starttime()
[DEBUG IRGEN] visitAddExp: starttime()
[DEBUG IRGEN] visitMulExp: starttime()
[DEBUG IRGEN] visitCallExp: 调用函数 starttime
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: intloopcount=getint();
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: loopcount
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理局部变量
[DEBUG] HandleLocalVariable: 开始处理局部变量 loopcount
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: getint()
[DEBUG IRGEN] visitAddExp: getint()
[DEBUG IRGEN] visitMulExp: getint()
[DEBUG IRGEN] visitCallExp: 调用函数 getint
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x560d55b9a150
[DEBUG] EvalExpr: success, result = 0x560d55b9a150
[DEBUG] visitDecl: 声明处理完成
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putint(func(loopcount));
[DEBUG IRGEN] visitStmt: putint(func(loopcount));
[DEBUG IRGEN] EvalExpr: putint(func(loopcount))
[DEBUG IRGEN] visitAddExp: putint(func(loopcount))
[DEBUG IRGEN] visitMulExp: putint(func(loopcount))
[DEBUG IRGEN] visitCallExp: 调用函数 putint
[DEBUG IRGEN] EvalExpr: func(loopcount)
[DEBUG IRGEN] visitAddExp: func(loopcount)
[DEBUG IRGEN] visitMulExp: func(loopcount)
[DEBUG IRGEN] visitCallExp: 调用函数 func
[DEBUG IRGEN] EvalExpr: loopcount
[DEBUG IRGEN] visitAddExp: loopcount
[DEBUG IRGEN] visitMulExp: loopcount
[DEBUG IRGEN] visitPrimaryExp: loopcount
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: visiting lVal
[DEBUG] visitLVal: loopcount
[DEBUG] EvalExpr: success, result = 0x560d55b9a2a0
[DEBUG IRGEN] visitCallExp: 收集到 1 个参数
[DEBUG IRGEN] visitCallExp: 函数调用完成，返回值 0x560d55b9a340
[DEBUG] EvalExpr: success, result = 0x560d55b9a340
[DEBUG IRGEN] visitCallExp: 收集到 1 个参数
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: putch(10);
[DEBUG IRGEN] visitStmt: putch(10);
[DEBUG IRGEN] EvalExpr: putch(10)
[DEBUG IRGEN] visitAddExp: putch(10)
[DEBUG IRGEN] visitMulExp: putch(10)
[DEBUG IRGEN] visitCallExp: 调用函数 putch
[DEBUG IRGEN] EvalExpr: 10
[DEBUG IRGEN] visitAddExp: 10
[DEBUG IRGEN] visitMulExp: 10
[DEBUG IRGEN] visitPrimaryExp: 10
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 10 created as 0x560d55b6a090
[DEBUG] EvalExpr: success, result = 0x560d55b6a090
[DEBUG IRGEN] visitCallExp: 收集到 1 个参数
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: stoptime();
[DEBUG IRGEN] visitStmt: stoptime();
[DEBUG IRGEN] EvalExpr: stoptime()
[DEBUG IRGEN] visitAddExp: stoptime()
[DEBUG IRGEN] visitMulExp: stoptime()
[DEBUG IRGEN] visitCallExp: 调用函数 stoptime
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] current insert block: entry
[DEBUG IRGEN] visitBlockItem: return0;
[DEBUG IRGEN] visitStmt: return0;
[DEBUG IRGEN] HandleReturnStmt: return0;
[DEBUG IRGEN] EvalExpr: 0
[DEBUG IRGEN] visitAddExp: 0
[DEBUG IRGEN] visitMulExp: 0
[DEBUG IRGEN] visitPrimaryExp: 0
[DEBUG] visitPrimaryExp
[DEBUG] EvalExpr: success, result = 0x560d55b3f750
[DEBUG] visitFuncDef: 函数 main 生成完成
define i32 @getint() {
entry:
}
define i32 @getch() {
entry:
}
define i32 @getarray() {
entry:
}
define void @putint() {
entry:
}
define void @putch() {
entry:
}
define void @putarray() {
entry:
}
define void @puts() {
entry:
}
define void @_sysy_starttime() {
entry:
}
define void @_sysy_stoptime() {
entry:
}
define void @starttime() {
entry:
}
define void @stoptime() {
entry:
}
define i32 @read_map() {
entry:
}
define i32 @float_eq() {
entry:
}
define i32* @memset() {
entry:
}
define i32 @func(i32 %n) {
entry:
  %t0 = alloca i32
  store i32 %n, i32* %t0
  %t1_sum = alloca i32
  store i32 0, i32* %t1_sum
  %t2_i = alloca i32
  store i32 200, i32* %t2_i
  %t3_j = alloca i32
  store i32 0, i32* %t3_j
  %t4_s_0 = alloca i32
  %t5_s_1 = alloca i32
  %t6_s_2 = alloca i32
  %t7_s_3 = alloca i32
  %t8_s_4 = alloca i32
  %t9_s_5 = alloca i32
  %t10_s_6 = alloca i32
  %t11_s_7 = alloca i32
  %t12_s_8 = alloca i32
  %t13_s_9 = alloca i32
  %t14_s_10 = alloca i32
  %t15_s_11 = alloca i32
  %t16_s_12 = alloca i32
  %t17_s_13 = alloca i32
  %t18_s_14 = alloca i32
  %t19_s_15 = alloca i32
  %t20_s_16 = alloca i32
  %t21_s_17 = alloca i32
  %t22_s_18 = alloca i32
  %t23_s_19 = alloca i32
  %t24_s_20 = alloca i32
  %t25_s_21 = alloca i32
  %t26_s_22 = alloca i32
  %t27_s_23 = alloca i32
  %t28_s_24 = alloca i32
  %t29_s_25 = alloca i32
  %t30_s_26 = alloca i32
  %t31_s_27 = alloca i32
  %t32_s_28 = alloca i32
  %t33_s_29 = alloca i32
  %t34_s_30 = alloca i32
  %t35_s_31 = alloca i32
  %t36_s_32 = alloca i32
  %t37_s_33 = alloca i32
  %t38_s_34 = alloca i32
  %t39_s_35 = alloca i32
  %t40_s_36 = alloca i32
  %t41_s_37 = alloca i32
  %t42_s_38 = alloca i32
  %t43_s_39 = alloca i32
  %t44_s_40 = alloca i32
  %t45_s_41 = alloca i32
  %t46_s_42 = alloca i32
  %t47_s_43 = alloca i32
  %t48_s_44 = alloca i32
  %t49_s_45 = alloca i32
  %t50_s_46 = alloca i32
  %t51_s_47 = alloca i32
  %t52_s_48 = alloca i32
  %t53_s_49 = alloca i32
  %t54_s_50 = alloca i32
  %t55_s_51 = alloca i32
  %t56_s_52 = alloca i32
  %t57_s_53 = alloca i32
  %t58_s_54 = alloca i32
  %t59_s_55 = alloca i32
  %t60_s_56 = alloca i32
  %t61_s_57 = alloca i32
  %t62_s_58 = alloca i32
  %t63_s_59 = alloca i32
  %t64_s_60 = alloca i32
  %t65_s_61 = alloca i32
  %t66_s_62 = alloca i32
  %t67_s_63 = alloca i32
  %t68_s_64 = alloca i32
  %t69_s_65 = alloca i32
  %t70_s_66 = alloca i32
  %t71_s_67 = alloca i32
  %t72_s_68 = alloca i32
  %t73_s_69 = alloca i32
  %t74_s_70 = alloca i32
  %t75_s_71 = alloca i32
  %t76_s_72 = alloca i32
  %t77_s_73 = alloca i32
  %t78_s_74 = alloca i32
  %t79_s_75 = alloca i32
  %t80_s_76 = alloca i32
  %t81_s_77 = alloca i32
  %t82_s_78 = alloca i32
  %t83_s_79 = alloca i32
  %t84_s_80 = alloca i32
  %t85_s_81 = alloca i32
  %t86_s_82 = alloca i32
  %t87_s_83 = alloca i32
  %t88_s_84 = alloca i32
  %t89_s_85 = alloca i32
  %t90_s_86 = alloca i32
  %t91_s_87 = alloca i32
  %t92_s_88 = alloca i32
  %t93_s_89 = alloca i32
  %t94_s_90 = alloca i32
  %t95_s_91 = alloca i32
  %t96_s_92 = alloca i32
  %t97_s_93 = alloca i32
  %t98_s_94 = alloca i32
  %t99_s_95 = alloca i32
  %t100_s_96 = alloca i32
  %t101_s_97 = alloca i32
  %t102_s_98 = alloca i32
  %t103_s_99 = alloca i32
  store i32 0, i32* %t4_s_0
  store i32 0, i32* %t5_s_1
  store i32 0, i32* %t6_s_2
  store i32 0, i32* %t7_s_3
  store i32 0, i32* %t8_s_4
  store i32 0, i32* %t9_s_5
  store i32 0, i32* %t10_s_6
  store i32 0, i32* %t11_s_7
  store i32 0, i32* %t12_s_8
  store i32 0, i32* %t13_s_9
  store i32 0, i32* %t14_s_10
  store i32 0, i32* %t15_s_11
  store i32 0, i32* %t16_s_12
  store i32 0, i32* %t17_s_13
  store i32 0, i32* %t18_s_14
  store i32 0, i32* %t19_s_15
  store i32 0, i32* %t20_s_16
  store i32 0, i32* %t21_s_17
  store i32 0, i32* %t22_s_18
  store i32 0, i32* %t23_s_19
  store i32 0, i32* %t24_s_20
  store i32 0, i32* %t25_s_21
  store i32 0, i32* %t26_s_22
  store i32 0, i32* %t27_s_23
  store i32 0, i32* %t28_s_24
  store i32 0, i32* %t29_s_25
  store i32 0, i32* %t30_s_26
  store i32 0, i32* %t31_s_27
  store i32 0, i32* %t32_s_28
  store i32 0, i32* %t33_s_29
  store i32 0, i32* %t34_s_30
  store i32 0, i32* %t35_s_31
  store i32 0, i32* %t36_s_32
  store i32 0, i32* %t37_s_33
  store i32 0, i32* %t38_s_34
  store i32 0, i32* %t39_s_35
  store i32 0, i32* %t40_s_36
  store i32 0, i32* %t41_s_37
  store i32 0, i32* %t42_s_38
  store i32 0, i32* %t43_s_39
  store i32 0, i32* %t44_s_40
  store i32 0, i32* %t45_s_41
  store i32 0, i32* %t46_s_42
  store i32 0, i32* %t47_s_43
  store i32 0, i32* %t48_s_44
  store i32 0, i32* %t49_s_45
  store i32 0, i32* %t50_s_46
  store i32 0, i32* %t51_s_47
  store i32 0, i32* %t52_s_48
  store i32 0, i32* %t53_s_49
  store i32 0, i32* %t54_s_50
  store i32 0, i32* %t55_s_51
  store i32 0, i32* %t56_s_52
  store i32 0, i32* %t57_s_53
  store i32 0, i32* %t58_s_54
  store i32 0, i32* %t59_s_55
  store i32 0, i32* %t60_s_56
  store i32 0, i32* %t61_s_57
  store i32 0, i32* %t62_s_58
  store i32 0, i32* %t63_s_59
  store i32 0, i32* %t64_s_60
  store i32 0, i32* %t65_s_61
  store i32 0, i32* %t66_s_62
  store i32 0, i32* %t67_s_63
  store i32 0, i32* %t68_s_64
  store i32 0, i32* %t69_s_65
  store i32 0, i32* %t70_s_66
  store i32 0, i32* %t71_s_67
  store i32 0, i32* %t72_s_68
  store i32 0, i32* %t73_s_69
  store i32 0, i32* %t74_s_70
  store i32 0, i32* %t75_s_71
  store i32 0, i32* %t76_s_72
  store i32 0, i32* %t77_s_73
  store i32 0, i32* %t78_s_74
  store i32 0, i32* %t79_s_75
  store i32 0, i32* %t80_s_76
  store i32 0, i32* %t81_s_77
  store i32 0, i32* %t82_s_78
  store i32 0, i32* %t83_s_79
  store i32 0, i32* %t84_s_80
  store i32 0, i32* %t85_s_81
  store i32 0, i32* %t86_s_82
  store i32 0, i32* %t87_s_83
  store i32 0, i32* %t88_s_84
  store i32 0, i32* %t89_s_85
  store i32 0, i32* %t90_s_86
  store i32 0, i32* %t91_s_87
  store i32 0, i32* %t92_s_88
  store i32 0, i32* %t93_s_89
  store i32 0, i32* %t94_s_90
  store i32 0, i32* %t95_s_91
  store i32 0, i32* %t96_s_92
  store i32 0, i32* %t97_s_93
  store i32 0, i32* %t98_s_94
  store i32 0, i32* %t99_s_95
  store i32 0, i32* %t100_s_96
  store i32 0, i32* %t101_s_97
  store i32 0, i32* %t102_s_98
  store i32 0, i32* %t103_s_99
  %t104_m = alloca i32
  store i32 0, i32* %t104_m
  br label %while.cond
while.cond:
  %t105 = load i32, i32* %t104_m
  %t106 = icmp slt i32 %t105, 100
  br i1 %t106, label %while.body, label %while.exit
while.body:
  %t107 = load i32, i32* %t104_m
  %t108 = getelementptr i32* (%t4_s_0, 0, %t107)
  store i32 0, i32* %t108
  %t109 = load i32, i32* %t104_m
  %t110 = add i32 %t109, 1
  store i32 %t110, i32* %t104_m
  br label %while.cond
while.exit:
  br label %while.cond
while.cond:
  %t111 = load i32, i32* %t3_j
  %t112 = load i32, i32* %t0
  %t113 = icmp slt i32 %t111, %t112
  br i1 %t113, label %while.body, label %while.exit
while.body:
  %t114 = load i32, i32* %t2_i
  %t115 = icmp sgt i32 %t114, 1
  br i1 %t115, label %then, label %merge
while.exit:
  %t425 = load i32, i32* %t1_sum
  ret i32 %t425
then:
  %t116 = getelementptr i32* (%t4_s_0, 0, 1)
  store i32 1, i32* %t116
  %t117 = load i32, i32* %t2_i
  %t118 = icmp sgt i32 %t117, 2
  br i1 %t118, label %then, label %merge
merge:
  %t411 = load i32, i32* %t3_j
  %t412 = add i32 %t411, 1
  store i32 %t412, i32* %t3_j
  %t413_m = alloca i32
  store i32 0, i32* %t413_m
  br label %while.cond
then:
  %t119 = getelementptr i32* (%t4_s_0, 0, 2)
  store i32 2, i32* %t119
  %t120 = load i32, i32* %t2_i
  %t121 = icmp sgt i32 %t120, 3
  br i1 %t121, label %then, label %merge
merge:
  br label %merge
then:
  %t122 = getelementptr i32* (%t4_s_0, 0, 3)
  store i32 3, i32* %t122
  %t123 = load i32, i32* %t2_i
  %t124 = icmp sgt i32 %t123, 4
  br i1 %t124, label %then, label %merge
merge:
  br label %merge
then:
  %t125 = getelementptr i32* (%t4_s_0, 0, 4)
  store i32 4, i32* %t125
  %t126 = load i32, i32* %t2_i
  %t127 = icmp sgt i32 %t126, 5
  br i1 %t127, label %then, label %merge
merge:
  br label %merge
then:
  %t128 = getelementptr i32* (%t4_s_0, 0, 5)
  store i32 5, i32* %t128
  %t129 = load i32, i32* %t2_i
  %t130 = icmp sgt i32 %t129, 6
  br i1 %t130, label %then, label %merge
merge:
  br label %merge
then:
  %t131 = getelementptr i32* (%t4_s_0, 0, 6)
  store i32 6, i32* %t131
  %t132 = load i32, i32* %t2_i
  %t133 = icmp sgt i32 %t132, 7
  br i1 %t133, label %then, label %merge
merge:
  br label %merge
then:
  %t134 = getelementptr i32* (%t4_s_0, 0, 7)
  store i32 7, i32* %t134
  %t135 = load i32, i32* %t2_i
  %t136 = icmp sgt i32 %t135, 8
  br i1 %t136, label %then, label %merge
merge:
  br label %merge
then:
  %t137 = getelementptr i32* (%t4_s_0, 0, 8)
  store i32 8, i32* %t137
  %t138 = load i32, i32* %t2_i
  %t139 = icmp sgt i32 %t138, 9
  br i1 %t139, label %then, label %merge
merge:
  br label %merge
then:
  %t140 = getelementptr i32* (%t4_s_0, 0, 9)
  store i32 9, i32* %t140
  %t141 = load i32, i32* %t2_i
  %t142 = icmp sgt i32 %t141, 10
  br i1 %t142, label %then, label %merge
merge:
  br label %merge
then:
  %t143 = getelementptr i32* (%t4_s_0, 0, 10)
  store i32 10, i32* %t143
  %t144 = load i32, i32* %t2_i
  %t145 = icmp sgt i32 %t144, 11
  br i1 %t145, label %then, label %merge
merge:
  br label %merge
then:
  %t146 = getelementptr i32* (%t4_s_0, 0, 11)
  store i32 11, i32* %t146
  %t147 = load i32, i32* %t2_i
  %t148 = icmp sgt i32 %t147, 12
  br i1 %t148, label %then, label %merge
merge:
  br label %merge
then:
  %t149 = getelementptr i32* (%t4_s_0, 0, 12)
  store i32 12, i32* %t149
  %t150 = load i32, i32* %t2_i
  %t151 = icmp sgt i32 %t150, 13
  br i1 %t151, label %then, label %merge
merge:
  br label %merge
then:
  %t152 = getelementptr i32* (%t4_s_0, 0, 13)
  store i32 13, i32* %t152
  %t153 = load i32, i32* %t2_i
  %t154 = icmp sgt i32 %t153, 14
  br i1 %t154, label %then, label %merge
merge:
  br label %merge
then:
  %t155 = getelementptr i32* (%t4_s_0, 0, 14)
  store i32 14, i32* %t155
  %t156 = load i32, i32* %t2_i
  %t157 = icmp sgt i32 %t156, 15
  br i1 %t157, label %then, label %merge
merge:
  br label %merge
then:
  %t158 = getelementptr i32* (%t4_s_0, 0, 15)
  store i32 15, i32* %t158
  %t159 = load i32, i32* %t2_i
  %t160 = icmp sgt i32 %t159, 16
  br i1 %t160, label %then, label %merge
merge:
  br label %merge
then:
  %t161 = getelementptr i32* (%t4_s_0, 0, 16)
  store i32 16, i32* %t161
  %t162 = load i32, i32* %t2_i
  %t163 = icmp sgt i32 %t162, 17
  br i1 %t163, label %then, label %merge
merge:
  br label %merge
then:
  %t164 = getelementptr i32* (%t4_s_0, 0, 17)
  store i32 17, i32* %t164
  %t165 = load i32, i32* %t2_i
  %t166 = icmp sgt i32 %t165, 18
  br i1 %t166, label %then, label %merge
merge:
  br label %merge
then:
  %t167 = getelementptr i32* (%t4_s_0, 0, 18)
  store i32 18, i32* %t167
  %t168 = load i32, i32* %t2_i
  %t169 = icmp sgt i32 %t168, 19
  br i1 %t169, label %then, label %merge
merge:
  br label %merge
then:
  %t170 = getelementptr i32* (%t4_s_0, 0, 19)
  store i32 19, i32* %t170
  %t171 = load i32, i32* %t2_i
  %t172 = icmp sgt i32 %t171, 20
  br i1 %t172, label %then, label %merge
merge:
  br label %merge
then:
  %t173 = getelementptr i32* (%t4_s_0, 0, 20)
  store i32 20, i32* %t173
  %t174 = load i32, i32* %t2_i
  %t175 = icmp sgt i32 %t174, 21
  br i1 %t175, label %then, label %merge
merge:
  br label %merge
then:
  %t176 = getelementptr i32* (%t4_s_0, 0, 21)
  store i32 21, i32* %t176
  %t177 = load i32, i32* %t2_i
  %t178 = icmp sgt i32 %t177, 22
  br i1 %t178, label %then, label %merge
merge:
  br label %merge
then:
  %t179 = getelementptr i32* (%t4_s_0, 0, 22)
  store i32 22, i32* %t179
  %t180 = load i32, i32* %t2_i
  %t181 = icmp sgt i32 %t180, 23
  br i1 %t181, label %then, label %merge
merge:
  br label %merge
then:
  %t182 = getelementptr i32* (%t4_s_0, 0, 23)
  store i32 23, i32* %t182
  %t183 = load i32, i32* %t2_i
  %t184 = icmp sgt i32 %t183, 24
  br i1 %t184, label %then, label %merge
merge:
  br label %merge
then:
  %t185 = getelementptr i32* (%t4_s_0, 0, 24)
  store i32 24, i32* %t185
  %t186 = load i32, i32* %t2_i
  %t187 = icmp sgt i32 %t186, 25
  br i1 %t187, label %then, label %merge
merge:
  br label %merge
then:
  %t188 = getelementptr i32* (%t4_s_0, 0, 25)
  store i32 25, i32* %t188
  %t189 = load i32, i32* %t2_i
  %t190 = icmp sgt i32 %t189, 26
  br i1 %t190, label %then, label %merge
merge:
  br label %merge
then:
  %t191 = getelementptr i32* (%t4_s_0, 0, 26)
  store i32 26, i32* %t191
  %t192 = load i32, i32* %t2_i
  %t193 = icmp sgt i32 %t192, 27
  br i1 %t193, label %then, label %merge
merge:
  br label %merge
then:
  %t194 = getelementptr i32* (%t4_s_0, 0, 27)
  store i32 27, i32* %t194
  %t195 = load i32, i32* %t2_i
  %t196 = icmp sgt i32 %t195, 28
  br i1 %t196, label %then, label %merge
merge:
  br label %merge
then:
  %t197 = getelementptr i32* (%t4_s_0, 0, 28)
  store i32 28, i32* %t197
  %t198 = load i32, i32* %t2_i
  %t199 = icmp sgt i32 %t198, 29
  br i1 %t199, label %then, label %merge
merge:
  br label %merge
then:
  %t200 = getelementptr i32* (%t4_s_0, 0, 29)
  store i32 29, i32* %t200
  %t201 = load i32, i32* %t2_i
  %t202 = icmp sgt i32 %t201, 30
  br i1 %t202, label %then, label %merge
merge:
  br label %merge
then:
  %t203 = getelementptr i32* (%t4_s_0, 0, 30)
  store i32 30, i32* %t203
  %t204 = load i32, i32* %t2_i
  %t205 = icmp sgt i32 %t204, 31
  br i1 %t205, label %then, label %merge
merge:
  br label %merge
then:
  %t206 = getelementptr i32* (%t4_s_0, 0, 31)
  store i32 31, i32* %t206
  %t207 = load i32, i32* %t2_i
  %t208 = icmp sgt i32 %t207, 32
  br i1 %t208, label %then, label %merge
merge:
  br label %merge
then:
  %t209 = getelementptr i32* (%t4_s_0, 0, 32)
  store i32 32, i32* %t209
  %t210 = load i32, i32* %t2_i
  %t211 = icmp sgt i32 %t210, 33
  br i1 %t211, label %then, label %merge
merge:
  br label %merge
then:
  %t212 = getelementptr i32* (%t4_s_0, 0, 33)
  store i32 33, i32* %t212
  %t213 = load i32, i32* %t2_i
  %t214 = icmp sgt i32 %t213, 34
  br i1 %t214, label %then, label %merge
merge:
  br label %merge
then:
  %t215 = getelementptr i32* (%t4_s_0, 0, 34)
  store i32 34, i32* %t215
  %t216 = load i32, i32* %t2_i
  %t217 = icmp sgt i32 %t216, 35
  br i1 %t217, label %then, label %merge
merge:
  br label %merge
then:
  %t218 = getelementptr i32* (%t4_s_0, 0, 35)
  store i32 35, i32* %t218
  %t219 = load i32, i32* %t2_i
  %t220 = icmp sgt i32 %t219, 36
  br i1 %t220, label %then, label %merge
merge:
  br label %merge
then:
  %t221 = getelementptr i32* (%t4_s_0, 0, 36)
  store i32 36, i32* %t221
  %t222 = load i32, i32* %t2_i
  %t223 = icmp sgt i32 %t222, 37
  br i1 %t223, label %then, label %merge
merge:
  br label %merge
then:
  %t224 = getelementptr i32* (%t4_s_0, 0, 37)
  store i32 37, i32* %t224
  %t225 = load i32, i32* %t2_i
  %t226 = icmp sgt i32 %t225, 38
  br i1 %t226, label %then, label %merge
merge:
  br label %merge
then:
  %t227 = getelementptr i32* (%t4_s_0, 0, 38)
  store i32 38, i32* %t227
  %t228 = load i32, i32* %t2_i
  %t229 = icmp sgt i32 %t228, 39
  br i1 %t229, label %then, label %merge
merge:
  br label %merge
then:
  %t230 = getelementptr i32* (%t4_s_0, 0, 39)
  store i32 39, i32* %t230
  %t231 = load i32, i32* %t2_i
  %t232 = icmp sgt i32 %t231, 40
  br i1 %t232, label %then, label %merge
merge:
  br label %merge
then:
  %t233 = getelementptr i32* (%t4_s_0, 0, 40)
  store i32 40, i32* %t233
  %t234 = load i32, i32* %t2_i
  %t235 = icmp sgt i32 %t234, 41
  br i1 %t235, label %then, label %merge
merge:
  br label %merge
then:
  %t236 = getelementptr i32* (%t4_s_0, 0, 41)
  store i32 41, i32* %t236
  %t237 = load i32, i32* %t2_i
  %t238 = icmp sgt i32 %t237, 42
  br i1 %t238, label %then, label %merge
merge:
  br label %merge
then:
  %t239 = getelementptr i32* (%t4_s_0, 0, 42)
  store i32 42, i32* %t239
  %t240 = load i32, i32* %t2_i
  %t241 = icmp sgt i32 %t240, 43
  br i1 %t241, label %then, label %merge
merge:
  br label %merge
then:
  %t242 = getelementptr i32* (%t4_s_0, 0, 43)
  store i32 43, i32* %t242
  %t243 = load i32, i32* %t2_i
  %t244 = icmp sgt i32 %t243, 44
  br i1 %t244, label %then, label %merge
merge:
  br label %merge
then:
  %t245 = getelementptr i32* (%t4_s_0, 0, 44)
  store i32 44, i32* %t245
  %t246 = load i32, i32* %t2_i
  %t247 = icmp sgt i32 %t246, 45
  br i1 %t247, label %then, label %merge
merge:
  br label %merge
then:
  %t248 = getelementptr i32* (%t4_s_0, 0, 45)
  store i32 45, i32* %t248
  %t249 = load i32, i32* %t2_i
  %t250 = icmp sgt i32 %t249, 46
  br i1 %t250, label %then, label %merge
merge:
  br label %merge
then:
  %t251 = getelementptr i32* (%t4_s_0, 0, 46)
  store i32 46, i32* %t251
  %t252 = load i32, i32* %t2_i
  %t253 = icmp sgt i32 %t252, 47
  br i1 %t253, label %then, label %merge
merge:
  br label %merge
then:
  %t254 = getelementptr i32* (%t4_s_0, 0, 47)
  store i32 47, i32* %t254
  %t255 = load i32, i32* %t2_i
  %t256 = icmp sgt i32 %t255, 48
  br i1 %t256, label %then, label %merge
merge:
  br label %merge
then:
  %t257 = getelementptr i32* (%t4_s_0, 0, 48)
  store i32 48, i32* %t257
  %t258 = load i32, i32* %t2_i
  %t259 = icmp sgt i32 %t258, 49
  br i1 %t259, label %then, label %merge
merge:
  br label %merge
then:
  %t260 = getelementptr i32* (%t4_s_0, 0, 49)
  store i32 49, i32* %t260
  %t261 = load i32, i32* %t2_i
  %t262 = icmp sgt i32 %t261, 50
  br i1 %t262, label %then, label %merge
merge:
  br label %merge
then:
  %t263 = getelementptr i32* (%t4_s_0, 0, 50)
  store i32 50, i32* %t263
  %t264 = load i32, i32* %t2_i
  %t265 = icmp sgt i32 %t264, 51
  br i1 %t265, label %then, label %merge
merge:
  br label %merge
then:
  %t266 = getelementptr i32* (%t4_s_0, 0, 51)
  store i32 51, i32* %t266
  %t267 = load i32, i32* %t2_i
  %t268 = icmp sgt i32 %t267, 52
  br i1 %t268, label %then, label %merge
merge:
  br label %merge
then:
  %t269 = getelementptr i32* (%t4_s_0, 0, 52)
  store i32 52, i32* %t269
  %t270 = load i32, i32* %t2_i
  %t271 = icmp sgt i32 %t270, 53
  br i1 %t271, label %then, label %merge
merge:
  br label %merge
then:
  %t272 = getelementptr i32* (%t4_s_0, 0, 53)
  store i32 53, i32* %t272
  %t273 = load i32, i32* %t2_i
  %t274 = icmp sgt i32 %t273, 54
  br i1 %t274, label %then, label %merge
merge:
  br label %merge
then:
  %t275 = getelementptr i32* (%t4_s_0, 0, 54)
  store i32 54, i32* %t275
  %t276 = load i32, i32* %t2_i
  %t277 = icmp sgt i32 %t276, 55
  br i1 %t277, label %then, label %merge
merge:
  br label %merge
then:
  %t278 = getelementptr i32* (%t4_s_0, 0, 55)
  store i32 55, i32* %t278
  %t279 = load i32, i32* %t2_i
  %t280 = icmp sgt i32 %t279, 56
  br i1 %t280, label %then, label %merge
merge:
  br label %merge
then:
  %t281 = getelementptr i32* (%t4_s_0, 0, 56)
  store i32 56, i32* %t281
  %t282 = load i32, i32* %t2_i
  %t283 = icmp sgt i32 %t282, 57
  br i1 %t283, label %then, label %merge
merge:
  br label %merge
then:
  %t284 = getelementptr i32* (%t4_s_0, 0, 57)
  store i32 57, i32* %t284
  %t285 = load i32, i32* %t2_i
  %t286 = icmp sgt i32 %t285, 58
  br i1 %t286, label %then, label %merge
merge:
  br label %merge
then:
  %t287 = getelementptr i32* (%t4_s_0, 0, 58)
  store i32 58, i32* %t287
  %t288 = load i32, i32* %t2_i
  %t289 = icmp sgt i32 %t288, 59
  br i1 %t289, label %then, label %merge
merge:
  br label %merge
then:
  %t290 = getelementptr i32* (%t4_s_0, 0, 59)
  store i32 59, i32* %t290
  %t291 = load i32, i32* %t2_i
  %t292 = icmp sgt i32 %t291, 60
  br i1 %t292, label %then, label %merge
merge:
  br label %merge
then:
  %t293 = getelementptr i32* (%t4_s_0, 0, 60)
  store i32 60, i32* %t293
  %t294 = load i32, i32* %t2_i
  %t295 = icmp sgt i32 %t294, 61
  br i1 %t295, label %then, label %merge
merge:
  br label %merge
then:
  %t296 = getelementptr i32* (%t4_s_0, 0, 61)
  store i32 61, i32* %t296
  %t297 = load i32, i32* %t2_i
  %t298 = icmp sgt i32 %t297, 62
  br i1 %t298, label %then, label %merge
merge:
  br label %merge
then:
  %t299 = getelementptr i32* (%t4_s_0, 0, 62)
  store i32 62, i32* %t299
  %t300 = load i32, i32* %t2_i
  %t301 = icmp sgt i32 %t300, 63
  br i1 %t301, label %then, label %merge
merge:
  br label %merge
then:
  %t302 = getelementptr i32* (%t4_s_0, 0, 63)
  store i32 63, i32* %t302
  %t303 = load i32, i32* %t2_i
  %t304 = icmp sgt i32 %t303, 64
  br i1 %t304, label %then, label %merge
merge:
  br label %merge
then:
  %t305 = getelementptr i32* (%t4_s_0, 0, 64)
  store i32 64, i32* %t305
  %t306 = load i32, i32* %t2_i
  %t307 = icmp sgt i32 %t306, 65
  br i1 %t307, label %then, label %merge
merge:
  br label %merge
then:
  %t308 = getelementptr i32* (%t4_s_0, 0, 65)
  store i32 65, i32* %t308
  %t309 = load i32, i32* %t2_i
  %t310 = icmp sgt i32 %t309, 66
  br i1 %t310, label %then, label %merge
merge:
  br label %merge
then:
  %t311 = getelementptr i32* (%t4_s_0, 0, 66)
  store i32 66, i32* %t311
  %t312 = load i32, i32* %t2_i
  %t313 = icmp sgt i32 %t312, 67
  br i1 %t313, label %then, label %merge
merge:
  br label %merge
then:
  %t314 = getelementptr i32* (%t4_s_0, 0, 67)
  store i32 67, i32* %t314
  %t315 = load i32, i32* %t2_i
  %t316 = icmp sgt i32 %t315, 68
  br i1 %t316, label %then, label %merge
merge:
  br label %merge
then:
  %t317 = getelementptr i32* (%t4_s_0, 0, 68)
  store i32 68, i32* %t317
  %t318 = load i32, i32* %t2_i
  %t319 = icmp sgt i32 %t318, 69
  br i1 %t319, label %then, label %merge
merge:
  br label %merge
then:
  %t320 = getelementptr i32* (%t4_s_0, 0, 69)
  store i32 69, i32* %t320
  %t321 = load i32, i32* %t2_i
  %t322 = icmp sgt i32 %t321, 70
  br i1 %t322, label %then, label %merge
merge:
  br label %merge
then:
  %t323 = getelementptr i32* (%t4_s_0, 0, 70)
  store i32 70, i32* %t323
  %t324 = load i32, i32* %t2_i
  %t325 = icmp sgt i32 %t324, 71
  br i1 %t325, label %then, label %merge
merge:
  br label %merge
then:
  %t326 = getelementptr i32* (%t4_s_0, 0, 71)
  store i32 71, i32* %t326
  %t327 = load i32, i32* %t2_i
  %t328 = icmp sgt i32 %t327, 72
  br i1 %t328, label %then, label %merge
merge:
  br label %merge
then:
  %t329 = getelementptr i32* (%t4_s_0, 0, 72)
  store i32 72, i32* %t329
  %t330 = load i32, i32* %t2_i
  %t331 = icmp sgt i32 %t330, 73
  br i1 %t331, label %then, label %merge
merge:
  br label %merge
then:
  %t332 = getelementptr i32* (%t4_s_0, 0, 73)
  store i32 73, i32* %t332
  %t333 = load i32, i32* %t2_i
  %t334 = icmp sgt i32 %t333, 74
  br i1 %t334, label %then, label %merge
merge:
  br label %merge
then:
  %t335 = getelementptr i32* (%t4_s_0, 0, 74)
  store i32 74, i32* %t335
  %t336 = load i32, i32* %t2_i
  %t337 = icmp sgt i32 %t336, 75
  br i1 %t337, label %then, label %merge
merge:
  br label %merge
then:
  %t338 = getelementptr i32* (%t4_s_0, 0, 75)
  store i32 75, i32* %t338
  %t339 = load i32, i32* %t2_i
  %t340 = icmp sgt i32 %t339, 76
  br i1 %t340, label %then, label %merge
merge:
  br label %merge
then:
  %t341 = getelementptr i32* (%t4_s_0, 0, 76)
  store i32 76, i32* %t341
  %t342 = load i32, i32* %t2_i
  %t343 = icmp sgt i32 %t342, 77
  br i1 %t343, label %then, label %merge
merge:
  br label %merge
then:
  %t344 = getelementptr i32* (%t4_s_0, 0, 77)
  store i32 77, i32* %t344
  %t345 = load i32, i32* %t2_i
  %t346 = icmp sgt i32 %t345, 78
  br i1 %t346, label %then, label %merge
merge:
  br label %merge
then:
  %t347 = getelementptr i32* (%t4_s_0, 0, 78)
  store i32 78, i32* %t347
  %t348 = load i32, i32* %t2_i
  %t349 = icmp sgt i32 %t348, 79
  br i1 %t349, label %then, label %merge
merge:
  br label %merge
then:
  %t350 = getelementptr i32* (%t4_s_0, 0, 79)
  store i32 79, i32* %t350
  %t351 = load i32, i32* %t2_i
  %t352 = icmp sgt i32 %t351, 80
  br i1 %t352, label %then, label %merge
merge:
  br label %merge
then:
  %t353 = getelementptr i32* (%t4_s_0, 0, 80)
  store i32 80, i32* %t353
  %t354 = load i32, i32* %t2_i
  %t355 = icmp sgt i32 %t354, 81
  br i1 %t355, label %then, label %merge
merge:
  br label %merge
then:
  %t356 = getelementptr i32* (%t4_s_0, 0, 81)
  store i32 81, i32* %t356
  %t357 = load i32, i32* %t2_i
  %t358 = icmp sgt i32 %t357, 82
  br i1 %t358, label %then, label %merge
merge:
  br label %merge
then:
  %t359 = getelementptr i32* (%t4_s_0, 0, 82)
  store i32 82, i32* %t359
  %t360 = load i32, i32* %t2_i
  %t361 = icmp sgt i32 %t360, 83
  br i1 %t361, label %then, label %merge
merge:
  br label %merge
then:
  %t362 = getelementptr i32* (%t4_s_0, 0, 83)
  store i32 83, i32* %t362
  %t363 = load i32, i32* %t2_i
  %t364 = icmp sgt i32 %t363, 84
  br i1 %t364, label %then, label %merge
merge:
  br label %merge
then:
  %t365 = getelementptr i32* (%t4_s_0, 0, 84)
  store i32 84, i32* %t365
  %t366 = load i32, i32* %t2_i
  %t367 = icmp sgt i32 %t366, 85
  br i1 %t367, label %then, label %merge
merge:
  br label %merge
then:
  %t368 = getelementptr i32* (%t4_s_0, 0, 85)
  store i32 85, i32* %t368
  %t369 = load i32, i32* %t2_i
  %t370 = icmp sgt i32 %t369, 86
  br i1 %t370, label %then, label %merge
merge:
  br label %merge
then:
  %t371 = getelementptr i32* (%t4_s_0, 0, 86)
  store i32 86, i32* %t371
  %t372 = load i32, i32* %t2_i
  %t373 = icmp sgt i32 %t372, 87
  br i1 %t373, label %then, label %merge
merge:
  br label %merge
then:
  %t374 = getelementptr i32* (%t4_s_0, 0, 87)
  store i32 87, i32* %t374
  %t375 = load i32, i32* %t2_i
  %t376 = icmp sgt i32 %t375, 88
  br i1 %t376, label %then, label %merge
merge:
  br label %merge
then:
  %t377 = getelementptr i32* (%t4_s_0, 0, 88)
  store i32 88, i32* %t377
  %t378 = load i32, i32* %t2_i
  %t379 = icmp sgt i32 %t378, 89
  br i1 %t379, label %then, label %merge
merge:
  br label %merge
then:
  %t380 = getelementptr i32* (%t4_s_0, 0, 89)
  store i32 89, i32* %t380
  %t381 = load i32, i32* %t2_i
  %t382 = icmp sgt i32 %t381, 90
  br i1 %t382, label %then, label %merge
merge:
  br label %merge
then:
  %t383 = getelementptr i32* (%t4_s_0, 0, 90)
  store i32 90, i32* %t383
  %t384 = load i32, i32* %t2_i
  %t385 = icmp sgt i32 %t384, 91
  br i1 %t385, label %then, label %merge
merge:
  br label %merge
then:
  %t386 = getelementptr i32* (%t4_s_0, 0, 91)
  store i32 91, i32* %t386
  %t387 = load i32, i32* %t2_i
  %t388 = icmp sgt i32 %t387, 92
  br i1 %t388, label %then, label %merge
merge:
  br label %merge
then:
  %t389 = getelementptr i32* (%t4_s_0, 0, 92)
  store i32 92, i32* %t389
  %t390 = load i32, i32* %t2_i
  %t391 = icmp sgt i32 %t390, 93
  br i1 %t391, label %then, label %merge
merge:
  br label %merge
then:
  %t392 = getelementptr i32* (%t4_s_0, 0, 93)
  store i32 93, i32* %t392
  %t393 = load i32, i32* %t2_i
  %t394 = icmp sgt i32 %t393, 94
  br i1 %t394, label %then, label %merge
merge:
  br label %merge
then:
  %t395 = getelementptr i32* (%t4_s_0, 0, 94)
  store i32 94, i32* %t395
  %t396 = load i32, i32* %t2_i
  %t397 = icmp sgt i32 %t396, 95
  br i1 %t397, label %then, label %merge
merge:
  br label %merge
then:
  %t398 = getelementptr i32* (%t4_s_0, 0, 95)
  store i32 95, i32* %t398
  %t399 = load i32, i32* %t2_i
  %t400 = icmp sgt i32 %t399, 96
  br i1 %t400, label %then, label %merge
merge:
  br label %merge
then:
  %t401 = getelementptr i32* (%t4_s_0, 0, 96)
  store i32 96, i32* %t401
  %t402 = load i32, i32* %t2_i
  %t403 = icmp sgt i32 %t402, 97
  br i1 %t403, label %then, label %merge
merge:
  br label %merge
then:
  %t404 = getelementptr i32* (%t4_s_0, 0, 97)
  store i32 97, i32* %t404
  %t405 = load i32, i32* %t2_i
  %t406 = icmp sgt i32 %t405, 98
  br i1 %t406, label %then, label %merge
merge:
  br label %merge
then:
  %t407 = getelementptr i32* (%t4_s_0, 0, 98)
  store i32 98, i32* %t407
  %t408 = load i32, i32* %t2_i
  %t409 = icmp sgt i32 %t408, 99
  br i1 %t409, label %then, label %merge
merge:
  br label %merge
then:
  %t410 = getelementptr i32* (%t4_s_0, 0, 99)
  store i32 99, i32* %t410
  br label %merge
merge:
  br label %merge
while.cond:
  %t414 = load i32, i32* %t413_m
  %t415 = icmp slt i32 %t414, 100
  br i1 %t415, label %while.body, label %while.exit
while.body:
  %t416 = load i32, i32* %t1_sum
  %t417 = load i32, i32* %t413_m
  %t418 = getelementptr i32* (%t4_s_0, 0, %t417)
  %t419 = load i32, i32* %t418
  %t420 = add i32 %t416, %t419
  store i32 %t420, i32* %t1_sum
  %t421 = load i32, i32* %t413_m
  %t422 = add i32 %t421, 1
  store i32 %t422, i32* %t413_m
  br label %while.cond
while.exit:
  %t423 = load i32, i32* %t1_sum
  %t424 = mod i32 %t423, 65535
  store i32 %t424, i32* %t1_sum
  br label %while.cond
}
define i32 @main() {
entry:
  %t426 = call void @starttime()
  %t427_loopcount = alloca i32
  %t428 = call i32 @getint()
  store i32 %t428, i32* %t427_loopcount
  %t429 = load i32, i32* %t427_loopcount
  %t430 = call i32 @func(i32 %t429)
  %t431 = call void @putint(i32 %t430)
  %t432 = call void @putch(i32 10)
  %t433 = call void @stoptime()
  ret i32 0
}

========== test/test_case/performance/large_loop_array_2.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored loop with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: COUNT base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 500000
[DEBUG] visitUnaryExp: 500000
[DEBUG] visitPrimaryExp: 500000
SymbolTable::addSymbol: stored COUNT with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: COUNT type_kind: 1 is_array: 0
[DEBUG] 进入函数: loop 返回类型: float
SymbolTable::addSymbol: stored x with kind=2, const_def_ctx=0
[DEBUG] 添加参数: x type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored y with kind=2, const_def_ctx=0
[DEBUG] 添加参数: y type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored length with kind=2, const_def_ctx=0
[DEBUG] 添加参数: length type_kind: 1 is_array: 0 dims: 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: accumulator base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0.0
[DEBUG] visitUnaryExp: 0.0
[DEBUG] visitPrimaryExp: 0.0
SymbolTable::addSymbol: stored accumulator with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: accumulator type_kind: 2 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: length
[DEBUG] visitPrimaryExp: length
SymbolTable::lookup: found length in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = length, sym->kind = 2
CheckLValue 绑定变量: length, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found accumulator in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = accumulator, sym->kind = 0
绑定变量: accumulator -> VarDefContext
CheckLValue 绑定变量: accumulator, sym->kind: 0, sym->var_def_ctx: 0x555b8a5d86f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: accumulator+x[i]*y[i]
[DEBUG] visitUnaryExp: accumulator
[DEBUG] visitPrimaryExp: accumulator
SymbolTable::lookup: found accumulator in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = accumulator, sym->kind = 0
绑定变量: accumulator -> VarDefContext
CheckLValue 绑定变量: accumulator, sym->kind: 0, sym->var_def_ctx: 0x555b8a5d86f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: x[i]
[DEBUG] visitPrimaryExp: x[i]
SymbolTable::lookup: found x in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 2
CheckLValue 绑定变量: x, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: y[i]
[DEBUG] visitPrimaryExp: y[i]
SymbolTable::lookup: found y in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = y, sym->kind = 2
CheckLValue 绑定变量: y, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: accumulator
[DEBUG] visitUnaryExp: accumulator
[DEBUG] visitPrimaryExp: accumulator
SymbolTable::lookup: found accumulator in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = accumulator, sym->kind = 0
绑定变量: accumulator -> VarDefContext
CheckLValue 绑定变量: accumulator, sym->kind: 0, sym->var_def_ctx: 0x555b8a5d86f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 loop has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: len base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored len with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: len type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: x base_type: float is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 4096
[DEBUG] visitPrimaryExp: 4096
[DEBUG]   dim[0] = 4096
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 4096 
[DEBUG]   Element type: float
SymbolTable::addSymbol: stored x with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: x type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: y base_type: float is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 4096
[DEBUG] visitPrimaryExp: 4096
[DEBUG]   dim[0] = 4096
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 4096 
[DEBUG]   Element type: float
SymbolTable::addSymbol: stored y with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: y type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: total base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0.0
[DEBUG] visitUnaryExp: 0.0
[DEBUG] visitPrimaryExp: 0.0
SymbolTable::addSymbol: stored total with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: total type_kind: 2 is_array: 0
[DEBUG] CheckVarDef: a base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0.0
[DEBUG] visitUnaryExp: 0.0
[DEBUG] visitPrimaryExp: 0.0
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 2 is_array: 0
[DEBUG] CheckVarDef: b base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1.0
[DEBUG] visitUnaryExp: 1.0
[DEBUG] visitPrimaryExp: 1.0
SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: b type_kind: 2 is_array: 0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f7000, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: COUNT
[DEBUG] visitPrimaryExp: COUNT
SymbolTable::lookup: found COUNT in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = COUNT, sym->kind = 0
绑定变量: COUNT -> VarDefContext
CheckLValue 绑定变量: COUNT, sym->kind: 0, sym->var_def_ctx: 0x555b8a5d5c30, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f7000, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fbf70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0.0
[DEBUG] visitUnaryExp: 0.0
[DEBUG] visitPrimaryExp: 0.0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fcb90, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 1.0
[DEBUG] visitUnaryExp: 1.0
[DEBUG] visitPrimaryExp: 1.0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fbf70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: a+0.1
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fbf70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0.1
[DEBUG] visitPrimaryExp: 0.1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fcb90, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: b+0.2
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fcb90, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0.2
[DEBUG] visitPrimaryExp: 0.2
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: len
[DEBUG] visitPrimaryExp: len
SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = len, sym->kind = 0
绑定变量: len -> VarDefContext
CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8940, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 0
绑定变量: x -> VarDefContext
CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f96e0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: a+j
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fbf70, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = y, sym->kind = 0
绑定变量: y -> VarDefContext
CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fa5f0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: b+j
[DEBUG] visitUnaryExp: b
[DEBUG] visitPrimaryExp: b
SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = b, sym->kind = 0
绑定变量: b -> VarDefContext
CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fcb90, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = total, sym->kind = 0
绑定变量: total -> VarDefContext
CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f0430, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: total+loop(x,y,len)
[DEBUG] visitUnaryExp: total
[DEBUG] visitPrimaryExp: total
SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = total, sym->kind = 0
绑定变量: total -> VarDefContext
CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f0430, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: loop(x,y,len)
[DEBUG] 函数调用: loop
[DEBUG] CheckFuncCall: loop
SymbolTable::lookup: found loop in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: x
[DEBUG] visitUnaryExp: x
[DEBUG] visitPrimaryExp: x
SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = x, sym->kind = 0
绑定变量: x -> VarDefContext
CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f96e0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: y
[DEBUG] visitUnaryExp: y
[DEBUG] visitPrimaryExp: y
SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = y, sym->kind = 0
绑定变量: y -> VarDefContext
CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fa5f0, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: len
[DEBUG] visitUnaryExp: len
[DEBUG] visitPrimaryExp: len
SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = len, sym->kind = 0
绑定变量: len -> VarDefContext
CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8940, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 4 形参类型 4
[DEBUG] 检查参数 1: 实参类型 4 形参类型 4
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f7000, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f7000, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: (total-11442437121638400.000000)
[DEBUG] visitPrimaryExp: (total-11442437121638400.000000)
[DEBUG] CheckExp: total-11442437121638400.000000
[DEBUG] visitUnaryExp: total
[DEBUG] visitPrimaryExp: total
SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = total, sym->kind = 0
绑定变量: total -> VarDefContext
CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f0430, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 11442437121638400.000000
[DEBUG] visitPrimaryExp: 11442437121638400.000000
[DEBUG] visitUnaryExp: 0.000001
[DEBUG] visitPrimaryExp: 0.000001
[DEBUG] visitUnaryExp: (total-11442437121638400.000000)
[DEBUG] visitPrimaryExp: (total-11442437121638400.000000)
[DEBUG] CheckExp: total-11442437121638400.000000
[DEBUG] visitUnaryExp: total
[DEBUG] visitPrimaryExp: total
SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = total, sym->kind = 0
绑定变量: total -> VarDefContext
CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f0430, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 11442437121638400.000000
[DEBUG] visitPrimaryExp: 11442437121638400.000000
[DEBUG] visitUnaryExp: -0.000001
[DEBUG] visitUnaryExp: 0.000001
[DEBUG] visitPrimaryExp: 0.000001
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(0)
[DEBUG] visitUnaryExp: putint(0)
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(1)
[DEBUG] visitUnaryExp: putint(1)
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: COUNT
[DEBUG] visitVarDef: 是否为数组: 否
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 COUNT
[DEBUG] HandleGlobalVariable: 变量 COUNT 是 int 类型
[DEBUG] HandleGlobalVariable: 创建全局标量变量: COUNT
[DEBUG] HandleGlobalVariable: 处理标量初始化值
[DEBUG] visitInitVal: 开始处理初始化值
[DEBUG] visitInitVal: 处理表达式初始化
[DEBUG IRGEN] EvalExpr: 500000
[DEBUG IRGEN] visitAddExp: 500000
[DEBUG IRGEN] visitMulExp: 500000
[DEBUG IRGEN] visitPrimaryExp: 500000
[DEBUG] visitPrimaryExp
[DEBUG] visitPrimaryExp: constant int 500000 created as 0x555b8a619190
[DEBUG] EvalExpr: success, result = 0x555b8a619190
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: loop
[DEBUG] visitFuncDef: 创建函数 loop，返回类型: float，参数数量: 3
[DEBUG] visitFuncDef: 函数对象地址: 0x555b8a622250
[DEBUG] visitFuncDef: 为函数 loop 添加参数 x，类型: ptr_float
[error] [ir] AllocaInst 当前只支持 i32*

========== test/test_case/performance/transpose0.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored transpose with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: matrix base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 20000000
[DEBUG] visitPrimaryExp: 20000000
[DEBUG]   dim[0] = 20000000
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 20000000 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored matrix with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: matrix type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: a base_type: int is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 100000
[DEBUG] visitPrimaryExp: 100000
[DEBUG]   dim[0] = 100000
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 100000 
[DEBUG]   Element type: int
SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: a type_kind: 6 is_array: 1
[DEBUG] 进入函数: transpose 返回类型: int
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored matrix with kind=2, const_def_ctx=0
[DEBUG] 添加参数: matrix type_kind: 3 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored rowsize with kind=2, const_def_ctx=0
[DEBUG] 添加参数: rowsize type_kind: 1 is_array: 0 dims: 
[DEBUG] CheckVarDef: colsize base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: n/rowsize
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: rowsize
[DEBUG] visitPrimaryExp: rowsize
SymbolTable::lookup: found rowsize in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = rowsize, sym->kind = 2
CheckLValue 绑定变量: rowsize, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
SymbolTable::addSymbol: stored colsize with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: colsize type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: colsize
[DEBUG] visitPrimaryExp: colsize
SymbolTable::lookup: found colsize in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = colsize, sym->kind = 0
绑定变量: colsize -> VarDefContext
CheckLValue 绑定变量: colsize, sym->kind: 0, sym->var_def_ctx: 0x56536068e5e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: rowsize
[DEBUG] visitPrimaryExp: rowsize
SymbolTable::lookup: found rowsize in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = rowsize, sym->kind = 2
CheckLValue 绑定变量: rowsize, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Continue 
[DEBUG] CheckVarDef: curr base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: matrix[i*rowsize+j]
[DEBUG] visitUnaryExp: matrix[i*rowsize+j]
[DEBUG] visitPrimaryExp: matrix[i*rowsize+j]
SymbolTable::lookup: found matrix in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = matrix, sym->kind = 2
CheckLValue 绑定变量: matrix, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i*rowsize+j
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: rowsize
[DEBUG] visitPrimaryExp: rowsize
SymbolTable::lookup: found rowsize in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = rowsize, sym->kind = 2
CheckLValue 绑定变量: rowsize, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
SymbolTable::addSymbol: stored curr with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: curr type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found matrix in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = matrix, sym->kind = 2
CheckLValue 绑定变量: matrix, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: j*colsize+i
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: colsize
[DEBUG] visitPrimaryExp: colsize
SymbolTable::lookup: found colsize in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = colsize, sym->kind = 0
绑定变量: colsize -> VarDefContext
CheckLValue 绑定变量: colsize, sym->kind: 0, sym->var_def_ctx: 0x56536068e5e0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: matrix[i*rowsize+j]
[DEBUG] visitUnaryExp: matrix[i*rowsize+j]
[DEBUG] visitPrimaryExp: matrix[i*rowsize+j]
SymbolTable::lookup: found matrix in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = matrix, sym->kind = 2
CheckLValue 绑定变量: matrix, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i*rowsize+j
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: rowsize
[DEBUG] visitPrimaryExp: rowsize
SymbolTable::lookup: found rowsize in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = rowsize, sym->kind = 2
CheckLValue 绑定变量: rowsize, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found matrix in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = matrix, sym->kind = 2
CheckLValue 绑定变量: matrix, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i*rowsize+j
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: rowsize
[DEBUG] visitPrimaryExp: rowsize
SymbolTable::lookup: found rowsize in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = rowsize, sym->kind = 2
CheckLValue 绑定变量: rowsize, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: curr
[DEBUG] visitUnaryExp: curr
[DEBUG] visitPrimaryExp: curr
SymbolTable::lookup: found curr in scope level 5, kind=0, const_def_ctx=0
CheckLValue: found sym->name = curr, sym->kind = 0
绑定变量: curr -> VarDefContext
CheckLValue 绑定变量: curr, sym->kind: 0, sym->var_def_ctx: 0x5653606ac5a0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: -1
[DEBUG] visitUnaryExp: -1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 transpose has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: n base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getint()
[DEBUG] visitUnaryExp: getint()
[DEBUG] 函数调用: getint
[DEBUG] CheckFuncCall: getint
SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored n with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: n type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: len base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: getarray(a)
[DEBUG] visitUnaryExp: getarray(a)
[DEBUG] 函数调用: getarray
[DEBUG] CheckFuncCall: getarray
SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: a
[DEBUG] visitUnaryExp: a
[DEBUG] visitPrimaryExp: a
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x565360690140, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 3 形参类型 3
SymbolTable::addSymbol: stored len with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: len type_kind: 1 is_array: 0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5653606be2f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found matrix in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = matrix, sym->kind = 0
绑定变量: matrix -> VarDefContext
CheckLValue 绑定变量: matrix, sym->kind: 0, sym->var_def_ctx: 0x56536068ad40, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: len
[DEBUG] visitPrimaryExp: len
SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = len, sym->kind = 0
绑定变量: len -> VarDefContext
CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x5653606bf250, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: transpose(n,matrix,a[i])
[DEBUG] visitUnaryExp: transpose(n,matrix,a[i])
[DEBUG] 函数调用: transpose
[DEBUG] CheckFuncCall: transpose
SymbolTable::lookup: found transpose in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5653606be2f0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: matrix
[DEBUG] visitUnaryExp: matrix
[DEBUG] visitPrimaryExp: matrix
SymbolTable::lookup: found matrix in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = matrix, sym->kind = 0
绑定变量: matrix -> VarDefContext
CheckLValue 绑定变量: matrix, sym->kind: 0, sym->var_def_ctx: 0x56536068ad40, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: a[i]
[DEBUG] visitUnaryExp: a[i]
[DEBUG] visitPrimaryExp: a[i]
SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = a, sym->kind = 0
绑定变量: a -> VarDefContext
CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x565360690140, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 3 形参类型 3
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] CheckVarDef: ans base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored ans with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: ans type_kind: 1 is_array: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: len
[DEBUG] visitPrimaryExp: len
SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = len, sym->kind = 0
绑定变量: len -> VarDefContext
CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x5653606bf250, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: ans+i*i*matrix[i]
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: matrix[i]
[DEBUG] visitPrimaryExp: matrix[i]
SymbolTable::lookup: found matrix in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = matrix, sym->kind = 0
绑定变量: matrix -> VarDefContext
CheckLValue 绑定变量: matrix, sym->kind: 0, sym->var_def_ctx: 0x56536068ad40, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: -ans
[DEBUG] visitUnaryExp: -ans
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(ans)
[DEBUG] visitUnaryExp: putint(ans)
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: ans
[DEBUG] visitUnaryExp: ans
[DEBUG] visitPrimaryExp: ans
SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = ans, sym->kind = 0
绑定变量: ans -> VarDefContext
CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: matrix
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 matrix
[DEBUG] HandleGlobalVariable: 变量 matrix 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 20000000
[DEBUG] HandleGlobalVariable: 创建全局数组: matrix
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[DEBUG] visitVarDef: 开始处理变量定义
[DEBUG] visitVarDef: 变量名称: a
[DEBUG] visitVarDef: 是否为数组: 是
[DEBUG] visitVarDef: 处理全局变量
[DEBUG] HandleGlobalVariable: 开始处理全局变量 a
[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型
[DEBUG] TryEvaluateConstInt: 开始求值常量表达式
[DEBUG] HandleGlobalVariable: 数组总大小: 100000
[DEBUG] HandleGlobalVariable: 创建全局数组: a
[DEBUG] HandleGlobalVariable: 设置全局数组初始化器
[DEBUG] visitDecl: 声明处理完成
[DEBUG IRGEN] visitFuncDef: transpose
[DEBUG] visitFuncDef: 创建函数 transpose，返回类型: int，参数数量: 3
[DEBUG] visitFuncDef: 函数对象地址: 0x5653606dbd50
[DEBUG] visitFuncDef: 为函数 transpose 添加参数 n，类型: int32
[DEBUG] visitFuncDef: 参数 n 处理完成
[DEBUG] visitFuncDef: 为函数 transpose 添加参数 matrix，类型: ptr_int32
[error] [ir] 存储类型不匹配：期望 int32

========== test/test_case/performance/vector_mul3.sy ==========
SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putint with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfloat with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putch with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored starttime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored stoptime with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored getfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored putfarray with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored func with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored Vectordot with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored mult1 with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored mult2 with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored mult_combin with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored my_sqrt with kind=1, const_def_ctx=0
SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: temp base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
SymbolTable::addSymbol: stored temp with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: temp type_kind: 2 is_array: 0
[DEBUG] 进入函数: func 返回类型: int
SymbolTable::addSymbol: stored i with kind=2, const_def_ctx=0
[DEBUG] 添加参数: i type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored j with kind=2, const_def_ctx=0
[DEBUG] 添加参数: j type_kind: 1 is_array: 0 dims: 
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: ((i+j)*(i+j+1)/2+i+1)
[DEBUG] visitUnaryExp: ((i+j)*(i+j+1)/2+i+1)
[DEBUG] visitPrimaryExp: ((i+j)*(i+j+1)/2+i+1)
[DEBUG] CheckExp: (i+j)*(i+j+1)/2+i+1
[DEBUG] visitUnaryExp: (i+j)
[DEBUG] visitPrimaryExp: (i+j)
[DEBUG] CheckExp: i+j
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 2
CheckLValue 绑定变量: i, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 2
CheckLValue 绑定变量: j, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: (i+j+1)
[DEBUG] visitPrimaryExp: (i+j+1)
[DEBUG] CheckExp: i+j+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 2
CheckLValue 绑定变量: i, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 2
CheckLValue 绑定变量: j, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 2
CheckLValue 绑定变量: i, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 func has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: Vectordot 返回类型: float
SymbolTable::addSymbol: stored v with kind=2, const_def_ctx=0
[DEBUG] 添加参数: v type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored u with kind=2, const_def_ctx=0
[DEBUG] 添加参数: u type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: sum base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: sum type_kind: 2 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce296c10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: sum+v[i]*u[i]
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce296c10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: v[i]
[DEBUG] visitPrimaryExp: v[i]
SymbolTable::lookup: found v in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = v, sym->kind = 2
CheckLValue 绑定变量: v, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: u[i]
[DEBUG] visitPrimaryExp: u[i]
SymbolTable::lookup: found u in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = u, sym->kind = 2
CheckLValue 绑定变量: u, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: sum
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce296c10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 Vectordot has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: mult1 返回类型: void
SymbolTable::addSymbol: stored v with kind=2, const_def_ctx=0
[DEBUG] 添加参数: v type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored out with kind=2, const_def_ctx=0
[DEBUG] 添加参数: out type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: sum base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: sum type_kind: 2 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7cd0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: sum+v[j]/func(i,j)
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7cd0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: v[j]
[DEBUG] visitPrimaryExp: v[j]
SymbolTable::lookup: found v in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = v, sym->kind = 2
CheckLValue 绑定变量: v, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: func(i,j)
[DEBUG] 函数调用: func
[DEBUG] CheckFuncCall: func
SymbolTable::lookup: found func in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found out in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = out, sym->kind = 2
CheckLValue 绑定变量: out, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: sum
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7cd0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 函数 mult1 has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: mult2 返回类型: void
SymbolTable::addSymbol: stored v with kind=2, const_def_ctx=0
[DEBUG] 添加参数: v type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored out with kind=2, const_def_ctx=0
[DEBUG] 添加参数: out type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: j type_kind: 1 is_array: 0
[DEBUG] CheckVarDef: sum base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: sum type_kind: 2 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b53b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: sum+v[j]/func(j,i)
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b53b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: v[j]
[DEBUG] visitPrimaryExp: v[j]
SymbolTable::lookup: found v in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = v, sym->kind = 2
CheckLValue 绑定变量: v, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] visitUnaryExp: func(j,i)
[DEBUG] 函数调用: func
[DEBUG] CheckFuncCall: func
SymbolTable::lookup: found func in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: j
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] 检查参数 1: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: j+1
[DEBUG] visitUnaryExp: j
[DEBUG] visitPrimaryExp: j
SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = j, sym->kind = 0
绑定变量: j -> VarDefContext
CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found out in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = out, sym->kind = 2
CheckLValue 绑定变量: out, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: sum
[DEBUG] visitUnaryExp: sum
[DEBUG] visitPrimaryExp: sum
SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = sum, sym->kind = 0
绑定变量: sum -> VarDefContext
CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b53b0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 函数 mult2 has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: mult_combin 返回类型: void
SymbolTable::addSymbol: stored v with kind=2, const_def_ctx=0
[DEBUG] 添加参数: v type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored out with kind=2, const_def_ctx=0
[DEBUG] 添加参数: out type_kind: 4 is_array: 1 dims: 0 
SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0
[DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: 
SymbolTable::addSymbol: stored tmp with kind=2, const_def_ctx=0
[DEBUG] 添加参数: tmp type_kind: 4 is_array: 1 dims: 0 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: mult1(v,tmp,n)
[DEBUG] visitUnaryExp: mult1(v,tmp,n)
[DEBUG] 函数调用: mult1
[DEBUG] CheckFuncCall: mult1
SymbolTable::lookup: found mult1 in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: v
[DEBUG] visitUnaryExp: v
[DEBUG] visitPrimaryExp: v
SymbolTable::lookup: found v in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = v, sym->kind = 2
CheckLValue 绑定变量: v, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: tmp
[DEBUG] visitUnaryExp: tmp
[DEBUG] visitPrimaryExp: tmp
SymbolTable::lookup: found tmp in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = tmp, sym->kind = 2
CheckLValue 绑定变量: tmp, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 4 形参类型 4
[DEBUG] 检查参数 1: 实参类型 4 形参类型 4
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: mult2(tmp,out,n)
[DEBUG] visitUnaryExp: mult2(tmp,out,n)
[DEBUG] 函数调用: mult2
[DEBUG] CheckFuncCall: mult2
SymbolTable::lookup: found mult2 in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: tmp
[DEBUG] visitUnaryExp: tmp
[DEBUG] visitPrimaryExp: tmp
SymbolTable::lookup: found tmp in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = tmp, sym->kind = 2
CheckLValue 绑定变量: tmp, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: out
[DEBUG] visitUnaryExp: out
[DEBUG] visitPrimaryExp: out
SymbolTable::lookup: found out in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = out, sym->kind = 2
CheckLValue 绑定变量: out, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
数组参数维度: 1 维, dims: 0 
dim_count: 1, subscript_count: 0
数组参数名作为地址
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 2
CheckLValue 绑定变量: n, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 4 形参类型 4
[DEBUG] 检查参数 1: 实参类型 4 形参类型 4
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 函数 mult_combin has_return: 0 return_type_is_void: 1
[DEBUG] 进入函数: my_sqrt 返回类型: float
SymbolTable::addSymbol: stored input with kind=2, const_def_ctx=0
[DEBUG] 添加参数: input type_kind: 2 is_array: 0 dims: 
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: temp
[DEBUG] visitPrimaryExp: temp
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: input
[DEBUG] visitPrimaryExp: input
SymbolTable::lookup: found input in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = input, sym->kind = 2
CheckLValue 绑定变量: input, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: temp
[DEBUG] visitPrimaryExp: temp
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1e-6
[DEBUG] visitPrimaryExp: 1e-6
[DEBUG] visitUnaryExp: temp
[DEBUG] visitPrimaryExp: temp
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: input
[DEBUG] visitPrimaryExp: input
SymbolTable::lookup: found input in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = input, sym->kind = 2
CheckLValue 绑定变量: input, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: temp
[DEBUG] visitPrimaryExp: temp
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: -1e-6
[DEBUG] visitUnaryExp: 1e-6
[DEBUG] visitPrimaryExp: 1e-6
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: (temp+input/temp)/2
[DEBUG] visitUnaryExp: (temp+input/temp)
[DEBUG] visitPrimaryExp: (temp+input/temp)
[DEBUG] CheckExp: temp+input/temp
[DEBUG] visitUnaryExp: temp
[DEBUG] visitPrimaryExp: temp
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: input
[DEBUG] visitPrimaryExp: input
SymbolTable::lookup: found input in scope level 2, kind=2, const_def_ctx=0
CheckLValue: found sym->name = input, sym->kind = 2
CheckLValue 绑定变量: input, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: temp
[DEBUG] visitPrimaryExp: temp
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 2
[DEBUG] visitPrimaryExp: 2
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: temp
[DEBUG] visitUnaryExp: temp
[DEBUG] visitPrimaryExp: temp
SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0
CheckLValue: found sym->name = temp, sym->kind = 0
绑定变量: temp -> VarDefContext
CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 my_sqrt has_return: 1 return_type_is_void: 0
[DEBUG] 进入函数: main 返回类型: int
[DEBUG] CheckVarDef: n base_type: int is_array: 0 dim_count: 0
[DEBUG] CheckExp: 100000
[DEBUG] visitUnaryExp: 100000
[DEBUG] visitPrimaryExp: 100000
SymbolTable::addSymbol: stored n with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: n type_kind: 1 is_array: 0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 2000
[DEBUG] visitUnaryExp: 2000
[DEBUG] visitPrimaryExp: 2000
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: starttime()
[DEBUG] visitUnaryExp: starttime()
[DEBUG] 函数调用: starttime
[DEBUG] CheckFuncCall: starttime
SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: vectorA base_type: float is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 100000
[DEBUG] visitPrimaryExp: 100000
[DEBUG]   dim[0] = 100000
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 100000 
[DEBUG]   Element type: float
SymbolTable::addSymbol: stored vectorA with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: vectorA type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: vectorB base_type: float is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 100000
[DEBUG] visitPrimaryExp: 100000
[DEBUG]   dim[0] = 100000
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 100000 
[DEBUG]   Element type: float
SymbolTable::addSymbol: stored vectorB with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: vectorB type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: Vectortmp base_type: float is_array: 1 dim_count: 1
[DEBUG] visitUnaryExp: 100000
[DEBUG] visitPrimaryExp: 100000
[DEBUG]   dim[0] = 100000
[DEBUG]   创建数组类型完成
[DEBUG]   type->IsArray(): 1
[DEBUG]   type->GetKind(): 6
[DEBUG]   ArrayType dimensions: 100000 
[DEBUG]   Element type: float
SymbolTable::addSymbol: stored Vectortmp with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: Vectortmp type_kind: 6 is_array: 1
[DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0
SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: i type_kind: 1 is_array: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found vectorA in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = vectorA, sym->kind = 0
绑定变量: vectorA -> VarDefContext
CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4190, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 1
[DEBUG] CheckExp: i
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
完全索引，返回元素类型
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] visitStmt: While 
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1000
[DEBUG] visitPrimaryExp: 1000
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: mult_combin(vectorA,vectorB,n,Vectortmp)
[DEBUG] visitUnaryExp: mult_combin(vectorA,vectorB,n,Vectortmp)
[DEBUG] 函数调用: mult_combin
[DEBUG] CheckFuncCall: mult_combin
SymbolTable::lookup: found mult_combin in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: vectorA
[DEBUG] visitUnaryExp: vectorA
[DEBUG] visitPrimaryExp: vectorA
SymbolTable::lookup: found vectorA in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = vectorA, sym->kind = 0
绑定变量: vectorA -> VarDefContext
CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4190, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: vectorB
[DEBUG] visitUnaryExp: vectorB
[DEBUG] visitPrimaryExp: vectorB
SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = vectorB, sym->kind = 0
绑定变量: vectorB -> VarDefContext
CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: Vectortmp
[DEBUG] visitUnaryExp: Vectortmp
[DEBUG] visitPrimaryExp: Vectortmp
SymbolTable::lookup: found Vectortmp in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = Vectortmp, sym->kind = 0
绑定变量: Vectortmp -> VarDefContext
CheckLValue 绑定变量: Vectortmp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d1d30, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 4 形参类型 4
[DEBUG] 检查参数 1: 实参类型 4 形参类型 4
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 4 形参类型 4
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: mult_combin(vectorB,vectorA,n,Vectortmp)
[DEBUG] visitUnaryExp: mult_combin(vectorB,vectorA,n,Vectortmp)
[DEBUG] 函数调用: mult_combin
[DEBUG] CheckFuncCall: mult_combin
SymbolTable::lookup: found mult_combin in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: vectorB
[DEBUG] visitUnaryExp: vectorB
[DEBUG] visitPrimaryExp: vectorB
SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = vectorB, sym->kind = 0
绑定变量: vectorB -> VarDefContext
CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: vectorA
[DEBUG] visitUnaryExp: vectorA
[DEBUG] visitPrimaryExp: vectorA
SymbolTable::lookup: found vectorA in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = vectorA, sym->kind = 0
绑定变量: vectorA -> VarDefContext
CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4190, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: Vectortmp
[DEBUG] visitUnaryExp: Vectortmp
[DEBUG] visitPrimaryExp: Vectortmp
SymbolTable::lookup: found Vectortmp in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = Vectortmp, sym->kind = 0
绑定变量: Vectortmp -> VarDefContext
CheckLValue 绑定变量: Vectortmp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d1d30, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] 检查参数 0: 实参类型 4 形参类型 4
[DEBUG] 检查参数 1: 实参类型 4 形参类型 4
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 3: 实参类型 4 形参类型 4
[DEBUG] visitStmt: Assign ExpStmt 
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] CheckExp: i+1
[DEBUG] visitUnaryExp: i
[DEBUG] visitPrimaryExp: i
SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = i, sym->kind = 0
绑定变量: i -> VarDefContext
CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: stoptime()
[DEBUG] visitUnaryExp: stoptime()
[DEBUG] 函数调用: stoptime
[DEBUG] CheckFuncCall: stoptime
SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0
[DEBUG] CheckVarDef: result base_type: float is_array: 0 dim_count: 0
[DEBUG] CheckExp: my_sqrt(Vectordot(vectorA,vectorB,n)/Vectordot(vectorB,vectorB,n))
[DEBUG] visitUnaryExp: my_sqrt(Vectordot(vectorA,vectorB,n)/Vectordot(vectorB,vectorB,n))
[DEBUG] 函数调用: my_sqrt
[DEBUG] CheckFuncCall: my_sqrt
SymbolTable::lookup: found my_sqrt in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: Vectordot(vectorA,vectorB,n)/Vectordot(vectorB,vectorB,n)
[DEBUG] visitUnaryExp: Vectordot(vectorA,vectorB,n)
[DEBUG] 函数调用: Vectordot
[DEBUG] CheckFuncCall: Vectordot
SymbolTable::lookup: found Vectordot in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: vectorA
[DEBUG] visitUnaryExp: vectorA
[DEBUG] visitPrimaryExp: vectorA
SymbolTable::lookup: found vectorA in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = vectorA, sym->kind = 0
绑定变量: vectorA -> VarDefContext
CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4190, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: vectorB
[DEBUG] visitUnaryExp: vectorB
[DEBUG] visitPrimaryExp: vectorB
SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = vectorB, sym->kind = 0
绑定变量: vectorB -> VarDefContext
CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 4 形参类型 4
[DEBUG] 检查参数 1: 实参类型 4 形参类型 4
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] visitUnaryExp: Vectordot(vectorB,vectorB,n)
[DEBUG] 函数调用: Vectordot
[DEBUG] CheckFuncCall: Vectordot
SymbolTable::lookup: found Vectordot in scope level 1, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: vectorB
[DEBUG] visitUnaryExp: vectorB
[DEBUG] visitPrimaryExp: vectorB
SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = vectorB, sym->kind = 0
绑定变量: vectorB -> VarDefContext
CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: vectorB
[DEBUG] visitUnaryExp: vectorB
[DEBUG] visitPrimaryExp: vectorB
SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = vectorB, sym->kind = 0
绑定变量: vectorB -> VarDefContext
CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0
dim_count: 1, subscript_count: 0
数组名作为地址
[DEBUG] CheckExp: n
[DEBUG] visitUnaryExp: n
[DEBUG] visitPrimaryExp: n
SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = n, sym->kind = 0
绑定变量: n -> VarDefContext
CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] 检查参数 0: 实参类型 4 形参类型 4
[DEBUG] 检查参数 1: 实参类型 4 形参类型 4
[DEBUG] 检查参数 2: 实参类型 1 形参类型 1
[DEBUG] 检查参数 0: 实参类型 2 形参类型 2
SymbolTable::addSymbol: stored result with kind=0, const_def_ctx=0
[DEBUG]   符号添加完成: result type_kind: 2 is_array: 0
[DEBUG] visitStmt: If 
[DEBUG] visitUnaryExp: result
[DEBUG] visitPrimaryExp: result
SymbolTable::lookup: found result in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = result, sym->kind = 0
绑定变量: result -> VarDefContext
CheckLValue 绑定变量: result, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2da890, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1.000000
[DEBUG] visitPrimaryExp: 1.000000
[DEBUG] visitUnaryExp: 1e-6
[DEBUG] visitPrimaryExp: 1e-6
[DEBUG] visitUnaryExp: result
[DEBUG] visitPrimaryExp: result
SymbolTable::lookup: found result in scope level 3, kind=0, const_def_ctx=0
CheckLValue: found sym->name = result, sym->kind = 0
绑定变量: result -> VarDefContext
CheckLValue 绑定变量: result, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2da890, sym->const_def_ctx: 0
dim_count: 0, subscript_count: 0
[DEBUG] visitUnaryExp: 1.000000
[DEBUG] visitPrimaryExp: 1.000000
[DEBUG] visitUnaryExp: -1e-6
[DEBUG] visitUnaryExp: 1e-6
[DEBUG] visitPrimaryExp: 1e-6
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(1)
[DEBUG] visitUnaryExp: putint(1)
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 1
[DEBUG] visitUnaryExp: 1
[DEBUG] visitPrimaryExp: 1
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Block 
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putint(0)
[DEBUG] visitUnaryExp: putint(0)
[DEBUG] 函数调用: putint
[DEBUG] CheckFuncCall: putint
SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: ExpStmt 
[DEBUG] CheckExp: putch(10)
[DEBUG] visitUnaryExp: putch(10)
[DEBUG] 函数调用: putch
[DEBUG] CheckFuncCall: putch
SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0
[DEBUG] 处理函数调用参数:
[DEBUG] CheckExp: 10
[DEBUG] visitUnaryExp: 10
[DEBUG] visitPrimaryExp: 10
[DEBUG] 检查参数 0: 实参类型 1 形参类型 1
[DEBUG] visitStmt: Return ExpStmt 
[DEBUG] 检测到 return 语句
[DEBUG] visitReturnStmtInternal 被调用
[DEBUG] 有返回值的 return
[DEBUG] CheckExp: 0
[DEBUG] visitUnaryExp: 0
[DEBUG] visitPrimaryExp: 0
[DEBUG] 设置 current_func_has_return_ = true
[DEBUG] 函数 main has_return: 1 return_type_is_void: 0
SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0
[DEBUG IRGEN] 添加运行时库函数声明
[DEBUG IRGEN] 运行时库函数声明完成
[DEBUG IRGEN] visitCompUnit
[DEBUG] visitDecl: 开始处理声明
[DEBUG] visitDecl: 处理变量声明
[error] [irgen] 当前仅支持 int 类型变量

