Skip to content

Commit

Permalink
fix argument handling for root basic block
Browse files Browse the repository at this point in the history
  • Loading branch information
PhilippGrulich committed Aug 8, 2024
1 parent d904652 commit 8fa00ad
Show file tree
Hide file tree
Showing 116 changed files with 2,572 additions and 0 deletions.
25 changes: 25 additions & 0 deletions nautilus/test/data/after_ssa/addArrayInt32.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
B0($1:ptr,$2:ptr,$3:i32)
CONST $4 0 :i32
JMP $0 B3($4,$3,$1,$2) :void
B1($3:i32,$4:i32,$1:ptr,$2:ptr)
CONST $10 4 :i32
MUL $11 $4 $10 :i32
ADD $12 $1 $11 :ptr
LOAD $13 $12 :i32
CONST $17 4 :i32
MUL $18 $4 $17 :i32
ADD $19 $2 $18 :ptr
LOAD $20 $19 :i32
ADD $21 $13 $20 :i32
CONST $25 4 :i32
MUL $26 $4 $25 :i32
ADD $27 $1 $26 :ptr
STORE $27 $21 :i32
CONST $28 1 :i32
ADD $29 $4 $28 :i32
JMP $0 B3($29,$3,$1,$2) :void
B2()
RETURN $0 :void
B3($4:i32,$3:i32,$1:ptr,$2:ptr) ControlFlowMerge
LT $5 $4 $3 :bool
CMP $6 $5 B1($3,$4,$1,$2) B2() :void
16 changes: 16 additions & 0 deletions nautilus/test/data/after_ssa/andCondition.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
B0($1:i32,$2:i32)
CONST $3 1 :i32
CONST $4 8 :i32
EQ $5 $1 $4 :bool
CONST $6 1 :i32
EQ $7 $2 $6 :bool
AND $8 $5 $7 :bool
CMP $9 $8 B1($3) B2($3) :void
B1($3:i32)
CONST $10 14 :i32
ADD $11 $3 $10 :i32
JMP $0 B3($11) :void
B2($3:i32)
JMP $0 B3($3) :void
B3($3:i32)
RETURN $3 :i32
15 changes: 15 additions & 0 deletions nautilus/test/data/after_ssa/andFunction.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
B0($1:i32)
CONST $2 :bool
CONST $4 42 :i64
CAST $5 $1 :i64
EQ $6 $5 $4 :bool
AND $7 $2 $6 :bool
CONST $9 42 :i64
CAST $10 $1 :i64
EQ $11 $10 $9 :bool
AND $12 $7 $11 :bool
CONST $14 42 :i64
CAST $15 $1 :i64
EQ $16 $15 $14 :bool
AND $17 $12 $16 :bool
RETURN $17 :bool
7 changes: 7 additions & 0 deletions nautilus/test/data/after_ssa/castVoidPtr.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
B0($1:ptr)
CONST $2 0 :i32
CONST $5 4 :i32
MUL $6 $2 $5 :i32
ADD $7 $1 $6 :ptr
LOAD $8 $7 :i32
RETURN $8 :i32
31 changes: 31 additions & 0 deletions nautilus/test/data/after_ssa/collatz.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
B0($1:i32)
CONST $2 0 :i32
CONST $3 1 :i32
JMP $0 B5($2,$1,$3) :void
B1($2:i32,$1:i32)
CONST $6 2 :i32
MOD $7 $1 $6 :i32
CONST $8 0 :i32
EQ $9 $7 $8 :bool
CMP $10 $9 B3($2,$1) B4($2,$1) :void
B2($2:i32)
RETURN $2 :i32
B3($2:i32,$1:i32)
CONST $11 2 :i32
DIV $12 $1 $11 :i32
CONST $13 1 :i32
JMP $0 B6($12,$2,$13) :void
B4($2:i32,$1:i32)
CONST $18 3 :i32
MUL $19 $18 $1 :i32
CONST $20 1 :i32
ADD $21 $19 $20 :i32
CONST $22 1 :i32
JMP $0 B6($21,$2,$22) :void
B5($2:i32,$1:i32,$3:i32) ControlFlowMerge
NEQ $4 $1 $3 :bool
CMP $5 $4 B1($2,$1) B2($2) :void
B6($1:i32,$2:i32,$13:i32) ControlFlowMerge
ADD $14 $2 $13 :i32
CONST $15 1 :i32
JMP $0 B5($14,$1,$15) :void
21 changes: 21 additions & 0 deletions nautilus/test/data/after_ssa/complexLogicalExpressions.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
B0($1:i32)
CONST $2 0 :i32
CONST $3 5 :i32
GT $4 $1 $3 :bool
CONST $5 10 :i32
LT $6 $1 $5 :bool
AND $7 $4 $6 :bool
CONST $8 15 :i32
GT $9 $1 $8 :bool
CONST $10 20 :i32
LT $11 $1 $10 :bool
AND $12 $9 $11 :bool
OR $13 $7 $12 :bool
CMP $14 $13 B1() B2($2) :void
B1()
CONST $15 1 :i32
JMP $0 B3($15) :void
B2($2:i32)
JMP $0 B3($2) :void
B3($2:i32)
RETURN $2 :i32
14 changes: 14 additions & 0 deletions nautilus/test/data/after_ssa/compoundStatements.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
B0($1:i32)
CONST $2 0 :i32
CONST $3 5 :i32
GT $4 $1 $3 :bool
CMP $5 $4 B1() B2($2) :void
B1()
CONST $6 1 :i32
CONST $7 2 :i32
MUL $8 $6 $7 :i32
JMP $0 B3($8) :void
B2($2:i32)
JMP $0 B3($2) :void
B3($2:i32)
RETURN $2 :i32
12 changes: 12 additions & 0 deletions nautilus/test/data/after_ssa/conditionalReturn.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
B0($1:i32)
CONST $2 42 :i32
EQ $3 $1 $2 :bool
CMP $4 $3 B1() B2() :void
B1()
CONST $5 1 :i32
JMP $0 B3($5) :void
B2()
CONST $7 120 :i32
JMP $0 B3($7) :void
B3($5:i32)
RETURN $5 :i32
16 changes: 16 additions & 0 deletions nautilus/test/data/after_ssa/countDigits.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
B0($1:i32)
CONST $2 0 :i32
CONST $3 0 :i32
JMP $0 B3($2,$1,$3) :void
B1($2:i32,$1:i32)
CONST $6 10 :i32
DIV $7 $1 $6 :i32
CONST $8 1 :i32
ADD $9 $2 $8 :i32
CONST $10 0 :i32
JMP $0 B3($9,$7,$10) :void
B2($2:i32)
RETURN $2 :i32
B3($2:i32,$1:i32,$3:i32) ControlFlowMerge
NEQ $4 $1 $3 :bool
CMP $5 $4 B1($2,$1) B2($2) :void
21 changes: 21 additions & 0 deletions nautilus/test/data/after_ssa/decimalToBinary.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
B0($1:i32)
CONST $2 0 :i32
CONST $3 1 :i32
CONST $4 2 :i32
JMP $0 B3($1,$3,$2,$4) :void
B1($1:i32,$3:i32,$2:i32)
CONST $15 2 :i32
JMP $0 B3($1,$3,$2,$15) :void
B2($2:i32)
RETURN $2 :i32
B3($1:i32,$3:i32,$2:i32,$4:i32) ControlFlowMerge
MOD $5 $1 $4 :i32
MUL $6 $5 $3 :i32
ADD $7 $2 $6 :i32
CONST $8 10 :i32
MUL $9 $3 $8 :i32
CONST $10 2 :i32
DIV $11 $1 $10 :i32
CONST $12 0 :i32
GT $13 $11 $12 :bool
CMP $14 $13 B1($11,$9,$7) B2($7) :void
47 changes: 47 additions & 0 deletions nautilus/test/data/after_ssa/deeplyNestedIfElseCondition.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
B0()
CONST $1 5 :i32
CONST $2 8 :i32
LT $3 $1 $2 :bool
CMP $4 $3 B1($1) B2($1) :void
B1($1:i32)
CONST $5 6 :i32
GT $6 $1 $5 :bool
CMP $7 $6 B3($1) B4($1) :void
B2($1:i32)
CONST $13 20 :i32
ADD $14 $1 $13 :i32
CONST $15 2 :i32
JMP $0 B5($14,$15) :void
B3($1:i32)
CONST $8 10 :i32
ADD $9 $1 $8 :i32
CONST $10 2 :i32
JMP $0 B5($9,$10) :void
B4($1:i32)
CONST $16 6 :i32
LT $17 $1 $16 :bool
CMP $18 $17 B6($1) B7($1) :void
B5($1:i32,$10:i32) ControlFlowMerge
JMP $0 B10($1,$10) :void
B6($1:i32)
CONST $19 5 :i32
EQ $20 $1 $19 :bool
CMP $21 $20 B8($1) B9($1) :void
B7($1:i32)
CONST $25 2 :i32
JMP $0 B11($1,$25) :void
B8($1:i32)
CONST $22 5 :i32
ADD $23 $1 $22 :i32
CONST $24 2 :i32
JMP $0 B10($23,$24) :void
B9($1:i32)
CONST $26 2 :i32
JMP $0 B12($1,$26) :void
B10($1:i32,$10:i32) ControlFlowMerge
JMP $0 B11($1,$10) :void
B11($1:i32,$10:i32) ControlFlowMerge
JMP $0 B12($1,$10) :void
B12($1:i32,$10:i32) ControlFlowMerge
ADD $11 $1 $10 :i32
RETURN $11 :i32
38 changes: 38 additions & 0 deletions nautilus/test/data/after_ssa/deeplyNestedIfElseIfCondition.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
B0()
CONST $1 5 :i32
CONST $2 8 :i32
LT $3 $1 $2 :bool
CMP $4 $3 B1($1) B2($1) :void
B1($1:i32)
CONST $5 10 :i32
ADD $6 $1 $5 :i32
CONST $7 2 :i32
JMP $0 B5($6,$7) :void
B2($1:i32)
CONST $10 5 :i32
EQ $11 $1 $10 :bool
CMP $12 $11 B3($1) B4($1) :void
B3($1:i32)
CONST $13 5 :i32
ADD $14 $1 $13 :i32
CONST $15 2 :i32
JMP $0 B5($14,$15) :void
B4($1:i32)
CONST $16 4 :i32
EQ $17 $1 $16 :bool
CMP $18 $17 B6($1) B7($1) :void
B5($1:i32,$7:i32) ControlFlowMerge
JMP $0 B8($1,$7) :void
B6($1:i32)
CONST $19 4 :i32
ADD $20 $1 $19 :i32
CONST $21 2 :i32
JMP $0 B8($20,$21) :void
B7($1:i32)
CONST $22 2 :i32
JMP $0 B9($1,$22) :void
B8($1:i32,$7:i32) ControlFlowMerge
JMP $0 B9($1,$7) :void
B9($1:i32,$7:i32) ControlFlowMerge
ADD $8 $1 $7 :i32
RETURN $8 :i32
17 changes: 17 additions & 0 deletions nautilus/test/data/after_ssa/digitSum.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
B0($1:i32)
CONST $2 0 :i32
CONST $3 10 :i32
JMP $0 B3($1,$2,$3) :void
B1($1:i32,$2:i32)
CONST $11 10 :i32
JMP $0 B3($1,$2,$11) :void
B2($2:i32)
RETURN $2 :i32
B3($1:i32,$2:i32,$3:i32) ControlFlowMerge
MOD $4 $1 $3 :i32
ADD $5 $2 $4 :i32
CONST $6 10 :i32
DIV $7 $1 $6 :i32
CONST $8 0 :i32
GT $9 $7 $8 :bool
CMP $10 $9 B1($7,$5) B2($5) :void
25 changes: 25 additions & 0 deletions nautilus/test/data/after_ssa/doubleIfCondition.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
B0()
CONST $1 1 :i32
CONST $2 8 :i32
EQ $3 $1 $2 :bool
CMP $4 $3 B1($1) B2($1) :void
B1($1:i32)
CONST $5 1 :i32
JMP $0 B5($1,$5) :void
B2($1:i32)
CONST $13 1 :i32
JMP $0 B5($1,$13) :void
B3($1:i32)
CONST $8 20 :i32
ADD $9 $1 $8 :i32
CONST $10 2 :i32
JMP $0 B6($9,$10) :void
B4($1:i32)
CONST $14 2 :i32
JMP $0 B6($1,$14) :void
B5($1:i32,$5:i32) ControlFlowMerge
EQ $6 $1 $5 :bool
CMP $7 $6 B3($1) B4($1) :void
B6($1:i32,$10:i32) ControlFlowMerge
ADD $11 $1 $10 :i32
RETURN $11 :i32
26 changes: 26 additions & 0 deletions nautilus/test/data/after_ssa/elseOnlySumLoop.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
B0()
CONST $1 1 :i32
CONST $2 0 :i32
CONST $3 10 :i32
JMP $0 B5($1,$2,$3) :void
B1($1:i32,$2:i32)
CONST $6 50 :i32
LT $7 $1 $6 :bool
CMP $8 $7 B3($1,$2) B4($2,$1) :void
B2($1:i32)
RETURN $1 :i32
B3($1:i32,$2:i32)
CONST $9 1 :i32
JMP $0 B6($1,$2,$9) :void
B4($2:i32,$1:i32)
CONST $12 1 :i32
ADD $13 $1 $12 :i32
CONST $14 1 :i32
JMP $0 B6($13,$2,$14) :void
B5($1:i32,$2:i32,$3:i32) ControlFlowMerge
LT $4 $2 $3 :bool
CMP $5 $4 B1($1,$2) B2($1) :void
B6($1:i32,$2:i32,$9:i32) ControlFlowMerge
ADD $10 $2 $9 :i32
CONST $11 10 :i32
JMP $0 B5($1,$10,$11) :void
15 changes: 15 additions & 0 deletions nautilus/test/data/after_ssa/factorial.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
B0($1:i32)
CONST $2 1 :i32
CONST $3 1 :i32
JMP $0 B3($2,$1,$3) :void
B1($1:i32,$2:i32)
MUL $7 $2 $1 :i32
CONST $8 1 :i32
SUB $9 $1 $8 :i32
CONST $10 1 :i32
JMP $0 B3($7,$9,$10) :void
B2($2:i32)
RETURN $2 :i32
B3($2:i32,$1:i32,$3:i32) ControlFlowMerge
GT $4 $1 $3 :bool
CMP $5 $4 B1($1,$2) B2($2) :void
16 changes: 16 additions & 0 deletions nautilus/test/data/after_ssa/fibonacci.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
B0($1:i32)
CONST $2 0 :i32
CONST $3 1 :i32
CONST $4 0 :i32
CONST $5 2 :i32
JMP $0 B3($3,$5,$1,$2) :void
B1($1:i32,$5:i32,$3:i32,$2:i32)
ADD $8 $2 $3 :i32
CONST $9 1 :i32
ADD $10 $5 $9 :i32
JMP $0 B3($8,$10,$1,$3) :void
B2($3:i32)
RETURN $3 :i32
B3($3:i32,$5:i32,$1:i32,$2:i32) ControlFlowMerge
LTE $6 $5 $1 :bool
CMP $7 $6 B1($1,$5,$3,$2) B2($3) :void
12 changes: 12 additions & 0 deletions nautilus/test/data/after_ssa/gcd.trace
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
B0($1:i32,$2:i32)
CONST $3 0 :i32
JMP $0 B3($1,$2,$3) :void
B1($1:i32,$2:i32)
MOD $7 $1 $2 :i32
CONST $8 0 :i32
JMP $0 B3($2,$7,$8) :void
B2($1:i32)
RETURN $1 :i32
B3($1:i32,$2:i32,$3:i32) ControlFlowMerge
NEQ $4 $2 $3 :bool
CMP $5 $4 B1($1,$2) B2($1) :void
Loading

0 comments on commit 8fa00ad

Please sign in to comment.