(instr: &MediumLevelILLiftedInstruction, mut indent: usize)
| 62 | } |
| 63 | |
| 64 | pub(crate) fn print_il_expr(instr: &MediumLevelILLiftedInstruction, mut indent: usize) { |
| 65 | print_indent(indent); |
| 66 | print_operation(instr); |
| 67 | |
| 68 | println!(); |
| 69 | |
| 70 | indent += 1; |
| 71 | |
| 72 | for (_name, operand) in instr.operands() { |
| 73 | match operand { |
| 74 | Int(int) => { |
| 75 | print_indent(indent); |
| 76 | println!("int 0x{:x}", int); |
| 77 | } |
| 78 | Float(float) => { |
| 79 | print_indent(indent); |
| 80 | println!("float {:e}", float); |
| 81 | } |
| 82 | Expr(expr) => print_il_expr(&expr, indent), |
| 83 | Var(var) => { |
| 84 | print_indent(indent); |
| 85 | print!("var "); |
| 86 | print_variable(&instr.function, &var); |
| 87 | println!(); |
| 88 | } |
| 89 | VarSsa(var) => { |
| 90 | print_indent(indent); |
| 91 | print!("ssa var "); |
| 92 | print_variable(&instr.function, &var.variable); |
| 93 | println!("#{}", var.version); |
| 94 | } |
| 95 | IntList(list) => { |
| 96 | print_indent(indent); |
| 97 | print!("index list "); |
| 98 | for i in list { |
| 99 | print!("{i} "); |
| 100 | } |
| 101 | println!(); |
| 102 | } |
| 103 | VarList(list) => { |
| 104 | print_indent(indent); |
| 105 | print!("var list "); |
| 106 | for i in list { |
| 107 | print_variable(&instr.function, &i); |
| 108 | print!(" "); |
| 109 | } |
| 110 | println!(); |
| 111 | } |
| 112 | VarSsaList(list) => { |
| 113 | print_indent(indent); |
| 114 | print!("ssa var list "); |
| 115 | for i in list { |
| 116 | print_variable(&instr.function, &i.variable); |
| 117 | print!("#{} ", i.version); |
| 118 | } |
| 119 | println!(); |
| 120 | } |
| 121 | ExprList(list) => { |
no test coverage detected