diff --git a/include/irgen/IRGen.h b/include/irgen/IRGen.h index 947ffa5..2bbc48f 100644 --- a/include/irgen/IRGen.h +++ b/include/irgen/IRGen.h @@ -13,6 +13,8 @@ #include "ir/IR.h" #include "sem/Sema.h" +#define IRGen_DEBUG 0 + namespace ir { class Module; class Function; diff --git a/include/sem/Sema.h b/include/sem/Sema.h index 10e4d8e..1a1a0c0 100644 --- a/include/sem/Sema.h +++ b/include/sem/Sema.h @@ -8,6 +8,8 @@ #include "SysYParser.h" #include "ir/IR.h" +#define Sema_DEBUG 0 + // 表达式信息结构 struct ExprInfo { std::shared_ptr type = nullptr; diff --git a/result.txt b/result.txt deleted file mode 100644 index 893ee2e..0000000 --- a/result.txt +++ /dev/null @@ -1,26478 +0,0 @@ -========== 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(iname = 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/2){getarray(B[i]);}i=i+1;}starttime();i=0;while(i=T/2){intj=0;while(j 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(j1){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(j1){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(j1){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(j1){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 类型变量 - diff --git a/src/irgen/IRGenDecl.cpp b/src/irgen/IRGenDecl.cpp index bc324f1..62c91b4 100644 --- a/src/irgen/IRGenDecl.cpp +++ b/src/irgen/IRGenDecl.cpp @@ -30,14 +30,14 @@ int TryGetConstInt(SysYParser::ConstExpContext* ctx) { // 注意:visitBlock 已经在 IRGenFunc.cpp 中实现,这里不要重复定义 std::any IRGenImpl::visitDecl(SysYParser::DeclContext* ctx) { - std::cerr << "[DEBUG] visitDecl: 开始处理声明" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitDecl: 开始处理声明" << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少变量声明")); } // 处理 varDecl if (auto* varDecl = ctx->varDecl()) { - std::cerr << "[DEBUG] visitDecl: 处理变量声明" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitDecl: 处理变量声明" << std::endl; // 检查类型 if (varDecl->bType() && varDecl->bType()->Int()) { for (auto* varDef : varDecl->varDef()) { @@ -50,7 +50,7 @@ std::any IRGenImpl::visitDecl(SysYParser::DeclContext* ctx) { // 处理 constDecl if (ctx->constDecl()) { - std::cerr << "[DEBUG] visitDecl: 处理常量声明" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitDecl: 处理常量声明" << std::endl; auto* constDecl = ctx->constDecl(); if (constDecl->bType() && constDecl->bType()->Int()) { @@ -63,18 +63,18 @@ std::any IRGenImpl::visitDecl(SysYParser::DeclContext* ctx) { throw std::runtime_error(FormatError("irgen", "未知的常量类型")); } } - std::cerr << "[DEBUG] visitDecl: 声明处理完成" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitDecl: 声明处理完成" << std::endl; return {}; } // 在 IRGenDecl.cpp 中确保有这个函数 std::any IRGenImpl::visitConstDecl(SysYParser::ConstDeclContext* ctx) { - std::cerr << "[DEBUG] visitConstDecl: 开始处理常量声明" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitConstDecl: 开始处理常量声明" << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "非法常量声明")); } - std::cerr << "[DEBUG] visitConstDecl: processing constant declaration" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitConstDecl: processing constant declaration" << std::endl; // 检查类型 if (ctx->bType()) { @@ -95,7 +95,7 @@ std::any IRGenImpl::visitConstDecl(SysYParser::ConstDeclContext* ctx) { throw std::runtime_error(FormatError("irgen", "常量声明缺少类型")); } - std::cerr << "[DEBUG] visitConstDecl: 常量声明处理完成" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitConstDecl: 常量声明处理完成" << std::endl; return {}; } @@ -115,7 +115,7 @@ std::any IRGenImpl::visitConstDef(SysYParser::ConstDefContext* ctx) { if (constDecl && constDecl->bType()) { if (constDecl->bType()->Float()) { is_float = true; - std::cerr << "[DEBUG] visitConstDef: 常量 " << const_name << " 是 float 类型" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitConstDef: 常量 " << const_name << " 是 float 类型" << std::endl; } } @@ -243,7 +243,7 @@ std::any IRGenImpl::visitConstDef(SysYParser::ConstDefContext* ctx) { // TO DO:visitVarDef来区分全局和局部变量,并且正确处理数组变量的定义和初始化 std::any IRGenImpl::visitVarDef(SysYParser::VarDefContext* ctx) { - std::cerr << "[DEBUG] visitVarDef: 开始处理变量定义" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitVarDef: 开始处理变量定义" << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少变量定义")); } @@ -253,22 +253,22 @@ std::any IRGenImpl::visitVarDef(SysYParser::VarDefContext* ctx) { } std::string varName = ctx->Ident()->getText(); - std::cerr << "[DEBUG] visitVarDef: 变量名称: " << varName << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitVarDef: 变量名称: " << varName << std::endl; // 防止同一个变量被多次分配存储空间。 if (storage_map_.find(ctx) != storage_map_.end()) { throw std::runtime_error(FormatError("irgen", "声明重复生成存储槽位: " + varName)); } bool is_array = !ctx->constExp().empty(); - std::cerr << "[DEBUG] visitVarDef: 是否为数组: " << (is_array ? "是" : "否") << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitVarDef: 是否为数组: " << (is_array ? "是" : "否") << std::endl; // 使用 func_ 来判断:func_ == nullptr 表示在全局作用域 if (func_ == nullptr) { - std::cerr << "[DEBUG] visitVarDef: 处理全局变量" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitVarDef: 处理全局变量" << std::endl; // 全局变量处理 return HandleGlobalVariable(ctx, varName, is_array); } else { - std::cerr << "[DEBUG] visitVarDef: 处理局部变量" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitVarDef: 处理局部变量" << std::endl; // 局部变量处理 return HandleLocalVariable(ctx, varName, is_array); } @@ -277,7 +277,7 @@ std::any IRGenImpl::visitVarDef(SysYParser::VarDefContext* ctx) { std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, const std::string& varName, bool is_array) { - std::cerr << "[DEBUG] HandleGlobalVariable: 开始处理全局变量 " << varName << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 开始处理全局变量 " << varName << std::endl; // 获取变量类型(int 或 float) bool is_float = false; @@ -285,9 +285,9 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, if (varDecl && varDecl->bType()) { if (varDecl->bType()->Float()) { is_float = true; - std::cerr << "[DEBUG] HandleGlobalVariable: 变量 " << varName << " 是 float 类型" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 变量 " << varName << " 是 float 类型" << std::endl; } else if (varDecl->bType()->Int()) { - std::cerr << "[DEBUG] HandleGlobalVariable: 变量 " << varName << " 是 int 类型" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 变量 " << varName << " 是 int 类型" << std::endl; } } @@ -307,7 +307,7 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, total_size *= dim_size; } - std::cerr << "[DEBUG] HandleGlobalVariable: 数组总大小: " << total_size << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 数组总大小: " << total_size << std::endl; // 创建数组类型 std::shared_ptr element_type; @@ -319,17 +319,17 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, auto array_type = ir::Type::GetArrayType(element_type, dimensions); ir::GlobalValue* global_array = module_.CreateGlobal(varName, array_type); - std::cerr << "[DEBUG] HandleGlobalVariable: 创建全局数组: " << varName << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 创建全局数组: " << varName << std::endl; // 处理初始化值 std::vector init_consts; if (auto* initVal = ctx->initVal()) { - std::cerr << "[DEBUG] HandleGlobalVariable: 处理初始化值" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 处理初始化值" << std::endl; auto result = initVal->accept(this); if (result.has_value()) { try { auto init_vec = std::any_cast>(result); - std::cerr << "[DEBUG] HandleGlobalVariable: 获取到初始化值列表, 大小: " << init_vec.size() << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 获取到初始化值列表, 大小: " << init_vec.size() << std::endl; for (auto* val : init_vec) { if (auto* const_int = dynamic_cast(val)) { init_consts.push_back(const_int); @@ -347,7 +347,7 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, } catch (const std::bad_any_cast&) { try { ir::Value* single_val = std::any_cast(result); - std::cerr << "[DEBUG] HandleGlobalVariable: 获取到单个初始化值" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 获取到单个初始化值" << std::endl; if (auto* const_int = dynamic_cast(single_val)) { init_consts.push_back(const_int); } else if (auto* const_float = dynamic_cast(single_val)) { @@ -378,7 +378,7 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, // 设置全局数组的初始化器 if (!init_consts.empty()) { global_array->SetInitializer(init_consts); - std::cerr << "[DEBUG] HandleGlobalVariable: 设置全局数组初始化器" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 设置全局数组初始化器" << std::endl; } // 存储全局变量引用 @@ -395,12 +395,12 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, } ir::GlobalValue* global_var = module_.CreateGlobal(varName, var_type); - std::cerr << "[DEBUG] HandleGlobalVariable: 创建全局标量变量: " << varName << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 创建全局标量变量: " << varName << std::endl; // 处理初始化值 ir::ConstantValue* init_value = nullptr; if (auto* initVal = ctx->initVal()) { - std::cerr << "[DEBUG] HandleGlobalVariable: 处理标量初始化值" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleGlobalVariable: 处理标量初始化值" << std::endl; auto result = initVal->accept(this); if (result.has_value()) { try { @@ -461,7 +461,7 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, std::any IRGenImpl::HandleLocalVariable(SysYParser::VarDefContext* ctx, const std::string& varName, bool is_array) { - std::cerr << "[DEBUG] HandleLocalVariable: 开始处理局部变量 " << varName << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleLocalVariable: 开始处理局部变量 " << varName << std::endl; // 获取变量类型 bool is_float = false; @@ -469,7 +469,7 @@ std::any IRGenImpl::HandleLocalVariable(SysYParser::VarDefContext* ctx, if (varDecl && varDecl->bType()) { if (varDecl->bType()->Float()) { is_float = true; - std::cerr << "[DEBUG] HandleLocalVariable: 变量 " << varName << " 是 float 类型" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleLocalVariable: 变量 " << varName << " 是 float 类型" << std::endl; } } @@ -650,31 +650,31 @@ std::any IRGenImpl::HandleLocalVariable(SysYParser::VarDefContext* ctx, std::any IRGenImpl::visitInitVal(SysYParser::InitValContext* ctx) { - std::cerr << "[DEBUG] visitInitVal: 开始处理初始化值" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitInitVal: 开始处理初始化值" << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "非法初始化值")); } // 如果是单个表达式 if (ctx->exp()) { - std::cerr << "[DEBUG] visitInitVal: 处理表达式初始化" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitInitVal: 处理表达式初始化" << std::endl; return EvalExpr(*ctx->exp()); } // 如果是聚合初始化(花括号列表) else if (!ctx->initVal().empty()) { - std::cerr << "[DEBUG] visitInitVal: 处理聚合初始化" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitInitVal: 处理聚合初始化" << std::endl; // 处理嵌套聚合初始化 return ProcessNestedInitVals(ctx); } - std::cerr << "[DEBUG] visitInitVal: 空初始化列表" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitInitVal: 空初始化列表" << std::endl; // 空初始化列表 return std::vector{}; } // 新增:处理嵌套聚合初始化的辅助函数 std::vector IRGenImpl::ProcessNestedInitVals(SysYParser::InitValContext* ctx) { - std::cerr << "[DEBUG] ProcessNestedInitVals: 开始处理嵌套初始化值" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] ProcessNestedInitVals: 开始处理嵌套初始化值" << std::endl; std::vector all_values; for (auto* init_val : ctx->initVal()) { @@ -684,13 +684,13 @@ std::vector IRGenImpl::ProcessNestedInitVals(SysYParser::InitValCont // 尝试获取单个值 ir::Value* value = std::any_cast(result); all_values.push_back(value); - std::cerr << "[DEBUG] ProcessNestedInitVals: 获取到单个值" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] ProcessNestedInitVals: 获取到单个值" << std::endl; } catch (const std::bad_any_cast&) { try { // 尝试获取值列表(嵌套情况) std::vector nested_values = std::any_cast>(result); - std::cerr << "[DEBUG] ProcessNestedInitVals: 获取到嵌套值列表, 大小: " << nested_values.size() << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] ProcessNestedInitVals: 获取到嵌套值列表, 大小: " << nested_values.size() << std::endl; // 展平嵌套的值 all_values.insert(all_values.end(), nested_values.begin(), nested_values.end()); @@ -702,18 +702,18 @@ std::vector IRGenImpl::ProcessNestedInitVals(SysYParser::InitValCont } } } else { - std::cerr << "[DEBUG] ProcessNestedInitVals: 无初始化值结果" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] ProcessNestedInitVals: 无初始化值结果" << std::endl; } } - std::cerr << "[DEBUG] ProcessNestedInitVals: 共获取 " << all_values.size() << " 个初始化值" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] ProcessNestedInitVals: 共获取 " << all_values.size() << " 个初始化值" << std::endl; return all_values; } int IRGenImpl::TryEvaluateConstInt(SysYParser::ConstExpContext* ctx) { - std::cerr << "[DEBUG] TryEvaluateConstInt: 开始求值常量表达式" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] TryEvaluateConstInt: 开始求值常量表达式" << std::endl; if (!ctx) { - std::cerr << "[DEBUG] TryEvaluateConstInt: ctx is null" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] TryEvaluateConstInt: ctx is null" << std::endl; return 0; } diff --git a/src/irgen/IRGenExp.cpp b/src/irgen/IRGenExp.cpp index 9e33971..035c799 100644 --- a/src/irgen/IRGenExp.cpp +++ b/src/irgen/IRGenExp.cpp @@ -22,7 +22,7 @@ // - ... ir::Value* IRGenImpl::EvalExpr(SysYParser::ExpContext& expr) { - std::cout << "[DEBUG IRGEN] EvalExpr: " << expr.getText() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] EvalExpr: " << expr.getText() << std::endl; try { auto result_any = expr.accept(this); @@ -33,7 +33,7 @@ ir::Value* IRGenImpl::EvalExpr(SysYParser::ExpContext& expr) { try { ir::Value* result = std::any_cast(result_any); - std::cerr << "[DEBUG] EvalExpr: success, result = " << (void*)result << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] EvalExpr: success, result = " << (void*)result << std::endl; return result; } catch (const std::bad_any_cast& e) { std::cerr << "[ERROR] EvalExpr: bad any_cast - " << e.what() << std::endl; @@ -42,7 +42,7 @@ ir::Value* IRGenImpl::EvalExpr(SysYParser::ExpContext& expr) { // 尝试其他可能的类型 try { // 检查是否是无值的any(可能来自visit函数返回{}) - std::cerr << "[DEBUG] EvalExpr: Trying to handle empty any" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] EvalExpr: Trying to handle empty any" << std::endl; return nullptr; } catch (...) { throw std::runtime_error(FormatError("irgen", "表达式求值返回了错误的类型")); @@ -63,18 +63,18 @@ ir::Value* IRGenImpl::EvalCond(SysYParser::CondContext& cond) { // 基本表达式:数字、变量、括号表达式 std::any IRGenImpl::visitPrimaryExp(SysYParser::PrimaryExpContext* ctx) { - std::cout << "[DEBUG IRGEN] visitPrimaryExp: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitPrimaryExp: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少基本表达式")); } - std::cerr << "[DEBUG] visitPrimaryExp" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitPrimaryExp" << std::endl; // 处理数字字面量 if (ctx->DECIMAL_INT()) { int value = std::stoi(ctx->DECIMAL_INT()->getText()); ir::Value* const_int = builder_.CreateConstInt(value); - std::cerr << "[DEBUG] visitPrimaryExp: constant int " << value + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitPrimaryExp: constant int " << value << " created as " << (void*)const_int << std::endl; return static_cast(const_int); } @@ -92,7 +92,7 @@ std::any IRGenImpl::visitPrimaryExp(SysYParser::PrimaryExpContext* ctx) { value = 0.0f; } ir::Value* const_float = builder_.CreateConstFloat(value); - std::cerr << "[DEBUG] visitPrimaryExp: constant hex float " << value + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitPrimaryExp: constant hex float " << value << " created as " << (void*)const_float << std::endl; return static_cast(const_float); } @@ -109,7 +109,7 @@ std::any IRGenImpl::visitPrimaryExp(SysYParser::PrimaryExpContext* ctx) { value = 0.0f; } ir::Value* const_float = builder_.CreateConstFloat(value); - std::cerr << "[DEBUG] visitPrimaryExp: constant dec float " << value + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitPrimaryExp: constant dec float " << value << " created as " << (void*)const_float << std::endl; return static_cast(const_float); } @@ -135,13 +135,13 @@ std::any IRGenImpl::visitPrimaryExp(SysYParser::PrimaryExpContext* ctx) { // 处理变量 if (ctx->lVal()) { - std::cerr << "[DEBUG] visitPrimaryExp: visiting lVal" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitPrimaryExp: visiting lVal" << std::endl; return ctx->lVal()->accept(this); } // 处理括号表达式 if (ctx->L_PAREN() && ctx->exp()) { - std::cerr << "[DEBUG] visitPrimaryExp: visiting parenthesized expression" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitPrimaryExp: visiting parenthesized expression" << std::endl; return EvalExpr(*ctx->exp()); } @@ -160,13 +160,13 @@ std::any IRGenImpl::visitLVal(SysYParser::LValContext* ctx) { } std::string varName = ctx->Ident()->getText(); - std::cerr << "[DEBUG] visitLVal: " << varName << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitLVal: " << varName << std::endl; // 优先检查是否是常量 auto const_it = const_value_map_.find(varName); if (const_it != const_value_map_.end()) { // 常量直接返回值,不需要load - std::cerr << "[DEBUG] visitLVal: constant " << varName << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitLVal: constant " << varName << std::endl; return static_cast(const_it->second); } @@ -254,7 +254,7 @@ std::any IRGenImpl::visitLVal(SysYParser::LValContext* ctx) { } std::any IRGenImpl::visitAddExp(SysYParser::AddExpContext* ctx) { - std::cout << "[DEBUG IRGEN] visitAddExp: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitAddExp: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "非法加法表达式")); } @@ -278,7 +278,7 @@ std::any IRGenImpl::visitAddExp(SysYParser::AddExpContext* ctx) { } ir::Value* right = std::any_cast(right_any); - std::cerr << "[DEBUG] visitAddExp: left=" << (void*)left + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitAddExp: left=" << (void*)left << ", type=" << (left->GetType()->IsFloat() ? "float" : "int") << ", right=" << (void*)right << ", type=" << (right->GetType()->IsFloat() ? "float" : "int") << std::endl; @@ -318,7 +318,7 @@ std::any IRGenImpl::visitAddExp(SysYParser::AddExpContext* ctx) { std::any IRGenImpl::visitMulExp(SysYParser::MulExpContext* ctx) { - std::cout << "[DEBUG IRGEN] visitMulExp: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitMulExp: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "非法乘法表达式")); } @@ -342,7 +342,7 @@ std::any IRGenImpl::visitMulExp(SysYParser::MulExpContext* ctx) { } ir::Value* right = std::any_cast(right_any); - std::cerr << "[DEBUG] visitMulExp: left=" << (void*)left + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitMulExp: left=" << (void*)left << ", type=" << (left->GetType()->IsFloat() ? "float" : "int") << ", right=" << (void*)right << ", type=" << (right->GetType()->IsFloat() ? "float" : "int") << std::endl; @@ -438,14 +438,14 @@ std::any IRGenImpl::visitCallExp(SysYParser::UnaryExpContext* ctx) { } std::string funcName = ctx->Ident()->getText(); - std::cout << "[DEBUG IRGEN] visitCallExp: 调用函数 " << funcName << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitCallExp: 调用函数 " << funcName << std::endl; // 查找函数对象 ir::Function* callee = module_.FindFunction(funcName); // 如果没找到,可能是运行时函数还没声明,尝试动态声明 if (!callee) { - std::cout << "[DEBUG IRGEN] 函数 " << funcName << " 未找到,尝试动态声明" << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] 函数 " << funcName << " 未找到,尝试动态声明" << std::endl; // 根据函数名动态创建运行时函数声明 callee = CreateRuntimeFunctionDecl(funcName); @@ -460,7 +460,7 @@ std::any IRGenImpl::visitCallExp(SysYParser::UnaryExpContext* ctx) { auto argList = ctx->funcRParams()->accept(this); try { args = std::any_cast>(argList); - std::cout << "[DEBUG IRGEN] visitCallExp: 收集到 " << args.size() << " 个参数" << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitCallExp: 收集到 " << args.size() << " 个参数" << std::endl; } catch (const std::bad_any_cast& e) { std::cerr << "[ERROR] visitCallExp: 函数调用参数类型错误: " << e.what() << std::endl; } @@ -475,13 +475,13 @@ std::any IRGenImpl::visitCallExp(SysYParser::UnaryExpContext* ctx) { return static_cast(builder_.CreateConstInt(0)); } - std::cout << "[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 " << (void*)callResult << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 " << (void*)callResult << std::endl; return static_cast(callResult); } // 动态创建运行时函数声明的辅助函数 ir::Function* IRGenImpl::CreateRuntimeFunctionDecl(const std::string& funcName) { - std::cout << "[DEBUG IRGEN] CreateRuntimeFunctionDecl: " << funcName << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] CreateRuntimeFunctionDecl: " << funcName << std::endl; // 根据常见运行时函数名创建对应的函数类型 if (funcName == "getint" || funcName == "getch") { @@ -718,7 +718,7 @@ std::any IRGenImpl::visitRelExp(SysYParser::RelExpContext* ctx) { auto* lhs = std::any_cast(left_any); auto* rhs = std::any_cast(right_any); - std::cerr << "[DEBUG] visitRelExp: left=" << (void*)lhs + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitRelExp: left=" << (void*)lhs << ", type=" << (lhs->GetType()->IsFloat() ? "float" : "int") << ", right=" << (void*)rhs << ", type=" << (rhs->GetType()->IsFloat() ? "float" : "int") << std::endl; @@ -792,7 +792,7 @@ std::any IRGenImpl::visitEqExp(SysYParser::EqExpContext* ctx) { auto* lhs = std::any_cast(left_any); auto* rhs = std::any_cast(right_any); - std::cerr << "[DEBUG] visitEqExp: left=" << (void*)lhs + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitEqExp: left=" << (void*)lhs << ", type=" << (lhs->GetType()->IsFloat() ? "float" : "int") << ", right=" << (void*)rhs << ", type=" << (rhs->GetType()->IsFloat() ? "float" : "int") << std::endl; @@ -839,7 +839,7 @@ std::any IRGenImpl::visitEqExp(SysYParser::EqExpContext* ctx) { ir::Value* IRGenImpl::EvalAssign(SysYParser::StmtContext* ctx) { - std::cout << "[DEBUG IRGEN] visitCond: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitCond: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx || !ctx->lVal() || !ctx->exp()) { throw std::runtime_error(FormatError("irgen", "非法赋值语句")); } @@ -888,8 +888,8 @@ ir::Value* IRGenImpl::EvalAssign(SysYParser::StmtContext* ctx) { } else { // 普通标量赋值 // 调试输出指针类型 - std::cerr << "[DEBUG] base_ptr type: " << base_ptr->GetType() << std::endl; - std::cerr << "[DEBUG] rhs type: " << rhs->GetType()<< std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] base_ptr type: " << base_ptr->GetType() << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] rhs type: " << rhs->GetType()<< std::endl; // 如果 base_ptr 不是指针类型,可能需要特殊处理 if (!base_ptr->GetType()->IsPtrInt32()) { diff --git a/src/irgen/IRGenFunc.cpp b/src/irgen/IRGenFunc.cpp index f9b42f2..ff77c8e 100644 --- a/src/irgen/IRGenFunc.cpp +++ b/src/irgen/IRGenFunc.cpp @@ -31,7 +31,7 @@ IRGenImpl::IRGenImpl(ir::Module& module, const SemanticContext& sema) } void IRGenImpl::AddRuntimeFunctions() { - std::cout << "[DEBUG IRGEN] 添加运行时库函数声明" << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] 添加运行时库函数声明" << std::endl; // 输入函数(返回 int) module_.CreateFunction("getint", @@ -101,12 +101,12 @@ void IRGenImpl::AddRuntimeFunctions() { ir::Type::GetInt32Type(), ir::Type::GetInt32Type()})); - std::cout << "[DEBUG IRGEN] 运行时库函数声明完成" << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] 运行时库函数声明完成" << std::endl; } // 修正:没有 mainFuncDef,通过函数名找到 main std::any IRGenImpl::visitCompUnit(SysYParser::CompUnitContext* ctx) { - std::cout << "[DEBUG IRGEN] visitCompUnit" << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitCompUnit" << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少编译单元")); } @@ -129,7 +129,7 @@ std::any IRGenImpl::visitCompUnit(SysYParser::CompUnitContext* ctx) { } std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { - std::cout << "[DEBUG IRGEN] visitFuncDef: " << (ctx && ctx->Ident() ? ctx->Ident()->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitFuncDef: " << (ctx && ctx->Ident() ? ctx->Ident()->getText() : "") << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少函数定义")); } @@ -191,7 +191,7 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { auto func_type = ir::Type::GetFunctionType(ret_type, param_types); // 调试输出 - std::cerr << "[DEBUG] visitFuncDef: 创建函数 " << funcName + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitFuncDef: 创建函数 " << funcName << ",返回类型: " << (ret_type->IsVoid() ? "void" : ret_type->IsFloat() ? "float" : "int") << ",参数数量: " << param_types.size() << std::endl; @@ -204,7 +204,7 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { throw std::runtime_error(FormatError("irgen", "创建函数失败: " + funcName)); } - std::cerr << "[DEBUG] visitFuncDef: 函数对象地址: " << (void*)func_ << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitFuncDef: 函数对象地址: " << (void*)func_ << std::endl; // 设置插入点 auto* entry_block = func_->GetEntry(); @@ -251,7 +251,8 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { throw std::runtime_error(FormatError("irgen", "函数对象无效")); } - std::cerr << "[DEBUG] visitFuncDef: 为函数 " << funcName + if (IRGen_DEBUG) + std::cerr << "[DEBUG] visitFuncDef: 为函数 " << funcName << " 添加参数 " << name << ",类型: " << (param_ty->IsInt32() ? "int32" : param_ty->IsFloat() ? "float" : param_ty->IsPtrInt32() ? "ptr_int32" : param_ty->IsPtrFloat() ? "ptr_float" : "other") @@ -288,17 +289,18 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { builder_.CreateStore(added_arg, slot); param_map_[name] = slot; - std::cerr << "[DEBUG] visitFuncDef: 参数 " << name << " 处理完成" << std::endl; + if (IRGen_DEBUG) + std::cerr << "[DEBUG] visitFuncDef: 参数 " << name << " 处理完成" << std::endl; } } // 生成函数体 - std::cerr << "[DEBUG] visitFuncDef: 开始生成函数体" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitFuncDef: 开始生成函数体" << std::endl; ctx->block()->accept(this); // 如果函数没有终止指令,添加默认返回 if (!func_->GetEntry()->HasTerminator()) { - std::cerr << "[DEBUG] visitFuncDef: 函数体没有终止指令,添加默认返回" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitFuncDef: 函数体没有终止指令,添加默认返回" << std::endl; auto retVal = builder_.CreateConstInt(0); builder_.CreateRet(retVal); } @@ -311,14 +313,14 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { throw; } - std::cerr << "[DEBUG] visitFuncDef: 函数 " << funcName << " 生成完成" << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] visitFuncDef: 函数 " << funcName << " 生成完成" << std::endl; func_ = nullptr; return {}; } std::any IRGenImpl::visitBlock(SysYParser::BlockContext* ctx) { - std::cout << "[DEBUG IRGEN] visitBlock: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitBlock: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少语句块")); } @@ -333,7 +335,7 @@ std::any IRGenImpl::visitBlock(SysYParser::BlockContext* ctx) { } auto* cur = builder_.GetInsertBlock(); - std::cout << "[DEBUG] current insert block: " + if (IRGen_DEBUG) std::cout << "[DEBUG] current insert block: " << (cur ? cur->GetName() : "") << std::endl; if (cur && cur->HasTerminator()) { break; @@ -351,7 +353,7 @@ IRGenImpl::BlockFlow IRGenImpl::VisitBlockItemResult( } // 用于遍历块内项,返回是否继续访问后续项(如遇到 return/break/continue 则终止访问) std::any IRGenImpl::visitBlockItem(SysYParser::BlockItemContext* ctx) { - std::cout << "[DEBUG IRGEN] visitBlockItem: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitBlockItem: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少块内项")); } diff --git a/src/irgen/IRGenStmt.cpp b/src/irgen/IRGenStmt.cpp index 18c74d7..33a4067 100644 --- a/src/irgen/IRGenStmt.cpp +++ b/src/irgen/IRGenStmt.cpp @@ -16,7 +16,7 @@ // - 空语句、块语句嵌套分发之外的更多语句形态 std::any IRGenImpl::visitStmt(SysYParser::StmtContext* ctx) { - std::cout << "[DEBUG IRGEN] visitStmt: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] visitStmt: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少语句")); } @@ -65,7 +65,7 @@ std::any IRGenImpl::visitStmt(SysYParser::StmtContext* ctx) { // 修改 HandleReturnStmt 函数 IRGenImpl::BlockFlow IRGenImpl::HandleReturnStmt(SysYParser::StmtContext* ctx) { - std::cout << "[DEBUG IRGEN] HandleReturnStmt: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] HandleReturnStmt: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少 return 语句")); } @@ -123,7 +123,7 @@ IRGenImpl::BlockFlow IRGenImpl::HandleReturnStmt(SysYParser::StmtContext* ctx) { // if语句(待实现) IRGenImpl::BlockFlow IRGenImpl::HandleIfStmt(SysYParser::StmtContext* ctx) { - std::cout << "[DEBUG IRGEN] HandleIfStmt: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] HandleIfStmt: " << (ctx ? ctx->getText() : "") << std::endl; auto* cond = ctx->cond(); auto* thenStmt = ctx->stmt(0); @@ -134,10 +134,10 @@ IRGenImpl::BlockFlow IRGenImpl::HandleIfStmt(SysYParser::StmtContext* ctx) { auto* elseBlock = (ctx->Else() && elseStmt) ? func_->CreateBlock("else") : nullptr; auto* mergeBlock = func_->CreateBlock("merge"); - std::cout << "[DEBUG IF] thenBlock: " << thenBlock->GetName() << std::endl; - if (elseBlock) std::cout << "[DEBUG IF] elseBlock: " << elseBlock->GetName() << std::endl; - std::cout << "[DEBUG IF] mergeBlock: " << mergeBlock->GetName() << std::endl; - std::cout << "[DEBUG IF] current insert block before cond: " + if (IRGen_DEBUG) std::cout << "[DEBUG IF] thenBlock: " << thenBlock->GetName() << std::endl; + if (elseBlock) if (IRGen_DEBUG) std::cout << "[DEBUG IF] elseBlock: " << elseBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] mergeBlock: " << mergeBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] current insert block before cond: " << builder_.GetInsertBlock()->GetName() << std::endl; // 生成条件 @@ -145,66 +145,66 @@ IRGenImpl::BlockFlow IRGenImpl::HandleIfStmt(SysYParser::StmtContext* ctx) { // 创建条件跳转 if (elseBlock) { - std::cout << "[DEBUG IF] Creating condbr: " << condValue->GetName() + if (IRGen_DEBUG) std::cout << "[DEBUG IF] Creating condbr: " << condValue->GetName() << " -> " << thenBlock->GetName() << ", " << elseBlock->GetName() << std::endl; builder_.CreateCondBr(condValue, thenBlock, elseBlock); } else { - std::cout << "[DEBUG IF] Creating condbr: " << condValue->GetName() + if (IRGen_DEBUG) std::cout << "[DEBUG IF] Creating condbr: " << condValue->GetName() << " -> " << thenBlock->GetName() << ", " << mergeBlock->GetName() << std::endl; builder_.CreateCondBr(condValue, thenBlock, mergeBlock); } // 生成 then 分支 - std::cout << "[DEBUG IF] Generating then branch in block: " << thenBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] Generating then branch in block: " << thenBlock->GetName() << std::endl; builder_.SetInsertPoint(thenBlock); auto thenResult = thenStmt->accept(this); bool thenTerminated = (std::any_cast(thenResult) == BlockFlow::Terminated); - std::cout << "[DEBUG IF] then branch terminated: " << thenTerminated << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] then branch terminated: " << thenTerminated << std::endl; if (!thenTerminated) { - std::cout << "[DEBUG IF] Adding br to merge block from then" << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] Adding br to merge block from then" << std::endl; builder_.CreateBr(mergeBlock); } - std::cout << "[DEBUG IF] then block has terminator: " << thenBlock->HasTerminator() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] then block has terminator: " << thenBlock->HasTerminator() << std::endl; // 生成 else 分支 bool elseTerminated = false; if (elseBlock) { - std::cout << "[DEBUG IF] Generating else branch in block: " << elseBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] Generating else branch in block: " << elseBlock->GetName() << std::endl; builder_.SetInsertPoint(elseBlock); auto elseResult = elseStmt->accept(this); elseTerminated = (std::any_cast(elseResult) == BlockFlow::Terminated); - std::cout << "[DEBUG IF] else branch terminated: " << elseTerminated << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] else branch terminated: " << elseTerminated << std::endl; if (!elseTerminated) { - std::cout << "[DEBUG IF] Adding br to merge block from else" << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] Adding br to merge block from else" << std::endl; builder_.CreateBr(mergeBlock); } - std::cout << "[DEBUG IF] else block has terminator: " << elseBlock->HasTerminator() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IF] else block has terminator: " << elseBlock->HasTerminator() << std::endl; } // 决定后续插入点 - std::cout << "[DEBUG IF] thenTerminated=" << thenTerminated + if (IRGen_DEBUG) std::cout << "[DEBUG IF] thenTerminated=" << thenTerminated << ", elseTerminated=" << elseTerminated << std::endl; if (elseBlock) { if (thenTerminated && elseTerminated) { auto* afterIfBlock = func_->CreateBlock("after.if"); - std::cout << "[DEBUG IF] Both branches terminated, creating new block: " + if (IRGen_DEBUG) std::cout << "[DEBUG IF] Both branches terminated, creating new block: " << afterIfBlock->GetName() << std::endl; builder_.SetInsertPoint(afterIfBlock); } else { - std::cout << "[DEBUG IF] Setting insert point to merge block: " + if (IRGen_DEBUG) std::cout << "[DEBUG IF] Setting insert point to merge block: " << mergeBlock->GetName() << std::endl; builder_.SetInsertPoint(mergeBlock); } } else { - std::cout << "[DEBUG IF] No else, setting insert point to merge block: " + if (IRGen_DEBUG) std::cout << "[DEBUG IF] No else, setting insert point to merge block: " << mergeBlock->GetName() << std::endl; builder_.SetInsertPoint(mergeBlock); } - std::cout << "[DEBUG IF] Final insert block: " + if (IRGen_DEBUG) std::cout << "[DEBUG IF] Final insert block: " << builder_.GetInsertBlock()->GetName() << std::endl; return BlockFlow::Continue; @@ -212,56 +212,56 @@ IRGenImpl::BlockFlow IRGenImpl::HandleIfStmt(SysYParser::StmtContext* ctx) { // while语句(待实现)IRGenImpl::BlockFlow IRGenImpl::HandleWhileStmt(SysYParser::StmtContext* ctx) { IRGenImpl::BlockFlow IRGenImpl::HandleWhileStmt(SysYParser::StmtContext* ctx) { - std::cout << "[DEBUG IRGEN] HandleWhileStmt: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] HandleWhileStmt: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx || !ctx->cond() || !ctx->stmt(0)) { throw std::runtime_error(FormatError("irgen", "非法 while 语句")); } - std::cout << "[DEBUG WHILE] Current insert block before while: " + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] Current insert block before while: " << builder_.GetInsertBlock()->GetName() << std::endl; auto* condBlock = func_->CreateBlock("while.cond"); auto* bodyBlock = func_->CreateBlock("while.body"); auto* exitBlock = func_->CreateBlock("while.exit"); - std::cout << "[DEBUG WHILE] condBlock: " << condBlock->GetName() << std::endl; - std::cout << "[DEBUG WHILE] bodyBlock: " << bodyBlock->GetName() << std::endl; - std::cout << "[DEBUG WHILE] exitBlock: " << exitBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] condBlock: " << condBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] bodyBlock: " << bodyBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] exitBlock: " << exitBlock->GetName() << std::endl; - std::cout << "[DEBUG WHILE] Adding br to condBlock from current block" << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] Adding br to condBlock from current block" << std::endl; builder_.CreateBr(condBlock); loopStack_.push_back({condBlock, bodyBlock, exitBlock}); - std::cout << "[DEBUG WHILE] loopStack size: " << loopStack_.size() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] loopStack size: " << loopStack_.size() << std::endl; // 条件块 - std::cout << "[DEBUG WHILE] Generating condition in block: " << condBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] Generating condition in block: " << condBlock->GetName() << std::endl; builder_.SetInsertPoint(condBlock); auto* condValue = EvalCond(*ctx->cond()); builder_.CreateCondBr(condValue, bodyBlock, exitBlock); - std::cout << "[DEBUG WHILE] condBlock has terminator: " << condBlock->HasTerminator() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] condBlock has terminator: " << condBlock->HasTerminator() << std::endl; // 循环体 - std::cout << "[DEBUG WHILE] Generating body in block: " << bodyBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] Generating body in block: " << bodyBlock->GetName() << std::endl; builder_.SetInsertPoint(bodyBlock); auto bodyResult = ctx->stmt(0)->accept(this); bool bodyTerminated = (std::any_cast(bodyResult) == BlockFlow::Terminated); - std::cout << "[DEBUG WHILE] body terminated: " << bodyTerminated << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] body terminated: " << bodyTerminated << std::endl; if (!bodyTerminated) { - std::cout << "[DEBUG WHILE] Adding br to condBlock from body" << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] Adding br to condBlock from body" << std::endl; builder_.CreateBr(condBlock); } - std::cout << "[DEBUG WHILE] bodyBlock has terminator: " << bodyBlock->HasTerminator() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] bodyBlock has terminator: " << bodyBlock->HasTerminator() << std::endl; loopStack_.pop_back(); - std::cout << "[DEBUG WHILE] loopStack size after pop: " << loopStack_.size() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] loopStack size after pop: " << loopStack_.size() << std::endl; // 设置插入点为 exitBlock - std::cout << "[DEBUG WHILE] Setting insert point to exitBlock: " << exitBlock->GetName() << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] Setting insert point to exitBlock: " << exitBlock->GetName() << std::endl; builder_.SetInsertPoint(exitBlock); - std::cout << "[DEBUG WHILE] exitBlock has terminator before return: " + if (IRGen_DEBUG) std::cout << "[DEBUG WHILE] exitBlock has terminator before return: " << exitBlock->HasTerminator() << std::endl; return BlockFlow::Continue; @@ -269,15 +269,15 @@ IRGenImpl::BlockFlow IRGenImpl::HandleWhileStmt(SysYParser::StmtContext* ctx) { // break语句(待实现) IRGenImpl::BlockFlow IRGenImpl::HandleBreakStmt(SysYParser::StmtContext* ctx) { - std::cout << "[DEBUG IRGEN] HandleBreakStmt: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] HandleBreakStmt: " << (ctx ? ctx->getText() : "") << std::endl; if (loopStack_.empty()) { throw std::runtime_error(FormatError("irgen", "break 语句不在循环中")); } - std::cout << "[DEBUG BREAK] Current insert block before break: " + if (IRGen_DEBUG) std::cout << "[DEBUG BREAK] Current insert block before break: " << builder_.GetInsertBlock()->GetName() << std::endl; - std::cout << "[DEBUG BREAK] Breaking to exitBlock: " + if (IRGen_DEBUG) std::cout << "[DEBUG BREAK] Breaking to exitBlock: " << loopStack_.back().exitBlock->GetName() << std::endl; // 跳转到循环退出块 @@ -288,15 +288,15 @@ IRGenImpl::BlockFlow IRGenImpl::HandleBreakStmt(SysYParser::StmtContext* ctx) { } IRGenImpl::BlockFlow IRGenImpl::HandleContinueStmt(SysYParser::StmtContext* ctx) { - std::cout << "[DEBUG IRGEN] HandleContinueStmt: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] HandleContinueStmt: " << (ctx ? ctx->getText() : "") << std::endl; if (loopStack_.empty()) { throw std::runtime_error(FormatError("irgen", "continue 语句不在循环中")); } - std::cout << "[DEBUG CONTINUE] Current insert block before continue: " + if (IRGen_DEBUG) std::cout << "[DEBUG CONTINUE] Current insert block before continue: " << builder_.GetInsertBlock()->GetName() << std::endl; - std::cout << "[DEBUG CONTINUE] Continuing to condBlock: " + if (IRGen_DEBUG) std::cout << "[DEBUG CONTINUE] Continuing to condBlock: " << loopStack_.back().condBlock->GetName() << std::endl; // 跳转到循环条件块 @@ -310,7 +310,7 @@ IRGenImpl::BlockFlow IRGenImpl::HandleContinueStmt(SysYParser::StmtContext* ctx) // 赋值语句 // 赋值语句 IRGenImpl::BlockFlow IRGenImpl::HandleAssignStmt(SysYParser::StmtContext* ctx) { - std::cout << "[DEBUG IRGEN] HandleAssignStmt: " << (ctx ? ctx->getText() : "") << std::endl; + if (IRGen_DEBUG) std::cout << "[DEBUG IRGEN] HandleAssignStmt: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx || !ctx->lVal() || !ctx->exp()) { throw std::runtime_error(FormatError("irgen", "非法赋值语句")); @@ -324,7 +324,7 @@ IRGenImpl::BlockFlow IRGenImpl::HandleAssignStmt(SysYParser::StmtContext* ctx) { auto* lval = ctx->lVal(); std::string varName = lval->Ident()->getText(); - std::cerr << "[DEBUG] HandleAssignStmt: assigning to " << varName << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleAssignStmt: assigning to " << varName << std::endl; // 1. 检查是否为常量(不能给常量赋值) auto* const_decl = sema_.ResolveConstUse(lval); @@ -342,7 +342,7 @@ IRGenImpl::BlockFlow IRGenImpl::HandleAssignStmt(SysYParser::StmtContext* ctx) { auto it = storage_map_.find(var_decl); if (it != storage_map_.end()) { base_ptr = it->second; - std::cerr << "[DEBUG] HandleAssignStmt: found in storage_map_ for " << varName + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleAssignStmt: found in storage_map_ for " << varName << ", ptr = " << (void*)base_ptr << std::endl; } } @@ -352,7 +352,7 @@ IRGenImpl::BlockFlow IRGenImpl::HandleAssignStmt(SysYParser::StmtContext* ctx) { auto it2 = param_map_.find(varName); if (it2 != param_map_.end()) { base_ptr = it2->second; - std::cerr << "[DEBUG] HandleAssignStmt: found in param_map_ for " << varName + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleAssignStmt: found in param_map_ for " << varName << ", ptr = " << (void*)base_ptr << std::endl; } } @@ -362,7 +362,7 @@ IRGenImpl::BlockFlow IRGenImpl::HandleAssignStmt(SysYParser::StmtContext* ctx) { auto it3 = global_map_.find(varName); if (it3 != global_map_.end()) { base_ptr = it3->second; - std::cerr << "[DEBUG] HandleAssignStmt: found in global_map_ for " << varName + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleAssignStmt: found in global_map_ for " << varName << ", ptr = " << (void*)base_ptr << std::endl; } } @@ -372,7 +372,7 @@ IRGenImpl::BlockFlow IRGenImpl::HandleAssignStmt(SysYParser::StmtContext* ctx) { auto it4 = local_var_map_.find(varName); if (it4 != local_var_map_.end()) { base_ptr = it4->second; - std::cerr << "[DEBUG] HandleAssignStmt: found in local_var_map_ for " << varName + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleAssignStmt: found in local_var_map_ for " << varName << ", ptr = " << (void*)base_ptr << std::endl; } } @@ -401,21 +401,21 @@ IRGenImpl::BlockFlow IRGenImpl::HandleAssignStmt(SysYParser::StmtContext* ctx) { builder_.CreateStore(rhs, elem_ptr); } else { // 普通标量赋值 - std::cerr << "[DEBUG] HandleAssignStmt: scalar assignment to " << varName + if (IRGen_DEBUG) std::cerr << "[DEBUG] HandleAssignStmt: scalar assignment to " << varName << ", ptr = " << (void*)base_ptr << ", rhs = " << (void*)rhs << std::endl; // 在 HandleAssignStmt 中,存储前添加类型调试 if (base_ptr && base_ptr->GetType()) { - std::cerr << "[DEBUG] Is int32: " << base_ptr->GetType()->IsInt32() << std::endl; - std::cerr << "[DEBUG] Is float: " << base_ptr->GetType()->IsFloat() << std::endl; - std::cerr << "[DEBUG] Is ptr int32: " << base_ptr->GetType()->IsPtrInt32() << std::endl; - std::cerr << "[DEBUG] Is ptr float: " << base_ptr->GetType()->IsPtrFloat() << std::endl; - std::cerr << "[DEBUG] Is array: " << base_ptr->GetType()->IsArray() << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] Is int32: " << base_ptr->GetType()->IsInt32() << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] Is float: " << base_ptr->GetType()->IsFloat() << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] Is ptr int32: " << base_ptr->GetType()->IsPtrInt32() << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] Is ptr float: " << base_ptr->GetType()->IsPtrFloat() << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] Is array: " << base_ptr->GetType()->IsArray() << std::endl; } if (rhs && rhs->GetType()) { - std::cerr << "[DEBUG] Value is int32: " << rhs->GetType()->IsInt32() << std::endl; + if (IRGen_DEBUG) std::cerr << "[DEBUG] Value is int32: " << rhs->GetType()->IsInt32() << std::endl; } builder_.CreateStore(rhs, base_ptr); } diff --git a/src/sem/Sema.cpp b/src/sem/Sema.cpp index cbedf1d..f55f851 100644 --- a/src/sem/Sema.cpp +++ b/src/sem/Sema.cpp @@ -69,7 +69,7 @@ public: } else { return_type = ir::Type::GetInt32Type(); } - std::cout << "[DEBUG] 进入函数: " << name + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 进入函数: " << name << " 返回类型: " << (return_type->IsInt32() ? "int" : return_type->IsFloat() ? "float" : "void") << std::endl; @@ -85,7 +85,7 @@ public: if (ctx->block()) { // 处理函数体 ctx->block()->accept(this); } - std::cout << "[DEBUG] 函数 " << name + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 函数 " << name << " has_return: " << current_func_has_return_ << " return_type_is_void: " << return_type->IsVoid() << std::endl; @@ -172,7 +172,7 @@ public: std::vector dims; bool is_array = !ctx->constExp().empty(); // 调试输出 - std::cout << "[DEBUG] CheckVarDef: " << name + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] CheckVarDef: " << name << " base_type: " << (base_type->IsInt32() ? "int" : base_type->IsFloat() ? "float" : "unknown") << " is_array: " << is_array << " dim_count: " << ctx->constExp().size() << std::endl; @@ -187,23 +187,23 @@ public: throw std::runtime_error(FormatError("sema", "数组维度必须为正整数")); } dims.push_back(dim); - std::cout << "[DEBUG] dim[" << dims.size() - 1 << "] = " << dim << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] dim[" << dims.size() - 1 << "] = " << dim << std::endl; } // 创建数组类型 type = ir::Type::GetArrayType(base_type, dims); - std::cout << "[DEBUG] 创建数组类型完成" << std::endl; - std::cout << "[DEBUG] type->IsArray(): " << type->IsArray() << std::endl; - std::cout << "[DEBUG] type->GetKind(): " << (int)type->GetKind() << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 创建数组类型完成" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] type->IsArray(): " << type->IsArray() << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] type->GetKind(): " << (int)type->GetKind() << std::endl; // 验证数组类型 if (type->IsArray()) { auto* arr_type = dynamic_cast(type.get()); if (arr_type) { - std::cout << "[DEBUG] ArrayType dimensions: "; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] ArrayType dimensions: "; for (int d : arr_type->GetDimensions()) { - std::cout << d << " "; + if (Sema_DEBUG) std::cout << d << " "; } - std::cout << std::endl; - std::cout << "[DEBUG] Element type: " + if (Sema_DEBUG) std::cout << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] Element type: " << (arr_type->GetElementType()->IsInt32() ? "int" : arr_type->GetElementType()->IsFloat() ? "float" : "unknown") << std::endl; @@ -232,7 +232,7 @@ public: sym.param_types.clear(); // 确保不混淆 } table_.addSymbol(sym); // 添加到符号表 - std::cout << "[DEBUG] 符号添加完成: " << name + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 符号添加完成: " << name << " type_kind: " << (int)sym.type->GetKind() << " is_array: " << sym.type->IsArray() << std::endl; @@ -265,7 +265,7 @@ public: std::shared_ptr type = base_type; std::vector dims; bool is_array = !ctx->constExp().empty(); - std::cout << "[DEBUG] CheckConstDef: " << name + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] CheckConstDef: " << name << " base_type: " << (base_type->IsInt32() ? "int" : base_type->IsFloat() ? "float" : "unknown") << " is_array: " << is_array << " dim_count: " << ctx->constExp().size() << std::endl; @@ -276,10 +276,10 @@ public: throw std::runtime_error(FormatError("sema", "数组维度必须为正整数")); } dims.push_back(dim); - std::cout << "[DEBUG] dim[" << dims.size() - 1 << "] = " << dim << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] dim[" << dims.size() - 1 << "] = " << dim << std::endl; } type = ir::Type::GetArrayType(base_type, dims); - std::cout << "[DEBUG] 创建数组类型完成,IsArray: " << type->IsArray() << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 创建数组类型完成,IsArray: " << type->IsArray() << std::endl; } // ========== 绑定维度表达式 ========== @@ -294,14 +294,14 @@ public: BindConstInitVal(ctx->constInitVal()); init_values = table_.EvaluateConstInitVal(ctx->constInitVal(), dims, base_type); - std::cout << "[DEBUG] 初始化值数量: " << init_values.size() << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 初始化值数量: " << init_values.size() << std::endl; } // 检查初始化值数量 size_t expected_count = 1; if (is_array) { expected_count = 1; for (int d : dims) expected_count *= d; - std::cout << "[DEBUG] 期望元素数量: " << expected_count << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 期望元素数量: " << expected_count << std::endl; } if (init_values.size() > expected_count) { throw std::runtime_error(FormatError("sema", "初始化值过多")); @@ -309,14 +309,14 @@ public: Symbol sym; sym.name = name; sym.kind = SymbolKind::Constant; - std::cout << "CheckConstDef: before addSymbol, sym.kind = " << (int)sym.kind << std::endl; + if (Sema_DEBUG) std::cout << "CheckConstDef: before addSymbol, sym.kind = " << (int)sym.kind << std::endl; sym.type = type; sym.scope_level = table_.currentScopeLevel(); sym.is_initialized = true; sym.var_def_ctx = nullptr; sym.const_def_ctx = ctx; sym.const_def_ctx = ctx; - std::cout << "保存常量定义上下文: " << name << ", ctx: " << ctx << std::endl; + if (Sema_DEBUG) std::cout << "保存常量定义上下文: " << name << ", ctx: " << ctx << std::endl; // 存储常量值(仅对非数组有效) if (!is_array && !init_values.empty()) { if (base_type->IsInt32() && init_values[0].kind == SymbolTable::ConstValue::INT) { @@ -327,14 +327,14 @@ public: sym.const_value.f32 = init_values[0].float_val; } } else if (is_array) { - std::cout << "[DEBUG] 数组常量,不存储单个常量值" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 数组常量,不存储单个常量值" << std::endl; } table_.addSymbol(sym); - std::cout << "CheckConstDef: after addSymbol, sym.kind = " << (int)sym.kind << std::endl; + if (Sema_DEBUG) std::cout << "CheckConstDef: after addSymbol, sym.kind = " << (int)sym.kind << std::endl; auto* stored = table_.lookup(name); - std::cout << "CheckConstDef: after addSymbol, stored const_def_ctx = " << stored->const_def_ctx << std::endl; + if (Sema_DEBUG) std::cout << "CheckConstDef: after addSymbol, stored const_def_ctx = " << stored->const_def_ctx << std::endl; - std::cout << "[DEBUG] 常量符号添加完成" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 常量符号添加完成" << std::endl; } // ==================== 语句语义检查 ==================== @@ -343,20 +343,20 @@ public: std::any visitStmt(SysYParser::StmtContext* ctx) override { if (!ctx) return {}; // 调试输出 - std::cout << "[DEBUG] visitStmt: "; - if (ctx->Return()) std::cout << "Return "; - if (ctx->If()) std::cout << "If "; - if (ctx->While()) std::cout << "While "; - if (ctx->Break()) std::cout << "Break "; - if (ctx->Continue()) std::cout << "Continue "; - if (ctx->lVal() && ctx->Assign()) std::cout << "Assign "; - if (ctx->exp() && ctx->Semi()) std::cout << "ExpStmt "; - if (ctx->block()) std::cout << "Block "; - std::cout << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] visitStmt: "; + if (ctx->Return()) if (Sema_DEBUG) std::cout << "Return "; + if (ctx->If()) if (Sema_DEBUG) std::cout << "If "; + if (ctx->While()) if (Sema_DEBUG) std::cout << "While "; + if (ctx->Break()) if (Sema_DEBUG) std::cout << "Break "; + if (ctx->Continue()) if (Sema_DEBUG) std::cout << "Continue "; + if (ctx->lVal() && ctx->Assign()) if (Sema_DEBUG) std::cout << "Assign "; + if (ctx->exp() && ctx->Semi()) if (Sema_DEBUG) std::cout << "ExpStmt "; + if (ctx->block()) if (Sema_DEBUG) std::cout << "Block "; + if (Sema_DEBUG) std::cout << std::endl; // 判断语句类型 - 注意:Return() 返回的是 TerminalNode* if (ctx->Return() != nullptr) { // return 语句 - std::cout << "[DEBUG] 检测到 return 语句" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 检测到 return 语句" << std::endl; return visitReturnStmtInternal(ctx); } else if (ctx->lVal() != nullptr && ctx->Assign() != nullptr) { // 赋值语句 @@ -385,14 +385,14 @@ public: // return 语句内部实现 std::any visitReturnStmtInternal(SysYParser::StmtContext* ctx) { - std::cout << "[DEBUG] visitReturnStmtInternal 被调用" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] visitReturnStmtInternal 被调用" << std::endl; std::shared_ptr expected = current_func_return_type_; if (!expected) { throw std::runtime_error(FormatError("sema", "return 语句不在函数体内")); } if (ctx->exp() != nullptr) { // 有返回值的 return - std::cout << "[DEBUG] 有返回值的 return" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 有返回值的 return" << std::endl; ExprInfo ret_val = CheckExp(ctx->exp()); if (expected->IsVoid()) { throw std::runtime_error(FormatError("sema", "void 函数不能返回值")); @@ -405,23 +405,23 @@ public: } // 设置 has_return 标志 current_func_has_return_ = true; - std::cout << "[DEBUG] 设置 current_func_has_return_ = true" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 设置 current_func_has_return_ = true" << std::endl; } else { // 无返回值的 return - std::cout << "[DEBUG] 无返回值的 return" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 无返回值的 return" << std::endl; if (!expected->IsVoid()) { throw std::runtime_error(FormatError("sema", "非 void 函数必须返回值")); } // 设置 has_return 标志 current_func_has_return_ = true; - std::cout << "[DEBUG] 设置 current_func_has_return_ = true" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 设置 current_func_has_return_ = true" << std::endl; } return {}; } // 左值表达式(变量引用) std::any visitLVal(SysYParser::LValContext* ctx) override { - std::cout << "[DEBUG] visitLVal: " << ctx->getText() << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] visitLVal: " << ctx->getText() << std::endl; if (!ctx || !ctx->Ident()) { throw std::runtime_error(FormatError("sema", "非法变量引用")); } @@ -432,7 +432,7 @@ public: } // 检查数组访问 bool is_array_access = !ctx->exp().empty(); - std::cout << "[DEBUG] name: " << name + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] name: " << name << ", is_array_access: " << is_array_access << ", subscript_count: " << ctx->exp().size() << std::endl; ExprInfo result; @@ -440,7 +440,7 @@ public: bool is_array_or_ptr = false; if (sym->type) { is_array_or_ptr = sym->type->IsArray() || sym->type->IsPtrInt32() || sym->type->IsPtrFloat(); - std::cout << "[DEBUG] type_kind: " << (int)sym->type->GetKind() + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] type_kind: " << (int)sym->type->GetKind() << ", is_array: " << sym->type->IsArray() << ", is_ptr: " << (sym->type->IsPtrInt32() || sym->type->IsPtrFloat()) << std::endl; } @@ -453,7 +453,7 @@ public: if (auto* arr_type = dynamic_cast(sym->type.get())) { dim_count = arr_type->GetDimensions().size(); elem_type = arr_type->GetElementType(); - std::cout << "[DEBUG] 数组维度: " << dim_count << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 数组维度: " << dim_count << std::endl; } } else if (sym->type->IsPtrInt32() || sym->type->IsPtrFloat()) { dim_count = 1; @@ -462,11 +462,11 @@ public: } else if (sym->type->IsPtrFloat()) { elem_type = ir::Type::GetFloatType(); } - std::cout << "[DEBUG] 指针类型, dim_count: 1" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 指针类型, dim_count: 1" << std::endl; } if (is_array_access) { - std::cout << "[DEBUG] 有下标访问,期望维度: " << dim_count + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 有下标访问,期望维度: " << dim_count << ", 实际下标数: " << ctx->exp().size() << std::endl; if (ctx->exp().size() != dim_count) { throw std::runtime_error(FormatError("sema", "数组下标个数不匹配")); @@ -481,9 +481,9 @@ public: result.is_lvalue = true; result.is_const = false; } else { - std::cout << "[DEBUG] 无下标访问" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 无下标访问" << std::endl; if (sym->type->IsArray()) { - std::cout << "[DEBUG] 数组名作为地址,转换为指针" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 数组名作为地址,转换为指针" << std::endl; if (auto* arr_type = dynamic_cast(sym->type.get())) { if (arr_type->GetElementType()->IsInt32()) { result.type = ir::Type::GetPtrInt32Type(); @@ -605,7 +605,7 @@ public: // 主表达式 std::any visitPrimaryExp(SysYParser::PrimaryExpContext* ctx) override { - std::cout << "[DEBUG] visitPrimaryExp: " << ctx->getText() << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] visitPrimaryExp: " << ctx->getText() << std::endl; ExprInfo result; if (ctx->lVal()) { // 左值表达式 result = CheckLValue(ctx->lVal()); @@ -637,14 +637,14 @@ public: // 一元表达式 std::any visitUnaryExp(SysYParser::UnaryExpContext* ctx) override { - std::cout << "[DEBUG] visitUnaryExp: " << ctx->getText() << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] visitUnaryExp: " << ctx->getText() << std::endl; ExprInfo result; if (ctx->primaryExp()) { ctx->primaryExp()->accept(this); auto* info = sema_.GetExprType(ctx->primaryExp()); if (info) result = *info; } else if (ctx->Ident() && ctx->L_PAREN()) { // 函数调用 - std::cout << "[DEBUG] 函数调用: " << ctx->Ident()->getText() << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 函数调用: " << ctx->Ident()->getText() << std::endl; result = CheckFuncCall(ctx); } else if (ctx->unaryOp()) { // 一元运算 ctx->unaryExp()->accept(this); @@ -1025,7 +1025,7 @@ private: if (!ctx || !ctx->addExp()) { throw std::runtime_error(FormatError("sema", "无效表达式")); } - std::cout << "[DEBUG] CheckExp: " << ctx->getText() << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] CheckExp: " << ctx->getText() << std::endl; ctx->addExp()->accept(this); auto* info = sema_.GetExprType(ctx->addExp()); if (!info) { @@ -1076,18 +1076,18 @@ private: if (!sym) { throw std::runtime_error(FormatError("sema", "未定义的变量: " + name)); } - std::cout << "CheckLValue: found sym->name = " << sym->name + if (Sema_DEBUG) std::cout << "CheckLValue: found sym->name = " << sym->name << ", sym->kind = " << (int)sym->kind << std::endl; if (sym->kind == SymbolKind::Variable && sym->var_def_ctx) { sema_.BindVarUse(ctx, sym->var_def_ctx); - std::cout << "绑定变量: " << name << " -> VarDefContext" << std::endl; + if (Sema_DEBUG) std::cout << "绑定变量: " << name << " -> VarDefContext" << std::endl; } else if (sym->kind == SymbolKind::Constant && sym->const_def_ctx) { sema_.BindConstUse(ctx, sym->const_def_ctx); - std::cout << "绑定常量: " << name << " -> ConstDefContext" << std::endl; + if (Sema_DEBUG) std::cout << "绑定常量: " << name << " -> ConstDefContext" << std::endl; } - std::cout << "CheckLValue 绑定变量: " << name + if (Sema_DEBUG) std::cout << "CheckLValue 绑定变量: " << name << ", sym->kind: " << (int)sym->kind << ", sym->var_def_ctx: " << sym->var_def_ctx << ", sym->const_def_ctx: " << sym->const_def_ctx << std::endl; @@ -1122,9 +1122,9 @@ private: } else if (sym->type->IsPtrFloat()) { elem_type = ir::Type::GetFloatType(); } - std::cout << "数组参数维度: " << dim_count << " 维, dims: "; - for (int d : dims) std::cout << d << " "; - std::cout << std::endl; + if (Sema_DEBUG) std::cout << "数组参数维度: " << dim_count << " 维, dims: "; + for (int d : dims) if (Sema_DEBUG) std::cout << d << " "; + if (Sema_DEBUG) std::cout << std::endl; } else if (sym->type && (sym->type->IsPtrInt32() || sym->type->IsPtrFloat())) { // 普通指针,只能有一个下标 dim_count = 1; @@ -1137,7 +1137,7 @@ private: size_t subscript_count = ctx->exp().size(); - std::cout << "dim_count: " << dim_count << ", subscript_count: " << subscript_count << std::endl; + if (Sema_DEBUG) std::cout << "dim_count: " << dim_count << ", subscript_count: " << subscript_count << std::endl; if (dim_count > 0 || sym->is_array_param || sym->type->IsArray() || sym->type->IsPtrInt32() || sym->type->IsPtrFloat()) { @@ -1158,11 +1158,11 @@ private: if (subscript_count == dim_count) { // 完全索引,返回元素类型 - std::cout << "完全索引,返回元素类型" << std::endl; + if (Sema_DEBUG) std::cout << "完全索引,返回元素类型" << std::endl; return {elem_type, true, false}; } else { // 部分索引,返回子数组的指针类型 - std::cout << "部分索引,返回指针类型" << std::endl; + if (Sema_DEBUG) std::cout << "部分索引,返回指针类型" << std::endl; // 计算剩余维度的指针类型 if (elem_type->IsInt32()) { return {ir::Type::GetPtrInt32Type(), false, false}; @@ -1176,7 +1176,7 @@ private: // 没有下标访问 if (sym->type && sym->type->IsArray()) { // 数组名作为地址 - std::cout << "数组名作为地址" << std::endl; + if (Sema_DEBUG) std::cout << "数组名作为地址" << std::endl; if (auto* arr_type = dynamic_cast(sym->type.get())) { if (arr_type->GetElementType()->IsInt32()) { return {ir::Type::GetPtrInt32Type(), false, true}; @@ -1187,7 +1187,7 @@ private: return {ir::Type::GetPtrInt32Type(), false, true}; } else if (sym->is_array_param) { // 数组参数名作为地址 - std::cout << "数组参数名作为地址" << std::endl; + if (Sema_DEBUG) std::cout << "数组参数名作为地址" << std::endl; if (sym->type->IsPtrInt32()) { return {ir::Type::GetPtrInt32Type(), false, true}; } else { @@ -1211,14 +1211,14 @@ private: throw std::runtime_error(FormatError("sema", "非法函数调用")); } std::string func_name = ctx->Ident()->getText(); - std::cout << "[DEBUG] CheckFuncCall: " << func_name << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] CheckFuncCall: " << func_name << std::endl; auto* func_sym = table_.lookup(func_name); if (!func_sym || func_sym->kind != SymbolKind::Function) { throw std::runtime_error(FormatError("sema", "未定义的函数: " + func_name)); } std::vector args; if (ctx->funcRParams()) { - std::cout << "[DEBUG] 处理函数调用参数:" << std::endl; + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 处理函数调用参数:" << std::endl; for (auto* exp : ctx->funcRParams()->exp()) { if (exp) { args.push_back(CheckExp(exp)); @@ -1229,7 +1229,7 @@ private: throw std::runtime_error(FormatError("sema", "参数个数不匹配")); } for (size_t i = 0; i < std::min(args.size(), func_sym->param_types.size()); ++i) { - std::cout << "[DEBUG] 检查参数 " << i << ": 实参类型 " << (int)args[i].type->GetKind() + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 检查参数 " << i << ": 实参类型 " << (int)args[i].type->GetKind() << " 形参类型 " << (int)func_sym->param_types[i]->GetKind() << std::endl; if (!IsTypeCompatible(args[i].type, func_sym->param_types[i])) { throw std::runtime_error(FormatError("sema", "参数类型不匹配")); @@ -1430,10 +1430,10 @@ private: sym.array_dims = dims; table_.addSymbol(sym); - std::cout << "[DEBUG] 添加参数: " << name << " type_kind: " << (int)param_type->GetKind() + if (Sema_DEBUG) if (Sema_DEBUG) std::cout << "[DEBUG] 添加参数: " << name << " type_kind: " << (int)param_type->GetKind() << " is_array: " << is_array << " dims: "; - for (int d : dims) std::cout << d << " "; - std::cout << std::endl; + for (int d : dims) if (Sema_DEBUG) std::cout << d << " "; + if (Sema_DEBUG) std::cout << std::endl; } } diff --git a/src/sem/SymbolTable.cpp b/src/sem/SymbolTable.cpp index 079722d..b1c105f 100644 --- a/src/sem/SymbolTable.cpp +++ b/src/sem/SymbolTable.cpp @@ -5,7 +5,8 @@ #include #include -#define DEBUG_SYMBOL_TABLE +//#define DEBUG_SYMBOL_TABLE +#define Sym_DEBUG 0 #ifdef DEBUG_SYMBOL_TABLE #include @@ -42,7 +43,7 @@ bool SymbolTable::addSymbol(const Symbol& sym) { // 立即验证存储的符号 const auto& stored = current_scope[sym.name]; - std::cout << "SymbolTable::addSymbol: stored " << sym.name + if (Sym_DEBUG) std::cout << "SymbolTable::addSymbol: stored " << sym.name << " with kind=" << (int)stored.kind << ", const_def_ctx=" << stored.const_def_ctx << std::endl; @@ -63,7 +64,7 @@ const Symbol* SymbolTable::lookup(const std::string& name) const { const auto& scope = *it; auto found = scope.find(name); if (found != scope.end()) { - std::cout << "SymbolTable::lookup: found " << name + if (Sym_DEBUG) std::cout << "SymbolTable::lookup: found " << name << " in scope level " << (scopes_.rend() - it - 1) << ", kind=" << (int)found->second.kind << ", const_def_ctx=" << found->second.const_def_ctx