summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cfg/CFGNode.java10
-rw-r--r--cfg/ControlFlowGraph.java23
-rw-r--r--output/BinaryTree.vaporm936
-rw-r--r--output/BubbleSort.vaporm186
-rw-r--r--output/LinearSearch.vaporm112
-rw-r--r--output/LinkedList.vaporm650
-rw-r--r--output/QuickSort.vaporm80
-rw-r--r--output/TreeVisitor.vaporm1046
-rw-r--r--output/ex41.vaporm4
-rw-r--r--output/ex45.vaporm14
-rw-r--r--output/ex47.vaporm20
-rw-r--r--vaporize/LIRDict.java49
-rw-r--r--vaporize/LIRVisitor.java78
-rw-r--r--vaporize/VaporizeVisitor.java3
14 files changed, 1629 insertions, 1582 deletions
diff --git a/cfg/CFGNode.java b/cfg/CFGNode.java
index 5ce39b5..41f2c9c 100644
--- a/cfg/CFGNode.java
+++ b/cfg/CFGNode.java
@@ -10,13 +10,15 @@ public class CFGNode {
private Node instruction;
private ArrayList<CFGNode> sources;
private ArrayList<CFGNode> dests;
- protected Set<String> reaching;
- protected Set<String> liveness;
+ public Set<String> defs;
+ public Set<String> reaching;
+ public Set<String> liveness;
public CFGNode(Node instruction) {
this.instruction = instruction;
this.sources = new ArrayList<>();
this.dests = new ArrayList<>();
+ this.defs = new HashSet<>();
this.reaching = new HashSet<>();
this.liveness = new HashSet<>();
}
@@ -70,4 +72,8 @@ public class CFGNode {
return Collections.unmodifiableSet(this.liveness);
}
+ public Set<String> getDefinitions() {
+ return Collections.unmodifiableSet(this.defs);
+ }
+
}
diff --git a/cfg/ControlFlowGraph.java b/cfg/ControlFlowGraph.java
index c3943a0..49cd2fc 100644
--- a/cfg/ControlFlowGraph.java
+++ b/cfg/ControlFlowGraph.java
@@ -80,6 +80,14 @@ public class ControlFlowGraph {
source.addDest(dest);
dest.addSource(source);
+ for (String var : source.getReaching()) {
+ dest.reaching.add(var);
+ }
+ for (String var : dest.getLiveness()) {
+ if (!source.getDefinitions().contains(var))
+ source.liveness.add(var);
+ }
+
ret += ";";
} else {
MinimalLogger.info(String.format("Skipping duplicate edge for %s",
@@ -89,22 +97,19 @@ public class ControlFlowGraph {
return ret;
}
- public void addReaching(CFGNode n, String s) {
- MinimalLogger.info(String.format("Def \"%s\" at %s",
- s,
- n.toString()));
+ public void addDefinition(CFGNode n, String s) {
+ n.defs.add(s);
n.reaching.add(s);
}
- public void addLiveness(CFGNode n, String s) {
+ public void addReference(CFGNode n, String s) {
if (this.isKnownVar(s)) {
- MinimalLogger.info(String.format("Use \"%s\" at %s",
+ MinimalLogger.info(String.format("\"%s\" referenced at %s",
s,
n.toString()));
+ n.reaching.add(s);
n.liveness.add(s);
- } else
- MinimalLogger.info(String.format("Use \"%s\" not a known variable!",
- s));
+ }
}
public ArrayList<CFGNode> getNodes() {
diff --git a/output/BinaryTree.vaporm b/output/BinaryTree.vaporm
index 2a361a9..f56eb3d 100644
--- a/output/BinaryTree.vaporm
+++ b/output/BinaryTree.vaporm
@@ -108,36 +108,8 @@ func BT_Start [in 0, out 0, local 17]
$t8 = local[16]
$s6 = $s4
$s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+72]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $s4 = $v0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $s4
- $s4 = 100000000
- PrintIntS($s4 )
- $s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+48]
- $s4 = 8
+ $s6 = [$s7+0]
+ $s4 = [$s6+72]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -148,9 +120,8 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s4
- call $s5
- $s3 = $v0
+ call $s4
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -160,10 +131,13 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
+ $s6 = $s6
+ $s6 = 100000000
+ PrintIntS($s6 )
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+72]
+ $s6 = [$s7+0]
+ $s4 = [$s6+48]
+ $s6 = 8
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -174,8 +148,9 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
+ $a1 = $s6
call $s4
- $s3 = $v0
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -185,11 +160,10 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
+ $s6 = $s5
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+48]
- $s3 = 24
+ $s5 = [$s7+0]
+ $s6 = [$s5+72]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -200,8 +174,7 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
- call $s4
+ call $s6
$s5 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -215,8 +188,8 @@ func BT_Start [in 0, out 0, local 17]
$s6 = $s5
$s7 = $s7
$s5 = [$s7+0]
- $s3 = [$s5+48]
- $s5 = 4
+ $s6 = [$s5+48]
+ $s5 = 24
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -228,7 +201,7 @@ func BT_Start [in 0, out 0, local 17]
local[16] = $t8
$a0 = $s7
$a1 = $s5
- call $s3
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -243,7 +216,7 @@ func BT_Start [in 0, out 0, local 17]
$s7 = $s7
$s4 = [$s7+0]
$s5 = [$s4+48]
- $s4 = 12
+ $s4 = 4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -256,7 +229,7 @@ func BT_Start [in 0, out 0, local 17]
$a0 = $s7
$a1 = $s4
call $s5
- $s3 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -266,11 +239,11 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
+ $s6 = $s6
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+48]
- $s3 = 20
+ $s6 = [$s7+0]
+ $s4 = [$s6+48]
+ $s6 = 12
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -281,7 +254,7 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
+ $a1 = $s6
call $s4
$s5 = $v0
$t0 = local[8]
@@ -296,8 +269,8 @@ func BT_Start [in 0, out 0, local 17]
$s6 = $s5
$s7 = $s7
$s5 = [$s7+0]
- $s3 = [$s5+48]
- $s5 = 28
+ $s6 = [$s5+48]
+ $s5 = 20
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -309,7 +282,7 @@ func BT_Start [in 0, out 0, local 17]
local[16] = $t8
$a0 = $s7
$a1 = $s5
- call $s3
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -324,7 +297,7 @@ func BT_Start [in 0, out 0, local 17]
$s7 = $s7
$s4 = [$s7+0]
$s5 = [$s4+48]
- $s4 = 14
+ $s4 = 28
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -337,7 +310,7 @@ func BT_Start [in 0, out 0, local 17]
$a0 = $s7
$a1 = $s4
call $s5
- $s3 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -347,10 +320,11 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
+ $s6 = $s6
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+72]
+ $s6 = [$s7+0]
+ $s4 = [$s6+48]
+ $s6 = 14
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -361,8 +335,9 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
+ $a1 = $s6
call $s4
- $s3 = $v0
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -372,11 +347,10 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
+ $s6 = $s5
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+68]
- $s3 = 24
+ $s5 = [$s7+0]
+ $s6 = [$s5+72]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -387,8 +361,7 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
- call $s4
+ call $s6
$s5 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -399,12 +372,11 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s5
- PrintIntS($s3 )
+ $s6 = $s5
$s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+68]
- $s3 = 12
+ $s5 = [$s7+0]
+ $s6 = [$s5+68]
+ $s5 = 24
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -415,8 +387,8 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
- call $s5
+ $a1 = $s5
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -427,12 +399,12 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
- PrintIntS($s3 )
+ $s5 = $s4
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+68]
- $s3 = 16
+ $s5 = [$s7+0]
+ $s4 = [$s5+68]
+ $s5 = 12
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -443,9 +415,9 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
+ $a1 = $s5
call $s4
- $s5 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -455,12 +427,12 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s5
- PrintIntS($s3 )
+ $s5 = $s6
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+68]
- $s3 = 50
+ $s5 = [$s7+0]
+ $s6 = [$s5+68]
+ $s5 = 16
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -471,8 +443,8 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
- call $s5
+ $a1 = $s5
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -483,12 +455,12 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
- PrintIntS($s3 )
+ $s5 = $s4
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+68]
- $s3 = 12
+ $s5 = [$s7+0]
+ $s4 = [$s5+68]
+ $s5 = 50
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -499,9 +471,9 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
+ $a1 = $s5
call $s4
- $s5 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -511,12 +483,12 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s5
- PrintIntS($s3 )
+ $s5 = $s6
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+52]
- $s3 = 12
+ $s5 = [$s7+0]
+ $s6 = [$s5+68]
+ $s5 = 12
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -527,8 +499,8 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
- call $s5
+ $a1 = $s5
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -539,10 +511,12 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s4
+ $s5 = $s4
+ PrintIntS($s5 )
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+72]
+ $s5 = [$s7+0]
+ $s4 = [$s5+52]
+ $s5 = 12
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -553,8 +527,9 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s4 = $v0
+ $a1 = $s5
+ call $s4
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -564,11 +539,10 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s4
+ $s6 = $s6
$s7 = $s7
- $s4 = [$s7+0]
- $s6 = [$s4+68]
- $s4 = 12
+ $s6 = [$s7+0]
+ $s5 = [$s6+72]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -579,9 +553,8 @@ func BT_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s4
- call $s6
- $s3 = $v0
+ call $s5
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -591,10 +564,37 @@ func BT_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s3
- PrintIntS($s4 )
- $s4 = 0
- $v0 = $s4
+ $s6 = $s6
+ $s7 = $s7
+ $s6 = [$s7+0]
+ $s5 = [$s6+68]
+ $s6 = 12
+ local[8] = $t0
+ local[9] = $t1
+ local[10] = $t2
+ local[11] = $t3
+ local[12] = $t4
+ local[13] = $t5
+ local[14] = $t6
+ local[15] = $t7
+ local[16] = $t8
+ $a0 = $s7
+ $a1 = $s6
+ call $s5
+ $s4 = $v0
+ $t0 = local[8]
+ $t1 = local[9]
+ $t2 = local[10]
+ $t3 = local[11]
+ $t4 = local[12]
+ $t5 = local[13]
+ $t6 = local[14]
+ $t7 = local[15]
+ $t8 = local[16]
+ $s6 = $s4
+ PrintIntS($s6 )
+ $s6 = 0
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -899,7 +899,7 @@ if100_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Insert [in 0, out 0, local 17]
+func Tree_Insert [in 0, out 0, local 29]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -940,15 +940,15 @@ func Tree_Insert [in 0, out 0, local 17]
$t7 = local[15]
$t8 = local[16]
$s5 = $s2
- $s2 = $s6
+ $s5 = $s6
$s6 = 1
while115_test:
- $s3 = $s6
- if0 $s3 goto :while115_end
+ $s2 = $s6
+ if0 $s2 goto :while115_end
while115_body:
- $s2 = $s2
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -958,9 +958,9 @@ while115_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s1
- $s3 = $v0
+ $a0 = $s5
+ call null
+ $t5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -970,16 +970,16 @@ while115_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
- $s3 = $s7
- $s7 = $s1
- $s1 = LtS($s3 $s7 )
- $s7 = $s1
- if0 $s7 goto :if120_else
+ $s2 = $t5
+ null = $s7
+ null = $s2
+ $s2 = LtS(null null )
+ null = $s2
+ if0 null goto :if120_else
if120_body:
- $s2 = $s2
- $s7 = [$s2+0]
- $s1 = [$s7+32]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -989,9 +989,9 @@ if120_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s1
- $s7 = $v0
+ $a0 = $s5
+ call null
+ $t7 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1001,12 +1001,12 @@ if120_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s7
- if0 $s1 goto :if124_else
+ $s2 = $t7
+ if0 $s2 goto :if124_else
if124_body:
- $s2 = $s2
- $s1 = [$s2+0]
- $s7 = [$s1+16]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1016,9 +1016,9 @@ if124_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s7
- $s1 = $v0
+ $a0 = $s5
+ call null
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1028,14 +1028,14 @@ if124_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s1
+ $s5 = $s3
goto :if124_end
if124_else:
$s6 = 0
- $s2 = $s2
- $s1 = [$s2+0]
- $s7 = [$s1+36]
- $s1 = 1
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+36]
+ $s2 = 1
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1045,10 +1045,10 @@ if124_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- $a1 = $s1
- call $s7
- $s3 = $v0
+ $a0 = $s5
+ $a1 = $s2
+ call null
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1058,11 +1058,11 @@ if124_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s3
- $s2 = $s2
- $s3 = [$s2+0]
- $s1 = [$s3+8]
- $s3 = $s4
+ $s5 = $s0
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+8]
+ $s2 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1072,10 +1072,10 @@ if124_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- $a1 = $s3
- call $s1
- $s7 = $v0
+ $a0 = $s5
+ $a1 = $s2
+ call null
+ $t3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1085,13 +1085,13 @@ if124_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s7
+ $s5 = $t3
if124_end:
goto :if120_end
if120_else:
- $s2 = $s2
- $s7 = [$s2+0]
- $s3 = [$s7+28]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1101,9 +1101,9 @@ if120_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s3
- $s7 = $v0
+ $a0 = $s5
+ call null
+ $t4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1113,12 +1113,12 @@ if120_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s7
- if0 $s3 goto :if139_else
+ $s2 = $t4
+ if0 $s2 goto :if139_else
if139_body:
- $s2 = $s2
- $s3 = [$s2+0]
- $s7 = [$s3+12]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1128,9 +1128,9 @@ if139_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s7
- $s3 = $v0
+ $a0 = $s5
+ call null
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1140,14 +1140,14 @@ if139_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s3
+ $s5 = $s2
goto :if139_end
if139_else:
$s6 = 0
- $s2 = $s2
- $s6 = [$s2+0]
- $s3 = [$s6+40]
- $s6 = 1
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+40]
+ $s2 = 1
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1157,10 +1157,10 @@ if139_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- $a1 = $s6
- call $s3
- $s7 = $v0
+ $a0 = $s5
+ $a1 = $s2
+ call null
+ $t6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1170,11 +1170,11 @@ if139_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s7
- $s2 = $s2
- $s7 = [$s2+0]
- $s6 = [$s7+4]
- $s7 = $s4
+ $s5 = $t6
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+4]
+ $s2 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1184,10 +1184,10 @@ if139_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- $a1 = $s7
- call $s6
- $s4 = $v0
+ $a0 = $s5
+ $a1 = $s2
+ call null
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1197,13 +1197,13 @@ if139_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s4
+ $s5 = $s1
if139_end:
if120_end:
goto :while115_test
while115_end:
- $s4 = 1
- $v0 = $s4
+ $t3 = 1
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1213,7 +1213,7 @@ while115_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Delete [in 0, out 0, local 17]
+func Tree_Delete [in 0, out 0, local 44]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1235,7 +1235,7 @@ while155_test:
while155_body:
$s5 = $s5
$s0 = [$s5+0]
- $t7 = [$s0+20]
+ null = [$s0+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1246,8 +1246,8 @@ while155_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t7
- $s0 = $v0
+ call null
+ $t5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1257,16 +1257,16 @@ while155_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t7 = $s0
- $s0 = $s7
- $t6 = $t7
- $t5 = LtS($s0 $t6 )
- $t6 = $t5
- if0 $t6 goto :if160_else
+ $s0 = $t5
+ null = $s7
+ null = $s0
+ null = LtS(null null )
+ null = null
+ if0 null goto :if160_else
if160_body:
$s5 = $s5
- $t6 = [$s5+0]
- $t5 = [$t6+32]
+ null = [$s5+0]
+ null = [null+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1277,8 +1277,8 @@ if160_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t5
- $t6 = $v0
+ call null
+ null = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1288,13 +1288,13 @@ if160_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t5 = $t6
- if0 $t5 goto :if164_else
+ null = null
+ if0 null goto :if164_else
if164_body:
$s4 = $s5
$s5 = $s5
- $t5 = [$s5+0]
- $t6 = [$t5+16]
+ null = [$s5+0]
+ null = [null+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1305,8 +1305,8 @@ if164_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t6
- $t5 = $v0
+ call null
+ $t4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1316,22 +1316,22 @@ if164_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $t5
+ $s5 = $t4
goto :if164_end
if164_else:
$s3 = 0
if164_end:
goto :if160_end
if160_else:
- $t5 = $t7
- $t7 = $s7
- $s7 = LtS($t5 $t7 )
- $t7 = $s7
- if0 $t7 goto :if171_else
+ null = $s0
+ $s0 = $s7
+ null = LtS(null $s0 )
+ $s0 = null
+ if0 $s0 goto :if171_else
if171_body:
$s5 = $s5
- $t7 = [$s5+0]
- $s7 = [$t7+28]
+ $s0 = [$s5+0]
+ null = [$s0+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1342,8 +1342,8 @@ if171_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s7
- $t7 = $v0
+ call null
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1353,13 +1353,13 @@ if171_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $t7
- if0 $s7 goto :if175_else
+ null = $s0
+ if0 null goto :if175_else
if175_body:
$s4 = $s5
$s5 = $s5
- $s7 = [$s5+0]
- $t7 = [$s7+12]
+ $s0 = [$s5+0]
+ null = [$s0+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1370,8 +1370,8 @@ if175_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t7
- $s7 = $v0
+ call null
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1381,19 +1381,19 @@ if175_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s7
+ $s5 = $s0
goto :if175_end
if175_else:
$s3 = 0
if175_end:
goto :if171_end
if171_else:
- $s7 = $s1
- if0 $s7 goto :if182_else
+ $s0 = $s1
+ if0 $s0 goto :if182_else
if182_body:
$s5 = $s5
- $s7 = [$s5+0]
- $t7 = [$s7+28]
+ $s0 = [$s5+0]
+ null = [$s0+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1404,8 +1404,8 @@ if182_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t7
- $s7 = $v0
+ call null
+ $t6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1415,11 +1415,11 @@ if182_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t7 = Eq($s7 0 )
- $s7 = $t7
+ $s0 = Eq($t6 0 )
+ null = $s0
$s5 = $s5
- $t7 = [$s5+0]
- $t5 = [$t7+32]
+ $s0 = [$s5+0]
+ null = [$s0+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1430,7 +1430,7 @@ if182_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t5
+ call null
$t7 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1441,21 +1441,21 @@ if182_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t5 = Eq($t7 0 )
- $t7 = $t5
- $t5 = Eq(1 $s7 )
- $s7 = Eq(1 $t7 )
- $t7 = Eq($t5 $s7 )
- $s7 = $t7
- if0 $s7 goto :if183_else
+ $s0 = Eq($t7 0 )
+ null = $s0
+ $s0 = Eq(1 null )
+ null = Eq(1 null )
+ null = Eq($s0 null )
+ $s0 = null
+ if0 $s0 goto :if183_else
if183_body:
- $s7 = 1
+ $s0 = 1
goto :if183_end
if183_else:
- $t7 = [$s6+0]
- $t5 = $s4
- $t6 = $s5
- $t7 = [$t7+56]
+ $s0 = [$s6+0]
+ null = $s4
+ null = $s5
+ $s0 = [$s0+56]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1466,10 +1466,10 @@ if183_else:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $t5
- $a2 = $t6
- call $t7
- $s0 = $v0
+ $a1 = null
+ $a2 = null
+ call $s0
+ $t3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1479,13 +1479,13 @@ if183_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s0
+ $s0 = $t3
if183_end:
goto :if182_end
if182_else:
$s0 = [$s6+0]
- $t6 = $s4
- $s4 = $s5
+ null = $s4
+ null = $s5
$s0 = [$s0+56]
local[8] = $t0
local[9] = $t1
@@ -1497,10 +1497,10 @@ if182_else:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $t6
- $a2 = $s4
+ $a1 = null
+ $a2 = null
call $s0
- $s5 = $v0
+ null = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1510,7 +1510,7 @@ if182_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s5
+ $s0 = null
if182_end:
$s2 = 1
$s3 = 0
@@ -1519,8 +1519,8 @@ if160_end:
$s1 = 0
goto :while155_test
while155_end:
- $s1 = $s2
- $v0 = $s1
+ $t3 = $s2
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1600,8 +1600,8 @@ if206_body:
goto :if206_end
if206_else:
$s7 = $s7
- $s1 = [$s7+0]
- $s4 = [$s1+28]
+ $s2 = [$s7+0]
+ $s1 = [$s2+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1612,8 +1612,8 @@ if206_else:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s4
- $s1 = $v0
+ call $s1
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1623,13 +1623,13 @@ if206_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s1
- if0 $s4 goto :if214_else
+ $s1 = $s2
+ if0 $s1 goto :if214_else
if214_body:
- $s4 = [$s5+0]
- $s1 = $s6
- $s3 = $s7
- $s4 = [$s4+60]
+ $s1 = [$s5+0]
+ $s2 = $s6
+ $s4 = $s7
+ $s1 = [$s1+60]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1640,10 +1640,10 @@ if214_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- $a1 = $s1
- $a2 = $s3
- call $s4
- $s0 = $v0
+ $a1 = $s2
+ $a2 = $s4
+ call $s1
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1653,12 +1653,12 @@ if214_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s0
+ $s2 = $s3
goto :if214_end
if214_else:
$s7 = $s7
- $s0 = [$s7+0]
- $s3 = [$s0+20]
+ $s3 = [$s7+0]
+ $s4 = [$s3+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1669,8 +1669,8 @@ if214_else:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s0 = $v0
+ call $s4
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1680,10 +1680,10 @@ if214_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s0
+ $s4 = $s3
$s6 = $s6
- $s0 = [$s6+0]
- $s7 = [$s0+16]
+ $s3 = [$s6+0]
+ $s7 = [$s3+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1695,7 +1695,7 @@ if214_else:
local[16] = $t8
$a0 = $s6
call $s7
- $s0 = $v0
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1705,9 +1705,9 @@ if214_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s0
- $s0 = [$s7+0]
- $s1 = [$s0+20]
+ $s7 = $s3
+ $s3 = [$s7+0]
+ $s2 = [$s3+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1718,8 +1718,8 @@ if214_else:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s1
- $s0 = $v0
+ call $s2
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1729,11 +1729,11 @@ if214_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s0
- $s0 = [$s5+0]
- $s7 = $s3
- $s3 = $s1
- $s0 = [$s0+44]
+ $s2 = $s3
+ $s3 = [$s5+0]
+ $s7 = $s4
+ $s4 = $s2
+ $s3 = [$s3+44]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1745,9 +1745,9 @@ if214_else:
local[16] = $t8
$a0 = $s5
$a1 = $s7
- $a2 = $s3
- call $s0
- $s1 = $v0
+ $a2 = $s4
+ call $s3
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1757,13 +1757,13 @@ if214_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s1
- if0 $s3 goto :if232_else
+ $s4 = $s2
+ if0 $s4 goto :if232_else
if232_body:
$s6 = $s6
- $s3 = [$s6+0]
- $s1 = [$s3+8]
- $s3 = [$s5+100]
+ $s4 = [$s6+0]
+ $s2 = [$s4+8]
+ $s4 = [$s5+100]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1774,8 +1774,8 @@ if232_body:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s3
- call $s1
+ $a1 = $s4
+ call $s2
$s7 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1789,7 +1789,7 @@ if232_body:
$s2 = $s7
$s6 = $s6
$s7 = [$s6+0]
- $s3 = [$s7+36]
+ $s4 = [$s7+36]
$s7 = 0
local[8] = $t0
local[9] = $t1
@@ -1802,8 +1802,8 @@ if232_body:
local[16] = $t8
$a0 = $s6
$a1 = $s7
- call $s3
- $s1 = $v0
+ call $s4
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1813,13 +1813,13 @@ if232_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s1
+ $s2 = $s2
goto :if232_end
if232_else:
$s6 = $s6
- $s1 = [$s6+0]
- $s7 = [$s1+4]
- $s1 = [$s5+100]
+ $s2 = [$s6+0]
+ $s7 = [$s2+4]
+ $s2 = [$s5+100]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1830,7 +1830,7 @@ if232_else:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s1
+ $a1 = $s2
call $s7
$s5 = $v0
$t0 = local[8]
@@ -1845,7 +1845,7 @@ if232_else:
$s2 = $s5
$s6 = $s6
$s5 = [$s6+0]
- $s1 = [$s5+40]
+ $s2 = [$s5+40]
$s5 = 0
local[8] = $t0
local[9] = $t1
@@ -1858,7 +1858,7 @@ if232_else:
local[16] = $t8
$a0 = $s6
$a1 = $s5
- call $s1
+ call $s2
$s7 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1898,8 +1898,8 @@ func Tree_RemoveRight [in 0, out 0, local 17]
$s7 = $a2
while254_test:
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+28]
+ $t7 = [$s7+0]
+ $t6 = [$t7+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1910,8 +1910,8 @@ while254_test:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s4 = $v0
+ call $t6
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1921,15 +1921,15 @@ while254_test:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
- if0 $s3 goto :while254_end
+ $t6 = $s1
+ if0 $t6 goto :while254_end
while254_body:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+24]
+ $t6 = [$s7+0]
+ $t7 = [$t6+24]
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+12]
+ $t6 = [$s7+0]
+ $t5 = [$t6+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1940,7 +1940,7 @@ while254_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s2
+ call $t5
$s3 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1951,9 +1951,9 @@ while254_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s3
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $t5 = $s3
+ $t6 = [$t5+0]
+ $t4 = [$t6+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1963,9 +1963,9 @@ while254_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s1
- $s3 = $v0
+ $a0 = $t5
+ call $t4
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1975,7 +1975,7 @@ while254_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
+ $t4 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1986,9 +1986,9 @@ while254_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s1
- call $s4
- $s3 = $v0
+ $a1 = $t4
+ call $t7
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1998,11 +1998,11 @@ while254_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
+ $t4 = $s0
$s6 = $s7
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+12]
+ $t4 = [$s7+0]
+ $t7 = [$t4+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2013,8 +2013,8 @@ while254_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s4
- $s3 = $v0
+ call $t7
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2024,13 +2024,13 @@ while254_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s3
+ $s7 = $s2
goto :while254_test
while254_end:
$s6 = $s6
- $s3 = [$s6+0]
- $s7 = [$s3+4]
- $s3 = [$s5+100]
+ $s0 = [$s6+0]
+ $s1 = [$s0+4]
+ $s0 = [$s5+100]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2041,8 +2041,8 @@ while254_end:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s3
- call $s7
+ $a1 = $s0
+ call $s1
$s5 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -2053,10 +2053,10 @@ while254_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s5
+ $t4 = $s5
$s6 = $s6
$s5 = [$s6+0]
- $s3 = [$s5+40]
+ $s0 = [$s5+40]
$s5 = 0
local[8] = $t0
local[9] = $t1
@@ -2069,8 +2069,8 @@ while254_end:
local[16] = $t8
$a0 = $s6
$a1 = $s5
- call $s3
- $s7 = $v0
+ call $s0
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2080,9 +2080,9 @@ while254_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s7
- $s7 = 1
- $v0 = $s7
+ $t4 = $s1
+ $s1 = 1
+ $v0 = $s1
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2106,8 +2106,8 @@ func Tree_RemoveLeft [in 0, out 0, local 17]
$s7 = $a2
while282_test:
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+32]
+ $t7 = [$s7+0]
+ $t6 = [$t7+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2118,8 +2118,8 @@ while282_test:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s4 = $v0
+ call $t6
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2129,15 +2129,15 @@ while282_test:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
- if0 $s3 goto :while282_end
+ $t6 = $s1
+ if0 $t6 goto :while282_end
while282_body:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+24]
+ $t6 = [$s7+0]
+ $t7 = [$t6+24]
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+16]
+ $t6 = [$s7+0]
+ $t5 = [$t6+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2148,7 +2148,7 @@ while282_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s2
+ call $t5
$s3 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -2159,9 +2159,9 @@ while282_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s3
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $t5 = $s3
+ $t6 = [$t5+0]
+ $t4 = [$t6+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2171,9 +2171,9 @@ while282_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s1
- $s3 = $v0
+ $a0 = $t5
+ call $t4
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2183,7 +2183,7 @@ while282_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
+ $t4 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2194,9 +2194,9 @@ while282_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s1
- call $s4
- $s3 = $v0
+ $a1 = $t4
+ call $t7
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2206,11 +2206,11 @@ while282_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
+ $t4 = $s0
$s6 = $s7
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+16]
+ $t4 = [$s7+0]
+ $t7 = [$t4+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2221,8 +2221,8 @@ while282_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s4
- $s3 = $v0
+ call $t7
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2232,13 +2232,13 @@ while282_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s3
+ $s7 = $s2
goto :while282_test
while282_end:
$s6 = $s6
- $s3 = [$s6+0]
- $s7 = [$s3+8]
- $s3 = [$s5+100]
+ $s0 = [$s6+0]
+ $s1 = [$s0+8]
+ $s0 = [$s5+100]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2249,8 +2249,8 @@ while282_end:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s3
- call $s7
+ $a1 = $s0
+ call $s1
$s5 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -2261,10 +2261,10 @@ while282_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s5
+ $t4 = $s5
$s6 = $s6
$s5 = [$s6+0]
- $s3 = [$s5+36]
+ $s0 = [$s5+36]
$s5 = 0
local[8] = $t0
local[9] = $t1
@@ -2277,8 +2277,8 @@ while282_end:
local[16] = $t8
$a0 = $s6
$a1 = $s5
- call $s3
- $s7 = $v0
+ call $s0
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2288,9 +2288,9 @@ while282_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s7
- $s7 = 1
- $v0 = $s7
+ $t4 = $s1
+ $s1 = 1
+ $v0 = $s1
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2320,7 +2320,7 @@ while310_test:
while310_body:
$s5 = $s5
$s3 = [$s5+0]
- $s2 = [$s3+20]
+ $t7 = [$s3+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2331,8 +2331,8 @@ while310_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s2
- $s3 = $v0
+ call $t7
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2342,16 +2342,16 @@ while310_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s3
+ $t7 = $s0
$s3 = $s7
- $s1 = $s2
- $s0 = LtS($s3 $s1 )
- $s1 = $s0
- if0 $s1 goto :if315_else
+ $t6 = $t7
+ $t5 = LtS($s3 $t6 )
+ $t6 = $t5
+ if0 $t6 goto :if315_else
if315_body:
$s5 = $s5
- $s1 = [$s5+0]
- $s0 = [$s1+32]
+ $t6 = [$s5+0]
+ $t5 = [$t6+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2362,7 +2362,7 @@ if315_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s0
+ call $t5
$s1 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -2373,12 +2373,12 @@ if315_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s0 = $s1
- if0 $s0 goto :if319_else
+ $t5 = $s1
+ if0 $t5 goto :if319_else
if319_body:
$s5 = $s5
- $s0 = [$s5+0]
- $s1 = [$s0+16]
+ $t5 = [$s5+0]
+ $t6 = [$t5+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2389,8 +2389,8 @@ if319_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s1
- $s0 = $v0
+ call $t6
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2400,22 +2400,22 @@ if319_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s0
+ $s5 = $s2
goto :if319_end
if319_else:
$s6 = 0
if319_end:
goto :if315_end
if315_else:
- $s0 = $s2
- $s2 = $s7
- $s7 = LtS($s0 $s2 )
- $s2 = $s7
- if0 $s2 goto :if326_else
+ $t6 = $t7
+ $t7 = $s7
+ $t5 = LtS($t6 $t7 )
+ $t7 = $t5
+ if0 $t7 goto :if326_else
if326_body:
$s5 = $s5
- $s2 = [$s5+0]
- $s7 = [$s2+28]
+ $t7 = [$s5+0]
+ $t5 = [$t7+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2426,8 +2426,8 @@ if326_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s7
- $s2 = $v0
+ call $t5
+ $t7 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2437,12 +2437,12 @@ if326_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s2
- if0 $s7 goto :if330_else
+ $t5 = $t7
+ if0 $t5 goto :if330_else
if330_body:
$s5 = $s5
- $s7 = [$s5+0]
- $s2 = [$s7+12]
+ $t5 = [$s5+0]
+ $t7 = [$t5+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2453,8 +2453,8 @@ if330_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s2
- $s7 = $v0
+ call $t7
+ $t5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2464,7 +2464,7 @@ if330_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s7
+ $s5 = $t5
goto :if330_end
if330_else:
$s6 = 0
@@ -2477,8 +2477,8 @@ if326_end:
if315_end:
goto :while310_test
while310_end:
- $s6 = $s4
- $v0 = $s6
+ $s0 = $s4
+ $v0 = $s0
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2629,8 +2629,8 @@ if342_else:
$s3 = 1
if342_end:
$s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+20]
+ $s3 = [$s7+0]
+ $s5 = [$s3+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2641,8 +2641,8 @@ if342_end:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s4
- $s5 = $v0
+ call $s5
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2652,11 +2652,11 @@ if342_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s5
- PrintIntS($s4 )
+ $s5 = $s3
+ PrintIntS($s5 )
$s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+28]
+ $s5 = [$s7+0]
+ $s3 = [$s5+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2667,8 +2667,8 @@ if342_end:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s5
- $s4 = $v0
+ call $s3
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2678,13 +2678,13 @@ if342_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s4
- if0 $s5 goto :if356_else
+ $s3 = $s5
+ if0 $s3 goto :if356_else
if356_body:
- $s5 = [$s6+0]
+ $s3 = [$s6+0]
$s7 = $s7
- $s4 = [$s7+0]
- $s2 = [$s4+12]
+ $s5 = [$s7+0]
+ $s4 = [$s5+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2695,8 +2695,8 @@ if356_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s2
- $s4 = $v0
+ call $s4
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2706,8 +2706,8 @@ if356_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s4
- $s5 = [$s5+76]
+ $s4 = $s5
+ $s3 = [$s3+76]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2718,9 +2718,9 @@ if356_body:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s2
- call $s5
- $s4 = $v0
+ $a1 = $s4
+ call $s3
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2730,13 +2730,13 @@ if356_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
+ $s3 = $s5
goto :if356_end
if356_else:
$s3 = 1
if356_end:
- $s3 = 1
- $v0 = $s3
+ $s5 = 1
+ $v0 = $s5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/BubbleSort.vaporm b/output/BubbleSort.vaporm
index 25eee81..37ca540 100644
--- a/output/BubbleSort.vaporm
+++ b/output/BubbleSort.vaporm
@@ -88,8 +88,8 @@ func BBS_Start [in 0, out 0, local 17]
$t7 = local[15]
$t8 = local[16]
$s4 = $s7
- $s7 = [$s6+0]
- $s7 = [$s7+8]
+ $s4 = [$s6+0]
+ $s4 = [$s4+8]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -100,8 +100,8 @@ func BBS_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s6
- call $s7
- $s5 = $v0
+ call $s4
+ $s7 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -111,11 +111,11 @@ func BBS_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s5
- $s5 = 99999
- PrintIntS($s5 )
- $s5 = [$s6+0]
- $s5 = [$s5+4]
+ $s4 = $s7
+ $s7 = 99999
+ PrintIntS($s7 )
+ $s7 = [$s6+0]
+ $s7 = [$s7+4]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -126,8 +126,8 @@ func BBS_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s6
- call $s5
- $s7 = $v0
+ call $s7
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -137,9 +137,9 @@ func BBS_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s7
- $s7 = [$s6+0]
- $s7 = [$s7+8]
+ $s4 = $s4
+ $s4 = [$s6+0]
+ $s4 = [$s4+8]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -150,8 +150,8 @@ func BBS_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s6
- call $s7
- $s5 = $v0
+ call $s4
+ $s7 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -161,9 +161,9 @@ func BBS_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s5
- $s5 = 0
- $v0 = $s5
+ $s4 = $s7
+ $s7 = 0
+ $v0 = $s7
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -193,87 +193,87 @@ func BBS_Sort [in 0, out 0, local 17]
$s6 = $s3
while23_test:
$s3 = $s6
- $s6 = $s5
- $s4 = LtS($s3 $s6 )
- $s6 = $s4
- if0 $s6 goto :while23_end
+ $s4 = $s5
+ $s2 = LtS($s3 $s4 )
+ $s4 = $s2
+ if0 $s4 goto :while23_end
while23_body:
- $s6 = 1
+ $s4 = 1
while28_test:
- $s4 = $s6
+ $s2 = $s4
$s3 = $s5
- $s2 = 1
- $s1 = Add($s3 $s2 )
- $s2 = $s1
- $s1 = LtS($s4 $s2 )
- $s2 = $s1
- if0 $s2 goto :while28_end
-while28_body:
- $s2 = $s6
$s1 = 1
- $s4 = Sub($s2 $s1 )
+ $s0 = Add($s3 $s1 )
+ $s1 = $s0
+ $s0 = LtS($s2 $s1 )
+ $s1 = $s0
+ if0 $s1 goto :while28_end
+while28_body:
$s1 = $s4
- $s4 = [$s7+16]
- $s2 = MulS($s1 4 )
- $s2 = Add($s2 4 )
- $s2 = Add($s4 $s2 )
- $s4 = [$s2+0]
- $s2 = $s4
- $s4 = [$s7+16]
- $s1 = MulS($s6 4 )
+ $s0 = 1
+ $s2 = Sub($s1 $s0 )
+ $s0 = $s2
+ $s2 = [$s7+16]
+ $s1 = MulS($s0 4 )
$s1 = Add($s1 4 )
- $s1 = Add($s4 $s1 )
- $s4 = [$s1+0]
- $s1 = $s4
- $s4 = $s1
+ $s1 = Add($s2 $s1 )
+ $s2 = [$s1+0]
$s1 = $s2
- $s2 = LtS($s4 $s1 )
- $s1 = $s2
- if0 $s1 goto :if45_else
+ $s2 = [$s7+16]
+ $s0 = MulS($s4 4 )
+ $s0 = Add($s0 4 )
+ $s0 = Add($s2 $s0 )
+ $s2 = [$s0+0]
+ $s0 = $s2
+ $s2 = $s0
+ $s0 = $s1
+ $s1 = LtS($s2 $s0 )
+ $s0 = $s1
+ if0 $s0 goto :if45_else
if45_body:
- $s1 = $s6
- $s2 = 1
- $s4 = Sub($s1 $s2 )
- $s2 = $s4
- $s4 = [$s7+16]
- $s1 = MulS($s2 4 )
+ $s0 = $s4
+ $s1 = 1
+ $s2 = Sub($s0 $s1 )
+ $s1 = $s2
+ $s2 = [$s7+16]
+ $s0 = MulS($s1 4 )
+ $s0 = Add($s0 4 )
+ $s0 = Add($s2 $s0 )
+ $s2 = [$s0+0]
+ $s0 = $s2
+ $s2 = [$s7+16]
+ $s3 = MulS($s1 4 )
+ $s3 = Add($s3 4 )
+ $s3 = Add($s2 $s3 )
+ $s2 = [$s7+16]
+ $s1 = MulS($s4 4 )
$s1 = Add($s1 4 )
- $s1 = Add($s4 $s1 )
- $s4 = [$s1+0]
- $s1 = $s4
- $s4 = [$s7+16]
- $s3 = MulS($s2 4 )
+ $s1 = Add($s2 $s1 )
+ $s2 = [$s1+0]
+ [$s3+0] = $s2
+ $s2 = [$s7+16]
+ $s3 = MulS($s4 4 )
$s3 = Add($s3 4 )
- $s3 = Add($s4 $s3 )
- $s4 = [$s7+16]
- $s2 = MulS($s6 4 )
- $s2 = Add($s2 4 )
- $s2 = Add($s4 $s2 )
- $s4 = [$s2+0]
- [$s3+0] = $s4
- $s4 = [$s7+16]
- $s7 = MulS($s6 4 )
- $s7 = Add($s7 4 )
- $s7 = Add($s4 $s7 )
- [$s7+0] = $s1
+ $s3 = Add($s2 $s3 )
+ [$s3+0] = $s0
goto :if45_end
if45_else:
- $s7 = 0
+ $s3 = 0
if45_end:
- $s7 = $s6
- $s1 = 1
- $s4 = Add($s7 $s1 )
- $s6 = $s4
+ $s3 = $s4
+ $s0 = 1
+ $s2 = Add($s3 $s0 )
+ $s4 = $s2
goto :while28_test
while28_end:
$s4 = $s5
- $s6 = 1
- $s1 = Sub($s4 $s6 )
- $s5 = $s1
+ $s2 = 1
+ $s0 = Sub($s4 $s2 )
+ $s5 = $s0
goto :while23_test
while23_end:
- $s1 = 0
- $v0 = $s1
+ $s6 = 0
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -302,20 +302,20 @@ while69_test:
if0 $s4 goto :while69_end
while69_body:
$s4 = [$s6+16]
- $s6 = MulS($s7 4 )
- $s6 = Add($s6 4 )
- $s6 = Add($s4 $s6 )
- $s4 = [$s6+0]
- $s6 = $s4
- PrintIntS($s6 )
- $s6 = $s7
+ $s3 = MulS($s7 4 )
+ $s3 = Add($s3 4 )
+ $s3 = Add($s4 $s3 )
+ $s4 = [$s3+0]
+ $s3 = $s4
+ PrintIntS($s3 )
+ $s3 = $s7
$s4 = 1
- $s3 = Add($s6 $s4 )
- $s7 = $s3
+ $s5 = Add($s3 $s4 )
+ $s7 = $s5
goto :while69_test
while69_end:
- $s3 = 0
- $v0 = $s3
+ $s6 = 0
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/LinearSearch.vaporm b/output/LinearSearch.vaporm
index 60a7b9d..68fa7b9 100644
--- a/output/LinearSearch.vaporm
+++ b/output/LinearSearch.vaporm
@@ -252,20 +252,20 @@ while29_test:
if0 $s4 goto :while29_end
while29_body:
$s4 = [$s6+16]
- $s6 = MulS($s7 4 )
- $s6 = Add($s6 4 )
- $s6 = Add($s4 $s6 )
- $s4 = [$s6+0]
- $s6 = $s4
- PrintIntS($s6 )
- $s6 = $s7
+ $s3 = MulS($s7 4 )
+ $s3 = Add($s3 4 )
+ $s3 = Add($s4 $s3 )
+ $s4 = [$s3+0]
+ $s3 = $s4
+ PrintIntS($s3 )
+ $s3 = $s7
$s4 = 1
- $s3 = Add($s6 $s4 )
- $s7 = $s3
+ $s5 = Add($s3 $s4 )
+ $s7 = $s5
goto :while29_test
while29_end:
- $s3 = 0
- $v0 = $s3
+ $s6 = 0
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -288,56 +288,56 @@ func LS_Search [in 0, out 0, local 17]
$s6 = $a1
$s7 = 1
$s4 = 0
- $s3 = 0
+ $s4 = 0
while42_test:
- $s2 = $s7
- $s1 = [$s5+20]
- $s0 = LtS($s2 $s1 )
- $s1 = $s0
- if0 $s1 goto :while42_end
+ $s3 = $s7
+ $s2 = [$s5+20]
+ $s1 = LtS($s3 $s2 )
+ $s2 = $s1
+ if0 $s2 goto :while42_end
while42_body:
- $s1 = [$s5+16]
- $s0 = MulS($s7 4 )
- $s0 = Add($s0 4 )
- $s0 = Add($s1 $s0 )
- $s1 = [$s0+0]
+ $s2 = [$s5+16]
+ $s1 = MulS($s7 4 )
+ $s1 = Add($s1 4 )
+ $s1 = Add($s2 $s1 )
+ $s2 = [$s1+0]
+ $s1 = $s2
+ $s2 = $s6
+ $s3 = 1
+ $s0 = Add($s2 $s3 )
+ $s3 = $s0
$s0 = $s1
- $s1 = $s6
- $s2 = 1
- $t7 = Add($s1 $s2 )
+ $s2 = $s6
+ $t7 = LtS($s0 $s2 )
$s2 = $t7
- $t7 = $s0
- $s1 = $s6
- $s6 = LtS($t7 $s1 )
- $s1 = $s6
- if0 $s1 goto :if53_else
+ if0 $s2 goto :if53_else
if53_body:
- $s1 = 0
+ $s2 = 0
goto :if53_end
if53_else:
- $s6 = $s0
- $s0 = $s2
- $s2 = LtS($s6 $s0 )
- $s0 = Eq($s2 0 )
- $s2 = $s0
- if0 $s2 goto :if57_else
+ $s2 = $s1
+ $s1 = $s3
+ $s3 = LtS($s2 $s1 )
+ $s1 = Eq($s3 0 )
+ $s3 = $s1
+ if0 $s3 goto :if57_else
if57_body:
- $s1 = 0
+ $s2 = 0
goto :if57_end
if57_else:
$s4 = 1
- $s3 = 1
+ $s4 = 1
$s7 = [$s5+20]
if57_end:
if53_end:
- $s5 = $s7
- $s4 = 1
- $s1 = Add($s5 $s4 )
- $s7 = $s1
+ $s3 = $s7
+ $s1 = 1
+ $s2 = Add($s3 $s1 )
+ $s7 = $s2
goto :while42_test
while42_end:
- $s1 = $s3
- $v0 = $s1
+ $s5 = $s4
+ $v0 = $s5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -402,25 +402,25 @@ while70_body:
$s1 = Sub($s3 $s7 )
$s7 = $s1
$s1 = [$s6+16]
- $s6 = MulS($s5 4 )
- $s6 = Add($s6 4 )
- $s6 = Add($s1 $s6 )
+ $s3 = MulS($s5 4 )
+ $s3 = Add($s3 4 )
+ $s3 = Add($s1 $s3 )
$s1 = $s2
$s2 = $s7
$s7 = Add($s1 $s2 )
- [$s6+0] = $s7
+ [$s3+0] = $s7
$s7 = $s5
- $s6 = 1
- $s2 = Add($s7 $s6 )
+ $s3 = 1
+ $s2 = Add($s7 $s3 )
$s5 = $s2
$s2 = $s4
- $s5 = 1
- $s6 = Sub($s2 $s5 )
- $s4 = $s6
+ $s3 = 1
+ $s7 = Sub($s2 $s3 )
+ $s4 = $s7
goto :while70_test
while70_end:
- $s6 = 0
- $v0 = $s6
+ $s4 = 0
+ $v0 = $s4
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/LinkedList.vaporm b/output/LinkedList.vaporm
index 93bf1ec..30eb560 100644
--- a/output/LinkedList.vaporm
+++ b/output/LinkedList.vaporm
@@ -323,8 +323,8 @@ if28_end:
goto :if27_end
if27_else:
$s6 = $s6
- $s5 = [$s6+0]
- $s3 = [$s5+12]
+ $s4 = [$s6+0]
+ $s5 = [$s4+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -335,8 +335,8 @@ if27_else:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- call $s3
- $s5 = $v0
+ call $s5
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -346,8 +346,8 @@ if27_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s5
- if0 $s3 goto :if33_else
+ $s5 = $s4
+ if0 $s5 goto :if33_else
if33_body:
$s7 = 0
goto :if33_end
@@ -357,8 +357,8 @@ if33_end:
if27_end:
if21_end:
if12_end:
- $s4 = $s7
- $v0 = $s4
+ $s5 = $s7
+ $v0 = $s5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -547,7 +547,7 @@ func List_SetNext [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func List_Delete [in 0, out 0, local 17]
+func List_Delete [in 0, out 0, local 38]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -570,19 +570,19 @@ func List_Delete [in 0, out 0, local 17]
$t7 = [$s6+40]
while65_test:
$s6 = Eq($s0 0 )
- $t6 = $s6
+ null = $s6
$s6 = Eq($s4 0 )
- $t5 = $s6
- $s6 = Eq(1 $t6 )
- $t6 = Eq(1 $t5 )
- $t5 = Eq($s6 $t6 )
- $t6 = $t5
- if0 $t6 goto :while65_end
+ null = $s6
+ $s6 = Eq(1 null )
+ null = Eq(1 null )
+ null = Eq($s6 null )
+ $s6 = null
+ if0 $s6 goto :while65_end
while65_body:
$s7 = $s7
- $t6 = [$s7+0]
- $t5 = [$t6+16]
- $t6 = $t7
+ $s6 = [$s7+0]
+ null = [$s6+16]
+ $s6 = $t7
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -593,9 +593,9 @@ while65_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $t6
- call $t5
- $s6 = $v0
+ $a1 = $s6
+ call null
+ $t3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -605,19 +605,19 @@ while65_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t6 = $s6
- if0 $t6 goto :if74_else
+ $s6 = $t3
+ if0 $s6 goto :if74_else
if74_body:
$s4 = 1
- $t6 = $s2
- $s6 = 0
- $t5 = LtS($t6 $s6 )
- $s6 = $t5
+ $s6 = $s2
+ null = 0
+ null = LtS($s6 null )
+ $s6 = null
if0 $s6 goto :if79_else
if79_body:
$s1 = $s1
$s6 = [$s1+0]
- $t5 = [$s6+32]
+ null = [$s6+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -628,8 +628,8 @@ if79_body:
local[15] = $t7
local[16] = $t8
$a0 = $s1
- call $t5
- $s6 = $v0
+ call null
+ $t5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -639,20 +639,20 @@ if79_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s6
+ $s5 = $t5
goto :if79_end
if79_else:
$s6 = 0
- $t5 = 555
- $t6 = Sub($s6 $t5 )
- $t5 = $t6
- PrintIntS($t5 )
+ null = 555
+ null = Sub($s6 null )
+ $s6 = null
+ PrintIntS($s6 )
$s3 = $s3
- $t5 = [$s3+0]
- $t6 = [$t5+12]
+ $s6 = [$s3+0]
+ null = [$s6+12]
$s1 = $s1
- $t5 = [$s1+0]
- $s6 = [$t5+32]
+ $s6 = [$s1+0]
+ null = [$s6+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -663,8 +663,8 @@ if79_else:
local[15] = $t7
local[16] = $t8
$a0 = $s1
- call $s6
- $t5 = $v0
+ call null
+ $t6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -674,7 +674,7 @@ if79_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $t5
+ $s6 = $t6
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -686,8 +686,8 @@ if79_else:
local[16] = $t8
$a0 = $s3
$a1 = $s6
- call $t6
- $t5 = $v0
+ call null
+ $t4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -697,25 +697,25 @@ if79_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $t5
+ $s6 = $t4
$s6 = 0
- $t5 = 555
- $t6 = Sub($s6 $t5 )
- $t5 = $t6
- PrintIntS($t5 )
+ null = 555
+ null = Sub($s6 null )
+ $s6 = null
+ PrintIntS($s6 )
if79_end:
goto :if74_end
if74_else:
- $t5 = 0
+ $s6 = 0
if74_end:
- $t6 = Eq($s4 0 )
- $s4 = $t6
- if0 $s4 goto :if101_else
+ $s6 = Eq($s4 0 )
+ null = $s6
+ if0 null goto :if101_else
if101_body:
$s3 = $s1
$s1 = $s1
- $s3 = [$s1+0]
- $s4 = [$s3+32]
+ $s6 = [$s1+0]
+ null = [$s6+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -726,8 +726,8 @@ if101_body:
local[15] = $t7
local[16] = $t8
$a0 = $s1
- call $s4
- $s3 = $v0
+ call null
+ null = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -737,10 +737,10 @@ if101_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
+ $s1 = null
$s1 = $s1
- $s3 = [$s1+0]
- $s4 = [$s3+24]
+ $s6 = [$s1+0]
+ null = [$s6+24]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -751,8 +751,8 @@ if101_body:
local[15] = $t7
local[16] = $t8
$a0 = $s1
- call $s4
- $s3 = $v0
+ call null
+ null = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -762,10 +762,10 @@ if101_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s0 = $s3
+ $s0 = null
$s1 = $s1
- $s3 = [$s1+0]
- $s0 = [$s3+28]
+ $s6 = [$s1+0]
+ null = [$s6+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -776,8 +776,8 @@ if101_body:
local[15] = $t7
local[16] = $t8
$a0 = $s1
- call $s0
- $s3 = $v0
+ call null
+ null = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -787,16 +787,16 @@ if101_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t7 = $s3
+ $t7 = null
$s2 = 1
goto :if101_end
if101_else:
- $t5 = 0
+ $s6 = 0
if101_end:
goto :while65_test
while65_end:
- $t5 = $s5
- $v0 = $t5
+ $t3 = $s5
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -823,13 +823,13 @@ func List_Search [in 0, out 0, local 17]
$s2 = [$s6+40]
while113_test:
$s6 = Eq($s3 0 )
- $s1 = $s6
- if0 $s1 goto :while113_end
+ $t5 = $s6
+ if0 $t5 goto :while113_end
while113_body:
$s7 = $s7
- $s1 = [$s7+0]
- $s6 = [$s1+16]
- $s1 = $s2
+ $t5 = [$s7+0]
+ $s6 = [$t5+16]
+ $t5 = $s2
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -840,9 +840,9 @@ while113_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s1
+ $a1 = $t5
call $s6
- $s0 = $v0
+ $t6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -852,17 +852,17 @@ while113_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s0
- if0 $s1 goto :if116_else
+ $t5 = $t6
+ if0 $t5 goto :if116_else
if116_body:
$s5 = 1
goto :if116_end
if116_else:
- $s1 = 0
+ $t5 = 0
if116_end:
$s4 = $s4
- $s1 = [$s4+0]
- $s0 = [$s1+32]
+ $t5 = [$s4+0]
+ $s6 = [$t5+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -873,7 +873,7 @@ if116_end:
local[15] = $t7
local[16] = $t8
$a0 = $s4
- call $s0
+ call $s6
$s1 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -886,8 +886,8 @@ if116_end:
$t8 = local[16]
$s4 = $s1
$s4 = $s4
- $s1 = [$s4+0]
- $s0 = [$s1+24]
+ $s6 = [$s4+0]
+ $t5 = [$s6+24]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -898,8 +898,8 @@ if116_end:
local[15] = $t7
local[16] = $t8
$a0 = $s4
- call $s0
- $s1 = $v0
+ call $t5
+ $t7 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -909,10 +909,10 @@ if116_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s1
+ $s3 = $t7
$s4 = $s4
- $s1 = [$s4+0]
- $s3 = [$s1+28]
+ $t5 = [$s4+0]
+ $s6 = [$t5+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -923,8 +923,8 @@ if116_end:
local[15] = $t7
local[16] = $t8
$a0 = $s4
- call $s3
- $s1 = $v0
+ call $s6
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -934,11 +934,11 @@ if116_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s1
+ $s2 = $s0
goto :while113_test
while113_end:
- $s1 = $s5
- $v0 = $s1
+ $t6 = $s5
+ $v0 = $t6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1026,12 +1026,12 @@ func List_Print [in 0, out 0, local 17]
$s4 = [$s7+40]
while134_test:
$s7 = Eq($s5 0 )
- $s3 = $s7
- if0 $s3 goto :while134_end
+ $t7 = $s7
+ if0 $t7 goto :while134_end
while134_body:
$s4 = $s4
- $s3 = [$s4+0]
- $s7 = [$s3+4]
+ $t7 = [$s4+0]
+ $s7 = [$t7+4]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1043,7 +1043,7 @@ while134_body:
local[16] = $t8
$a0 = $s4
call $s7
- $s3 = $v0
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1053,11 +1053,11 @@ while134_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s3
+ $s7 = $s0
PrintIntS($s7 )
$s6 = $s6
$s7 = [$s6+0]
- $s3 = [$s7+32]
+ $t7 = [$s7+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1068,8 +1068,8 @@ while134_body:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- call $s3
- $s7 = $v0
+ call $t7
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1079,10 +1079,10 @@ while134_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s7
+ $s6 = $s2
$s6 = $s6
- $s7 = [$s6+0]
- $s3 = [$s7+24]
+ $t7 = [$s6+0]
+ $s7 = [$t7+24]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1093,8 +1093,8 @@ while134_body:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- call $s3
- $s7 = $v0
+ call $s7
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1104,10 +1104,10 @@ while134_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s7
+ $s5 = $s3
$s6 = $s6
$s7 = [$s6+0]
- $s5 = [$s7+28]
+ $t7 = [$s7+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1118,8 +1118,8 @@ while134_body:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- call $s5
- $s7 = $v0
+ call $t7
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1129,11 +1129,11 @@ while134_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s7
+ $s4 = $s1
goto :while134_test
while134_end:
- $s7 = 1
- $v0 = $s7
+ $s0 = 1
+ $v0 = $s0
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1181,10 +1181,10 @@ func LL_Start [in 0, out 0, local 17]
$t7 = local[15]
$t8 = local[16]
$s5 = $s6
- $s6 = $s7
- $s6 = $s6
- $s7 = [$s6+0]
- $s4 = [$s7+0]
+ $s5 = $s7
+ $s5 = $s5
+ $s7 = [$s5+0]
+ $s6 = [$s7+0]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1194,8 +1194,8 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- call $s4
+ $a0 = $s5
+ call $s6
$s7 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1207,9 +1207,9 @@ func LL_Start [in 0, out 0, local 17]
$t7 = local[15]
$t8 = local[16]
$s5 = $s7
- $s6 = $s6
- $s7 = [$s6+0]
- $s4 = [$s7+36]
+ $s5 = $s5
+ $s7 = [$s5+0]
+ $s6 = [$s7+36]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1219,8 +1219,8 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- call $s4
+ $a0 = $s5
+ call $s6
$s7 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1234,13 +1234,13 @@ func LL_Start [in 0, out 0, local 17]
$s5 = $s7
$s7 = HeapAllocZ(36 )
[$s7+0] = :functable_Element
- $s4 = $s7
- $s4 = $s4
- $s7 = [$s4+0]
- $s3 = [$s7+0]
+ $s6 = $s7
+ $s6 = $s6
+ $s7 = [$s6+0]
+ $s4 = [$s7+0]
$s7 = 25
- $s2 = 37000
- $s1 = 0
+ $s3 = 37000
+ $s2 = 0
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1250,12 +1250,12 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s4
+ $a0 = $s6
$a1 = $s7
- $a2 = $s2
- $a3 = $s1
- call $s3
- $s0 = $v0
+ $a2 = $s3
+ $a3 = $s2
+ call $s4
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1265,11 +1265,11 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s0
- $s6 = $s6
- $s0 = [$s6+0]
- $s1 = [$s0+8]
- $s0 = $s4
+ $s5 = $s1
+ $s5 = $s5
+ $s1 = [$s5+0]
+ $s2 = [$s1+8]
+ $s1 = $s6
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1279,10 +1279,10 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- $a1 = $s0
- call $s1
- $s2 = $v0
+ $a0 = $s5
+ $a1 = $s1
+ call $s2
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1292,10 +1292,10 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s2
- $s6 = $s6
- $s2 = [$s6+0]
- $s0 = [$s2+36]
+ $s5 = $s3
+ $s5 = $s5
+ $s3 = [$s5+0]
+ $s1 = [$s3+36]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1305,9 +1305,9 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- call $s0
- $s2 = $v0
+ $a0 = $s5
+ call $s1
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1317,17 +1317,17 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s2
- $s2 = 10000000
- PrintIntS($s2 )
- $s2 = HeapAllocZ(36 )
- [$s2+0] = :functable_Element
- $s4 = $s2
- $s4 = $s4
- $s2 = [$s4+0]
- $s0 = [$s2+0]
- $s2 = 39
- $s1 = 42000
+ $s5 = $s3
+ $s3 = 10000000
+ PrintIntS($s3 )
+ $s3 = HeapAllocZ(36 )
+ [$s3+0] = :functable_Element
+ $s6 = $s3
+ $s6 = $s6
+ $s3 = [$s6+0]
+ $s1 = [$s3+0]
+ $s3 = 39
+ $s2 = 42000
$s7 = 1
local[8] = $t0
local[9] = $t1
@@ -1338,12 +1338,12 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s4
- $a1 = $s2
- $a2 = $s1
+ $a0 = $s6
+ $a1 = $s3
+ $a2 = $s2
$a3 = $s7
- call $s0
- $s3 = $v0
+ call $s1
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1353,12 +1353,12 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s3
- $s3 = $s4
- $s6 = $s6
- $s7 = [$s6+0]
- $s1 = [$s7+8]
- $s7 = $s4
+ $s5 = $s4
+ $s4 = $s6
+ $s5 = $s5
+ $s7 = [$s5+0]
+ $s2 = [$s7+8]
+ $s7 = $s6
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1368,10 +1368,10 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
+ $a0 = $s5
$a1 = $s7
- call $s1
- $s2 = $v0
+ call $s2
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1381,10 +1381,10 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s2
- $s6 = $s6
- $s2 = [$s6+0]
- $s7 = [$s2+36]
+ $s5 = $s3
+ $s5 = $s5
+ $s3 = [$s5+0]
+ $s7 = [$s3+36]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1394,9 +1394,9 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
+ $a0 = $s5
call $s7
- $s2 = $v0
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1406,18 +1406,18 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s2
- $s2 = 10000000
- PrintIntS($s2 )
- $s2 = HeapAllocZ(36 )
- [$s2+0] = :functable_Element
- $s4 = $s2
- $s4 = $s4
- $s2 = [$s4+0]
- $s7 = [$s2+0]
- $s2 = 22
- $s1 = 34000
- $s0 = 0
+ $s5 = $s3
+ $s3 = 10000000
+ PrintIntS($s3 )
+ $s3 = HeapAllocZ(36 )
+ [$s3+0] = :functable_Element
+ $s6 = $s3
+ $s6 = $s6
+ $s3 = [$s6+0]
+ $s7 = [$s3+0]
+ $s3 = 22
+ $s2 = 34000
+ $s1 = 0
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1427,12 +1427,12 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s4
- $a1 = $s2
- $a2 = $s1
- $a3 = $s0
+ $a0 = $s6
+ $a1 = $s3
+ $a2 = $s2
+ $a3 = $s1
call $s7
- $t7 = $v0
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1442,11 +1442,11 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $t7
- $s6 = $s6
- $t7 = [$s6+0]
- $s0 = [$t7+8]
- $t7 = $s4
+ $s5 = $s0
+ $s5 = $s5
+ $s0 = [$s5+0]
+ $s1 = [$s0+8]
+ $s0 = $s6
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1456,10 +1456,10 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- $a1 = $t7
- call $s0
- $s1 = $v0
+ $a0 = $s5
+ $a1 = $s0
+ call $s1
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1469,10 +1469,10 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s1
- $s6 = $s6
- $s1 = [$s6+0]
- $t7 = [$s1+36]
+ $s5 = $s2
+ $s5 = $s5
+ $s2 = [$s5+0]
+ $s0 = [$s2+36]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1482,9 +1482,9 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- call $t7
- $s1 = $v0
+ $a0 = $s5
+ call $s0
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1494,15 +1494,15 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s1
- $s1 = HeapAllocZ(36 )
- [$s1+0] = :functable_Element
- $t7 = $s1
- $t7 = $t7
- $s1 = [$t7+0]
- $s0 = [$s1+0]
- $s1 = 27
- $s2 = 34000
+ $s5 = $s2
+ $s2 = HeapAllocZ(36 )
+ [$s2+0] = :functable_Element
+ $s0 = $s2
+ $s0 = $s0
+ $s2 = [$s0+0]
+ $s1 = [$s2+0]
+ $s2 = 27
+ $s3 = 34000
$s7 = 0
local[8] = $t0
local[9] = $t1
@@ -1513,12 +1513,12 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $t7
- $a1 = $s1
- $a2 = $s2
+ $a0 = $s0
+ $a1 = $s2
+ $a2 = $s3
$a3 = $s7
- call $s0
- $t6 = $v0
+ call $s1
+ $t7 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1528,11 +1528,11 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $t6
- $s6 = $s6
- $t6 = [$s6+0]
- $s7 = [$t6+20]
- $t6 = $s3
+ $s5 = $t7
+ $s5 = $s5
+ $t7 = [$s5+0]
+ $s7 = [$t7+20]
+ $t7 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1542,10 +1542,10 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- $a1 = $t6
+ $a0 = $s5
+ $a1 = $t7
call $s7
- $s2 = $v0
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1555,12 +1555,12 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t6 = $s2
- PrintIntS($t6 )
- $s6 = $s6
- $t6 = [$s6+0]
- $s2 = [$t6+20]
- $t6 = $t7
+ $t7 = $s3
+ PrintIntS($t7 )
+ $s5 = $s5
+ $t7 = [$s5+0]
+ $s3 = [$t7+20]
+ $t7 = $s0
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1570,10 +1570,10 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- $a1 = $t6
- call $s2
- $t7 = $v0
+ $a0 = $s5
+ $a1 = $t7
+ call $s3
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1583,18 +1583,18 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t6 = $t7
- PrintIntS($t6 )
- $t6 = 10000000
- PrintIntS($t6 )
- $t6 = HeapAllocZ(36 )
- [$t6+0] = :functable_Element
- $s4 = $t6
- $s4 = $s4
- $t6 = [$s4+0]
- $t7 = [$t6+0]
- $t6 = 28
- $s2 = 35000
+ $t7 = $s0
+ PrintIntS($t7 )
+ $t7 = 10000000
+ PrintIntS($t7 )
+ $t7 = HeapAllocZ(36 )
+ [$t7+0] = :functable_Element
+ $s6 = $t7
+ $s6 = $s6
+ $t7 = [$s6+0]
+ $s0 = [$t7+0]
+ $t7 = 28
+ $s3 = 35000
$s7 = 0
local[8] = $t0
local[9] = $t1
@@ -1605,12 +1605,12 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s4
- $a1 = $t6
- $a2 = $s2
+ $a0 = $s6
+ $a1 = $t7
+ $a2 = $s3
$a3 = $s7
- call $t7
- $s1 = $v0
+ call $s0
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1620,11 +1620,11 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s1
- $s6 = $s6
- $s1 = [$s6+0]
- $s7 = [$s1+8]
- $s1 = $s4
+ $s5 = $s2
+ $s5 = $s5
+ $s2 = [$s5+0]
+ $s7 = [$s2+8]
+ $s2 = $s6
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1634,10 +1634,10 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- $a1 = $s1
+ $a0 = $s5
+ $a1 = $s2
call $s7
- $s2 = $v0
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1647,10 +1647,10 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s2
- $s6 = $s6
- $s2 = [$s6+0]
- $s1 = [$s2+36]
+ $s5 = $s3
+ $s5 = $s5
+ $s3 = [$s5+0]
+ $s2 = [$s3+36]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1660,9 +1660,9 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- call $s1
- $s2 = $v0
+ $a0 = $s5
+ call $s2
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1672,13 +1672,13 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s2
- $s2 = 2220000
- PrintIntS($s2 )
- $s6 = $s6
- $s2 = [$s6+0]
- $s1 = [$s2+16]
- $s2 = $s3
+ $s5 = $s3
+ $s3 = 2220000
+ PrintIntS($s3 )
+ $s5 = $s5
+ $s3 = [$s5+0]
+ $s2 = [$s3+16]
+ $s3 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1688,10 +1688,10 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- $a1 = $s2
- call $s1
- $s3 = $v0
+ $a0 = $s5
+ $a1 = $s3
+ call $s2
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1701,10 +1701,10 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
- $s6 = $s6
- $s3 = [$s6+0]
- $s2 = [$s3+36]
+ $s5 = $s4
+ $s5 = $s5
+ $s4 = [$s5+0]
+ $s3 = [$s4+36]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1714,9 +1714,9 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- call $s2
- $s3 = $v0
+ $a0 = $s5
+ call $s3
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1726,13 +1726,13 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s3
- $s3 = 33300000
- PrintIntS($s3 )
- $s6 = $s6
- $s3 = [$s6+0]
- $s2 = [$s3+16]
- $s3 = $s4
+ $s5 = $s4
+ $s4 = 33300000
+ PrintIntS($s4 )
+ $s5 = $s5
+ $s4 = [$s5+0]
+ $s3 = [$s4+16]
+ $s4 = $s6
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1742,10 +1742,10 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- $a1 = $s3
- call $s2
- $s4 = $v0
+ $a0 = $s5
+ $a1 = $s4
+ call $s3
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1755,10 +1755,10 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s4
- $s6 = $s6
- $s4 = [$s6+0]
- $s3 = [$s4+36]
+ $s5 = $s6
+ $s5 = $s5
+ $s6 = [$s5+0]
+ $s4 = [$s6+36]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1768,9 +1768,9 @@ func LL_Start [in 0, out 0, local 17]
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s6
- call $s3
- $s4 = $v0
+ $a0 = $s5
+ call $s4
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1780,11 +1780,11 @@ func LL_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s4
- $s4 = 44440000
- PrintIntS($s4 )
- $s4 = 0
- $v0 = $s4
+ $s5 = $s6
+ $s6 = 44440000
+ PrintIntS($s6 )
+ $s6 = 0
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/QuickSort.vaporm b/output/QuickSort.vaporm
index 3338b43..9b4d333 100644
--- a/output/QuickSort.vaporm
+++ b/output/QuickSort.vaporm
@@ -135,7 +135,7 @@ func QS_Start [in 0, out 0, local 17]
$a1 = $s7
$a2 = $s5
call $s3
- $s2 = $v0
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -145,9 +145,9 @@ func QS_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s2
- $s2 = [$s6+0]
- $s2 = [$s2+8]
+ $s4 = $s4
+ $s4 = [$s6+0]
+ $s4 = [$s4+8]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -158,7 +158,7 @@ func QS_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s6
- call $s2
+ call $s4
$s5 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -261,10 +261,10 @@ while47_body:
$t4 = [$t6+0]
$t5 = $t4
$t4 = $s1
- $s1 = $t5
- $t5 = LtS($t4 $s1 )
- $s1 = Eq($t5 0 )
- $t5 = $s1
+ $t6 = $t5
+ $t5 = LtS($t4 $t6 )
+ $t6 = Eq($t5 0 )
+ $t5 = $t6
if0 $t5 goto :if55_else
if55_body:
$t7 = 0
@@ -285,10 +285,10 @@ while47_end:
$t5 = Add($t5 4 )
$t5 = Add($t7 $t5 )
$t7 = [$s5+16]
- $s1 = MulS($s0 4 )
- $s1 = Add($s1 4 )
- $s1 = Add($t7 $s1 )
- $t7 = [$s1+0]
+ $t6 = MulS($s0 4 )
+ $t6 = Add($t6 4 )
+ $t6 = Add($t7 $t6 )
+ $t7 = [$t6+0]
[$t5+0] = $t7
$t7 = [$s5+16]
$t5 = MulS($s0 4 )
@@ -297,12 +297,12 @@ while47_end:
[$t5+0] = $s4
$t5 = $s0
$t7 = $s3
- $s1 = 1
- $t4 = Add($t7 $s1 )
- $s1 = $t4
- $t4 = LtS($t5 $s1 )
- $s1 = $t4
- if0 $s1 goto :if70_else
+ $t6 = 1
+ $t4 = Add($t7 $t6 )
+ $t6 = $t4
+ $t4 = LtS($t5 $t6 )
+ $t6 = $t4
+ if0 $t6 goto :if70_else
if70_body:
$s2 = 0
goto :if70_end
@@ -367,13 +367,13 @@ while32_end:
$t7 = local[15]
$t8 = local[16]
$s4 = $s0
- $s0 = [$s5+0]
- $s2 = $s3
+ $s4 = [$s5+0]
+ $s0 = $s3
$s3 = 1
- $s1 = Add($s2 $s3 )
- $s3 = $s1
- $s1 = $s7
- $s0 = [$s0+4]
+ $s2 = Add($s0 $s3 )
+ $s3 = $s2
+ $s2 = $s7
+ $s4 = [$s4+4]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -385,8 +385,8 @@ while32_end:
local[16] = $t8
$a0 = $s5
$a1 = $s3
- $a2 = $s1
- call $s0
+ $a2 = $s2
+ call $s4
$s7 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -402,8 +402,8 @@ while32_end:
if22_else:
$s4 = 0
if22_end:
- $s4 = 0
- $v0 = $s4
+ $s7 = 0
+ $v0 = $s7
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -432,20 +432,20 @@ while104_test:
if0 $s4 goto :while104_end
while104_body:
$s4 = [$s6+16]
- $s6 = MulS($s7 4 )
- $s6 = Add($s6 4 )
- $s6 = Add($s4 $s6 )
- $s4 = [$s6+0]
- $s6 = $s4
- PrintIntS($s6 )
- $s6 = $s7
+ $s3 = MulS($s7 4 )
+ $s3 = Add($s3 4 )
+ $s3 = Add($s4 $s3 )
+ $s4 = [$s3+0]
+ $s3 = $s4
+ PrintIntS($s3 )
+ $s3 = $s7
$s4 = 1
- $s3 = Add($s6 $s4 )
- $s7 = $s3
+ $s5 = Add($s3 $s4 )
+ $s7 = $s5
goto :while104_test
while104_end:
- $s3 = 0
- $v0 = $s3
+ $s6 = 0
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/TreeVisitor.vaporm b/output/TreeVisitor.vaporm
index 9a2c5f3..3dc9134 100644
--- a/output/TreeVisitor.vaporm
+++ b/output/TreeVisitor.vaporm
@@ -114,36 +114,8 @@ func TV_Start [in 0, out 0, local 17]
$t8 = local[16]
$s6 = $s4
$s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+72]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $s4 = $v0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $s4
- $s4 = 100000000
- PrintIntS($s4 )
- $s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+48]
- $s4 = 8
+ $s6 = [$s7+0]
+ $s4 = [$s6+72]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -154,9 +126,8 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s4
- call $s5
- $s3 = $v0
+ call $s4
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -166,11 +137,13 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
+ $s6 = $s6
+ $s6 = 100000000
+ PrintIntS($s6 )
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+48]
- $s3 = 24
+ $s6 = [$s7+0]
+ $s4 = [$s6+48]
+ $s6 = 8
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -181,7 +154,7 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
+ $a1 = $s6
call $s4
$s5 = $v0
$t0 = local[8]
@@ -196,8 +169,8 @@ func TV_Start [in 0, out 0, local 17]
$s6 = $s5
$s7 = $s7
$s5 = [$s7+0]
- $s3 = [$s5+48]
- $s5 = 4
+ $s6 = [$s5+48]
+ $s5 = 24
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -209,7 +182,7 @@ func TV_Start [in 0, out 0, local 17]
local[16] = $t8
$a0 = $s7
$a1 = $s5
- call $s3
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -224,7 +197,7 @@ func TV_Start [in 0, out 0, local 17]
$s7 = $s7
$s4 = [$s7+0]
$s5 = [$s4+48]
- $s4 = 12
+ $s4 = 4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -237,7 +210,7 @@ func TV_Start [in 0, out 0, local 17]
$a0 = $s7
$a1 = $s4
call $s5
- $s3 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -247,11 +220,11 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
+ $s6 = $s6
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+48]
- $s3 = 20
+ $s6 = [$s7+0]
+ $s4 = [$s6+48]
+ $s6 = 12
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -262,7 +235,7 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
+ $a1 = $s6
call $s4
$s5 = $v0
$t0 = local[8]
@@ -277,8 +250,8 @@ func TV_Start [in 0, out 0, local 17]
$s6 = $s5
$s7 = $s7
$s5 = [$s7+0]
- $s3 = [$s5+48]
- $s5 = 28
+ $s6 = [$s5+48]
+ $s5 = 20
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -290,7 +263,7 @@ func TV_Start [in 0, out 0, local 17]
local[16] = $t8
$a0 = $s7
$a1 = $s5
- call $s3
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -305,7 +278,7 @@ func TV_Start [in 0, out 0, local 17]
$s7 = $s7
$s4 = [$s7+0]
$s5 = [$s4+48]
- $s4 = 14
+ $s4 = 28
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -318,7 +291,7 @@ func TV_Start [in 0, out 0, local 17]
$a0 = $s7
$a1 = $s4
call $s5
- $s3 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -328,10 +301,11 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
+ $s6 = $s6
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+72]
+ $s6 = [$s7+0]
+ $s4 = [$s6+48]
+ $s6 = 14
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -342,8 +316,9 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
+ $a1 = $s6
call $s4
- $s3 = $v0
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -353,18 +328,10 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s3
- $s3 = 100000000
- PrintIntS($s3 )
- $s3 = HeapAllocZ(16 )
- [$s3+0] = :functable_MyVisitor
- $s4 = $s3
- $s3 = 50000000
- PrintIntS($s3 )
+ $s6 = $s5
$s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+80]
- $s3 = $s4
+ $s5 = [$s7+0]
+ $s6 = [$s5+72]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -375,9 +342,8 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
- call $s5
- $s4 = $v0
+ call $s6
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -387,13 +353,18 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
- $s3 = 100000000
- PrintIntS($s3 )
+ $s6 = $s5
+ $s5 = 100000000
+ PrintIntS($s5 )
+ $s5 = HeapAllocZ(16 )
+ [$s5+0] = :functable_MyVisitor
+ $s6 = $s5
+ $s5 = 50000000
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+68]
- $s3 = 24
+ $s5 = [$s7+0]
+ $s4 = [$s5+80]
+ $s5 = $s6
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -404,9 +375,9 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
+ $a1 = $s5
call $s4
- $s5 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -416,12 +387,13 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s5
- PrintIntS($s3 )
+ $s5 = $s6
+ $s5 = 100000000
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+68]
- $s3 = 12
+ $s5 = [$s7+0]
+ $s6 = [$s5+68]
+ $s5 = 24
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -432,8 +404,8 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
- call $s5
+ $a1 = $s5
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -444,12 +416,12 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
- PrintIntS($s3 )
+ $s5 = $s4
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+68]
- $s3 = 16
+ $s5 = [$s7+0]
+ $s4 = [$s5+68]
+ $s5 = 12
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -460,9 +432,9 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
+ $a1 = $s5
call $s4
- $s5 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -472,12 +444,12 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s5
- PrintIntS($s3 )
+ $s5 = $s6
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+68]
- $s3 = 50
+ $s5 = [$s7+0]
+ $s6 = [$s5+68]
+ $s5 = 16
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -488,8 +460,8 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
- call $s5
+ $a1 = $s5
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -500,12 +472,12 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
- PrintIntS($s3 )
+ $s5 = $s4
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+68]
- $s3 = 12
+ $s5 = [$s7+0]
+ $s4 = [$s5+68]
+ $s5 = 50
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -516,9 +488,9 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
+ $a1 = $s5
call $s4
- $s5 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -528,12 +500,12 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s5
- PrintIntS($s3 )
+ $s5 = $s6
+ PrintIntS($s5 )
$s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+52]
- $s3 = 12
+ $s5 = [$s7+0]
+ $s6 = [$s5+68]
+ $s5 = 12
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -544,8 +516,8 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s3
- call $s5
+ $a1 = $s5
+ call $s6
$s4 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -556,10 +528,12 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s4
+ $s5 = $s4
+ PrintIntS($s5 )
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+72]
+ $s5 = [$s7+0]
+ $s4 = [$s5+52]
+ $s5 = 12
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -570,8 +544,9 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s4 = $v0
+ $a1 = $s5
+ call $s4
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -581,11 +556,10 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s6 = $s4
+ $s6 = $s6
$s7 = $s7
- $s4 = [$s7+0]
- $s6 = [$s4+68]
- $s4 = 12
+ $s6 = [$s7+0]
+ $s5 = [$s6+72]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -596,9 +570,8 @@ func TV_Start [in 0, out 0, local 17]
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s4
- call $s6
- $s3 = $v0
+ call $s5
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -608,10 +581,37 @@ func TV_Start [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s3
- PrintIntS($s4 )
- $s4 = 0
- $v0 = $s4
+ $s6 = $s6
+ $s7 = $s7
+ $s6 = [$s7+0]
+ $s5 = [$s6+68]
+ $s6 = 12
+ local[8] = $t0
+ local[9] = $t1
+ local[10] = $t2
+ local[11] = $t3
+ local[12] = $t4
+ local[13] = $t5
+ local[14] = $t6
+ local[15] = $t7
+ local[16] = $t8
+ $a0 = $s7
+ $a1 = $s6
+ call $s5
+ $s4 = $v0
+ $t0 = local[8]
+ $t1 = local[9]
+ $t2 = local[10]
+ $t3 = local[11]
+ $t4 = local[12]
+ $t5 = local[13]
+ $t6 = local[14]
+ $t7 = local[15]
+ $t8 = local[16]
+ $s6 = $s4
+ PrintIntS($s6 )
+ $s6 = 0
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -916,7 +916,7 @@ if105_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Insert [in 0, out 0, local 17]
+func Tree_Insert [in 0, out 0, local 29]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -957,15 +957,15 @@ func Tree_Insert [in 0, out 0, local 17]
$t7 = local[15]
$t8 = local[16]
$s5 = $s2
- $s2 = $s6
+ $s5 = $s6
$s6 = 1
while120_test:
- $s3 = $s6
- if0 $s3 goto :while120_end
+ $s2 = $s6
+ if0 $s2 goto :while120_end
while120_body:
- $s2 = $s2
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -975,9 +975,9 @@ while120_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s1
- $s3 = $v0
+ $a0 = $s5
+ call null
+ $t5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -987,16 +987,16 @@ while120_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
- $s3 = $s7
- $s7 = $s1
- $s1 = LtS($s3 $s7 )
- $s7 = $s1
- if0 $s7 goto :if125_else
+ $s2 = $t5
+ null = $s7
+ null = $s2
+ $s2 = LtS(null null )
+ null = $s2
+ if0 null goto :if125_else
if125_body:
- $s2 = $s2
- $s7 = [$s2+0]
- $s1 = [$s7+32]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1006,9 +1006,9 @@ if125_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s1
- $s7 = $v0
+ $a0 = $s5
+ call null
+ $t7 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1018,12 +1018,12 @@ if125_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s7
- if0 $s1 goto :if129_else
+ $s2 = $t7
+ if0 $s2 goto :if129_else
if129_body:
- $s2 = $s2
- $s1 = [$s2+0]
- $s7 = [$s1+16]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1033,9 +1033,9 @@ if129_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s7
- $s1 = $v0
+ $a0 = $s5
+ call null
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1045,14 +1045,14 @@ if129_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s1
+ $s5 = $s3
goto :if129_end
if129_else:
$s6 = 0
- $s2 = $s2
- $s1 = [$s2+0]
- $s7 = [$s1+36]
- $s1 = 1
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+36]
+ $s2 = 1
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1062,10 +1062,10 @@ if129_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- $a1 = $s1
- call $s7
- $s3 = $v0
+ $a0 = $s5
+ $a1 = $s2
+ call null
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1075,11 +1075,11 @@ if129_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s3
- $s2 = $s2
- $s3 = [$s2+0]
- $s1 = [$s3+8]
- $s3 = $s4
+ $s5 = $s0
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+8]
+ $s2 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1089,10 +1089,10 @@ if129_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- $a1 = $s3
- call $s1
- $s7 = $v0
+ $a0 = $s5
+ $a1 = $s2
+ call null
+ $t3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1102,13 +1102,13 @@ if129_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s7
+ $s5 = $t3
if129_end:
goto :if125_end
if125_else:
- $s2 = $s2
- $s7 = [$s2+0]
- $s3 = [$s7+28]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1118,9 +1118,9 @@ if125_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s3
- $s7 = $v0
+ $a0 = $s5
+ call null
+ $t4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1130,12 +1130,12 @@ if125_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s7
- if0 $s3 goto :if144_else
+ $s2 = $t4
+ if0 $s2 goto :if144_else
if144_body:
- $s2 = $s2
- $s3 = [$s2+0]
- $s7 = [$s3+12]
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1145,9 +1145,9 @@ if144_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s7
- $s3 = $v0
+ $a0 = $s5
+ call null
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1157,14 +1157,14 @@ if144_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s3
+ $s5 = $s2
goto :if144_end
if144_else:
$s6 = 0
- $s2 = $s2
- $s6 = [$s2+0]
- $s3 = [$s6+40]
- $s6 = 1
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+40]
+ $s2 = 1
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1174,10 +1174,10 @@ if144_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- $a1 = $s6
- call $s3
- $s7 = $v0
+ $a0 = $s5
+ $a1 = $s2
+ call null
+ $t6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1187,11 +1187,11 @@ if144_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s7
- $s2 = $s2
- $s7 = [$s2+0]
- $s6 = [$s7+4]
- $s7 = $s4
+ $s5 = $t6
+ $s5 = $s5
+ $s2 = [$s5+0]
+ null = [$s2+4]
+ $s2 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1201,10 +1201,10 @@ if144_else:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- $a1 = $s7
- call $s6
- $s4 = $v0
+ $a0 = $s5
+ $a1 = $s2
+ call null
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1214,13 +1214,13 @@ if144_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s4
+ $s5 = $s1
if144_end:
if125_end:
goto :while120_test
while120_end:
- $s4 = 1
- $v0 = $s4
+ $t3 = 1
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1230,7 +1230,7 @@ while120_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Delete [in 0, out 0, local 17]
+func Tree_Delete [in 0, out 0, local 44]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1252,7 +1252,7 @@ while160_test:
while160_body:
$s5 = $s5
$s0 = [$s5+0]
- $t7 = [$s0+20]
+ null = [$s0+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1263,8 +1263,8 @@ while160_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t7
- $s0 = $v0
+ call null
+ $t5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1274,16 +1274,16 @@ while160_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t7 = $s0
- $s0 = $s7
- $t6 = $t7
- $t5 = LtS($s0 $t6 )
- $t6 = $t5
- if0 $t6 goto :if165_else
+ $s0 = $t5
+ null = $s7
+ null = $s0
+ null = LtS(null null )
+ null = null
+ if0 null goto :if165_else
if165_body:
$s5 = $s5
- $t6 = [$s5+0]
- $t5 = [$t6+32]
+ null = [$s5+0]
+ null = [null+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1294,8 +1294,8 @@ if165_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t5
- $t6 = $v0
+ call null
+ null = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1305,13 +1305,13 @@ if165_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t5 = $t6
- if0 $t5 goto :if169_else
+ null = null
+ if0 null goto :if169_else
if169_body:
$s4 = $s5
$s5 = $s5
- $t5 = [$s5+0]
- $t6 = [$t5+16]
+ null = [$s5+0]
+ null = [null+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1322,8 +1322,8 @@ if169_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t6
- $t5 = $v0
+ call null
+ $t4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1333,22 +1333,22 @@ if169_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $t5
+ $s5 = $t4
goto :if169_end
if169_else:
$s3 = 0
if169_end:
goto :if165_end
if165_else:
- $t5 = $t7
- $t7 = $s7
- $s7 = LtS($t5 $t7 )
- $t7 = $s7
- if0 $t7 goto :if176_else
+ null = $s0
+ $s0 = $s7
+ null = LtS(null $s0 )
+ $s0 = null
+ if0 $s0 goto :if176_else
if176_body:
$s5 = $s5
- $t7 = [$s5+0]
- $s7 = [$t7+28]
+ $s0 = [$s5+0]
+ null = [$s0+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1359,8 +1359,8 @@ if176_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s7
- $t7 = $v0
+ call null
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1370,13 +1370,13 @@ if176_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $t7
- if0 $s7 goto :if180_else
+ null = $s0
+ if0 null goto :if180_else
if180_body:
$s4 = $s5
$s5 = $s5
- $s7 = [$s5+0]
- $t7 = [$s7+12]
+ $s0 = [$s5+0]
+ null = [$s0+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1387,8 +1387,8 @@ if180_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t7
- $s7 = $v0
+ call null
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1398,19 +1398,19 @@ if180_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s7
+ $s5 = $s0
goto :if180_end
if180_else:
$s3 = 0
if180_end:
goto :if176_end
if176_else:
- $s7 = $s1
- if0 $s7 goto :if187_else
+ $s0 = $s1
+ if0 $s0 goto :if187_else
if187_body:
$s5 = $s5
- $s7 = [$s5+0]
- $t7 = [$s7+28]
+ $s0 = [$s5+0]
+ null = [$s0+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1421,8 +1421,8 @@ if187_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t7
- $s7 = $v0
+ call null
+ $t6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1432,11 +1432,11 @@ if187_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t7 = Eq($s7 0 )
- $s7 = $t7
+ $s0 = Eq($t6 0 )
+ null = $s0
$s5 = $s5
- $t7 = [$s5+0]
- $t5 = [$t7+32]
+ $s0 = [$s5+0]
+ null = [$s0+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1447,7 +1447,7 @@ if187_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $t5
+ call null
$t7 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1458,21 +1458,21 @@ if187_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $t5 = Eq($t7 0 )
- $t7 = $t5
- $t5 = Eq(1 $s7 )
- $s7 = Eq(1 $t7 )
- $t7 = Eq($t5 $s7 )
- $s7 = $t7
- if0 $s7 goto :if188_else
+ $s0 = Eq($t7 0 )
+ null = $s0
+ $s0 = Eq(1 null )
+ null = Eq(1 null )
+ null = Eq($s0 null )
+ $s0 = null
+ if0 $s0 goto :if188_else
if188_body:
- $s7 = 1
+ $s0 = 1
goto :if188_end
if188_else:
- $t7 = [$s6+0]
- $t5 = $s4
- $t6 = $s5
- $t7 = [$t7+56]
+ $s0 = [$s6+0]
+ null = $s4
+ null = $s5
+ $s0 = [$s0+56]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1483,10 +1483,10 @@ if188_else:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $t5
- $a2 = $t6
- call $t7
- $s0 = $v0
+ $a1 = null
+ $a2 = null
+ call $s0
+ $t3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1496,13 +1496,13 @@ if188_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s0
+ $s0 = $t3
if188_end:
goto :if187_end
if187_else:
$s0 = [$s6+0]
- $t6 = $s4
- $s4 = $s5
+ null = $s4
+ null = $s5
$s0 = [$s0+56]
local[8] = $t0
local[9] = $t1
@@ -1514,10 +1514,10 @@ if187_else:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $t6
- $a2 = $s4
+ $a1 = null
+ $a2 = null
call $s0
- $s5 = $v0
+ null = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1527,7 +1527,7 @@ if187_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s5
+ $s0 = null
if187_end:
$s2 = 1
$s3 = 0
@@ -1536,8 +1536,8 @@ if165_end:
$s1 = 0
goto :while160_test
while160_end:
- $s1 = $s2
- $v0 = $s1
+ $t3 = $s2
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1617,8 +1617,8 @@ if211_body:
goto :if211_end
if211_else:
$s7 = $s7
- $s1 = [$s7+0]
- $s4 = [$s1+28]
+ $s2 = [$s7+0]
+ $s1 = [$s2+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1629,8 +1629,8 @@ if211_else:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s4
- $s1 = $v0
+ call $s1
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1640,13 +1640,13 @@ if211_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s1
- if0 $s4 goto :if219_else
+ $s1 = $s2
+ if0 $s1 goto :if219_else
if219_body:
- $s4 = [$s5+0]
- $s1 = $s6
- $s3 = $s7
- $s4 = [$s4+60]
+ $s1 = [$s5+0]
+ $s2 = $s6
+ $s4 = $s7
+ $s1 = [$s1+60]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1657,10 +1657,10 @@ if219_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- $a1 = $s1
- $a2 = $s3
- call $s4
- $s0 = $v0
+ $a1 = $s2
+ $a2 = $s4
+ call $s1
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1670,12 +1670,12 @@ if219_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s0
+ $s2 = $s3
goto :if219_end
if219_else:
$s7 = $s7
- $s0 = [$s7+0]
- $s3 = [$s0+20]
+ $s3 = [$s7+0]
+ $s4 = [$s3+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1686,8 +1686,8 @@ if219_else:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s0 = $v0
+ call $s4
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1697,10 +1697,10 @@ if219_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s0
+ $s4 = $s3
$s6 = $s6
- $s0 = [$s6+0]
- $s7 = [$s0+16]
+ $s3 = [$s6+0]
+ $s7 = [$s3+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1712,7 +1712,7 @@ if219_else:
local[16] = $t8
$a0 = $s6
call $s7
- $s0 = $v0
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1722,9 +1722,9 @@ if219_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s0
- $s0 = [$s7+0]
- $s1 = [$s0+20]
+ $s7 = $s3
+ $s3 = [$s7+0]
+ $s2 = [$s3+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1735,8 +1735,8 @@ if219_else:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s1
- $s0 = $v0
+ call $s2
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1746,11 +1746,11 @@ if219_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s0
- $s0 = [$s5+0]
- $s7 = $s3
- $s3 = $s1
- $s0 = [$s0+44]
+ $s2 = $s3
+ $s3 = [$s5+0]
+ $s7 = $s4
+ $s4 = $s2
+ $s3 = [$s3+44]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1762,9 +1762,9 @@ if219_else:
local[16] = $t8
$a0 = $s5
$a1 = $s7
- $a2 = $s3
- call $s0
- $s1 = $v0
+ $a2 = $s4
+ call $s3
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1774,13 +1774,13 @@ if219_else:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s1
- if0 $s3 goto :if237_else
+ $s4 = $s2
+ if0 $s4 goto :if237_else
if237_body:
$s6 = $s6
- $s3 = [$s6+0]
- $s1 = [$s3+8]
- $s3 = [$s5+104]
+ $s4 = [$s6+0]
+ $s2 = [$s4+8]
+ $s4 = [$s5+104]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1791,8 +1791,8 @@ if237_body:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s3
- call $s1
+ $a1 = $s4
+ call $s2
$s7 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1806,7 +1806,7 @@ if237_body:
$s2 = $s7
$s6 = $s6
$s7 = [$s6+0]
- $s3 = [$s7+36]
+ $s4 = [$s7+36]
$s7 = 0
local[8] = $t0
local[9] = $t1
@@ -1819,8 +1819,8 @@ if237_body:
local[16] = $t8
$a0 = $s6
$a1 = $s7
- call $s3
- $s1 = $v0
+ call $s4
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1830,13 +1830,13 @@ if237_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s1
+ $s2 = $s2
goto :if237_end
if237_else:
$s6 = $s6
- $s1 = [$s6+0]
- $s7 = [$s1+4]
- $s1 = [$s5+104]
+ $s2 = [$s6+0]
+ $s7 = [$s2+4]
+ $s2 = [$s5+104]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1847,7 +1847,7 @@ if237_else:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s1
+ $a1 = $s2
call $s7
$s5 = $v0
$t0 = local[8]
@@ -1862,7 +1862,7 @@ if237_else:
$s2 = $s5
$s6 = $s6
$s5 = [$s6+0]
- $s1 = [$s5+40]
+ $s2 = [$s5+40]
$s5 = 0
local[8] = $t0
local[9] = $t1
@@ -1875,7 +1875,7 @@ if237_else:
local[16] = $t8
$a0 = $s6
$a1 = $s5
- call $s1
+ call $s2
$s7 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1915,8 +1915,8 @@ func Tree_RemoveRight [in 0, out 0, local 17]
$s7 = $a2
while259_test:
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+28]
+ $t7 = [$s7+0]
+ $t6 = [$t7+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1927,8 +1927,8 @@ while259_test:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s4 = $v0
+ call $t6
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1938,15 +1938,15 @@ while259_test:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
- if0 $s3 goto :while259_end
+ $t6 = $s1
+ if0 $t6 goto :while259_end
while259_body:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+24]
+ $t6 = [$s7+0]
+ $t7 = [$t6+24]
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+12]
+ $t6 = [$s7+0]
+ $t5 = [$t6+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1957,7 +1957,7 @@ while259_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s2
+ call $t5
$s3 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -1968,9 +1968,9 @@ while259_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s3
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $t5 = $s3
+ $t6 = [$t5+0]
+ $t4 = [$t6+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -1980,9 +1980,9 @@ while259_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s1
- $s3 = $v0
+ $a0 = $t5
+ call $t4
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -1992,7 +1992,7 @@ while259_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
+ $t4 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2003,9 +2003,9 @@ while259_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s1
- call $s4
- $s3 = $v0
+ $a1 = $t4
+ call $t7
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2015,11 +2015,11 @@ while259_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
+ $t4 = $s0
$s6 = $s7
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+12]
+ $t4 = [$s7+0]
+ $t7 = [$t4+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2030,8 +2030,8 @@ while259_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s4
- $s3 = $v0
+ call $t7
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2041,13 +2041,13 @@ while259_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s3
+ $s7 = $s2
goto :while259_test
while259_end:
$s6 = $s6
- $s3 = [$s6+0]
- $s7 = [$s3+4]
- $s3 = [$s5+104]
+ $s0 = [$s6+0]
+ $s1 = [$s0+4]
+ $s0 = [$s5+104]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2058,8 +2058,8 @@ while259_end:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s3
- call $s7
+ $a1 = $s0
+ call $s1
$s5 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -2070,10 +2070,10 @@ while259_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s5
+ $t4 = $s5
$s6 = $s6
$s5 = [$s6+0]
- $s3 = [$s5+40]
+ $s0 = [$s5+40]
$s5 = 0
local[8] = $t0
local[9] = $t1
@@ -2086,8 +2086,8 @@ while259_end:
local[16] = $t8
$a0 = $s6
$a1 = $s5
- call $s3
- $s7 = $v0
+ call $s0
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2097,9 +2097,9 @@ while259_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s7
- $s7 = 1
- $v0 = $s7
+ $t4 = $s1
+ $s1 = 1
+ $v0 = $s1
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2123,8 +2123,8 @@ func Tree_RemoveLeft [in 0, out 0, local 17]
$s7 = $a2
while287_test:
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+32]
+ $t7 = [$s7+0]
+ $t6 = [$t7+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2135,8 +2135,8 @@ while287_test:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s4 = $v0
+ call $t6
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2146,15 +2146,15 @@ while287_test:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
- if0 $s3 goto :while287_end
+ $t6 = $s1
+ if0 $t6 goto :while287_end
while287_body:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+24]
+ $t6 = [$s7+0]
+ $t7 = [$t6+24]
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+16]
+ $t6 = [$s7+0]
+ $t5 = [$t6+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2165,7 +2165,7 @@ while287_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s2
+ call $t5
$s3 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -2176,9 +2176,9 @@ while287_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s3
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $t5 = $s3
+ $t6 = [$t5+0]
+ $t4 = [$t6+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2188,9 +2188,9 @@ while287_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- call $s1
- $s3 = $v0
+ $a0 = $t5
+ call $t4
+ $s4 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2200,7 +2200,7 @@ while287_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
+ $t4 = $s4
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2211,9 +2211,9 @@ while287_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- $a1 = $s1
- call $s4
- $s3 = $v0
+ $a1 = $t4
+ call $t7
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2223,11 +2223,11 @@ while287_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s3
+ $t4 = $s0
$s6 = $s7
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+16]
+ $t4 = [$s7+0]
+ $t7 = [$t4+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2238,8 +2238,8 @@ while287_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s4
- $s3 = $v0
+ call $t7
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2249,13 +2249,13 @@ while287_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s3
+ $s7 = $s2
goto :while287_test
while287_end:
$s6 = $s6
- $s3 = [$s6+0]
- $s7 = [$s3+8]
- $s3 = [$s5+104]
+ $s0 = [$s6+0]
+ $s1 = [$s0+8]
+ $s0 = [$s5+104]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2266,8 +2266,8 @@ while287_end:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s3
- call $s7
+ $a1 = $s0
+ call $s1
$s5 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -2278,10 +2278,10 @@ while287_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s5
+ $t4 = $s5
$s6 = $s6
$s5 = [$s6+0]
- $s3 = [$s5+36]
+ $s0 = [$s5+36]
$s5 = 0
local[8] = $t0
local[9] = $t1
@@ -2294,8 +2294,8 @@ while287_end:
local[16] = $t8
$a0 = $s6
$a1 = $s5
- call $s3
- $s7 = $v0
+ call $s0
+ $s1 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2305,9 +2305,9 @@ while287_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s1 = $s7
- $s7 = 1
- $v0 = $s7
+ $t4 = $s1
+ $s1 = 1
+ $v0 = $s1
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2337,7 +2337,7 @@ while315_test:
while315_body:
$s5 = $s5
$s3 = [$s5+0]
- $s2 = [$s3+20]
+ $t7 = [$s3+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2348,8 +2348,8 @@ while315_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s2
- $s3 = $v0
+ call $t7
+ $s0 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2359,16 +2359,16 @@ while315_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s3
+ $t7 = $s0
$s3 = $s7
- $s1 = $s2
- $s0 = LtS($s3 $s1 )
- $s1 = $s0
- if0 $s1 goto :if320_else
+ $t6 = $t7
+ $t5 = LtS($s3 $t6 )
+ $t6 = $t5
+ if0 $t6 goto :if320_else
if320_body:
$s5 = $s5
- $s1 = [$s5+0]
- $s0 = [$s1+32]
+ $t6 = [$s5+0]
+ $t5 = [$t6+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2379,7 +2379,7 @@ if320_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s0
+ call $t5
$s1 = $v0
$t0 = local[8]
$t1 = local[9]
@@ -2390,12 +2390,12 @@ if320_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s0 = $s1
- if0 $s0 goto :if324_else
+ $t5 = $s1
+ if0 $t5 goto :if324_else
if324_body:
$s5 = $s5
- $s0 = [$s5+0]
- $s1 = [$s0+16]
+ $t5 = [$s5+0]
+ $t6 = [$t5+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2406,8 +2406,8 @@ if324_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s1
- $s0 = $v0
+ call $t6
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2417,22 +2417,22 @@ if324_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s0
+ $s5 = $s2
goto :if324_end
if324_else:
$s6 = 0
if324_end:
goto :if320_end
if320_else:
- $s0 = $s2
- $s2 = $s7
- $s7 = LtS($s0 $s2 )
- $s2 = $s7
- if0 $s2 goto :if331_else
+ $t6 = $t7
+ $t7 = $s7
+ $t5 = LtS($t6 $t7 )
+ $t7 = $t5
+ if0 $t7 goto :if331_else
if331_body:
$s5 = $s5
- $s2 = [$s5+0]
- $s7 = [$s2+28]
+ $t7 = [$s5+0]
+ $t5 = [$t7+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2443,8 +2443,8 @@ if331_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s7
- $s2 = $v0
+ call $t5
+ $t7 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2454,12 +2454,12 @@ if331_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s7 = $s2
- if0 $s7 goto :if335_else
+ $t5 = $t7
+ if0 $t5 goto :if335_else
if335_body:
$s5 = $s5
- $s7 = [$s5+0]
- $s2 = [$s7+12]
+ $t5 = [$s5+0]
+ $t7 = [$t5+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2470,8 +2470,8 @@ if335_body:
local[15] = $t7
local[16] = $t8
$a0 = $s5
- call $s2
- $s7 = $v0
+ call $t7
+ $t5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2481,7 +2481,7 @@ if335_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s7
+ $s5 = $t5
goto :if335_end
if335_else:
$s6 = 0
@@ -2494,8 +2494,8 @@ if331_end:
if320_end:
goto :while315_test
while315_end:
- $s6 = $s4
- $v0 = $s6
+ $s0 = $s4
+ $v0 = $s0
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2646,8 +2646,8 @@ if347_else:
$s3 = 1
if347_end:
$s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+20]
+ $s3 = [$s7+0]
+ $s5 = [$s3+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2658,8 +2658,8 @@ if347_end:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s4
- $s5 = $v0
+ call $s5
+ $s3 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2669,11 +2669,11 @@ if347_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s4 = $s5
- PrintIntS($s4 )
+ $s5 = $s3
+ PrintIntS($s5 )
$s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+28]
+ $s5 = [$s7+0]
+ $s3 = [$s5+28]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2684,8 +2684,8 @@ if347_end:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s5
- $s4 = $v0
+ call $s3
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2695,13 +2695,13 @@ if347_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s5 = $s4
- if0 $s5 goto :if361_else
+ $s3 = $s5
+ if0 $s3 goto :if361_else
if361_body:
- $s5 = [$s6+0]
+ $s3 = [$s6+0]
$s7 = $s7
- $s4 = [$s7+0]
- $s2 = [$s4+12]
+ $s5 = [$s7+0]
+ $s4 = [$s5+12]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2712,8 +2712,8 @@ if361_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s2
- $s4 = $v0
+ call $s4
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2723,8 +2723,8 @@ if361_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s4
- $s5 = [$s5+76]
+ $s4 = $s5
+ $s3 = [$s3+76]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2735,9 +2735,9 @@ if361_body:
local[15] = $t7
local[16] = $t8
$a0 = $s6
- $a1 = $s2
- call $s5
- $s4 = $v0
+ $a1 = $s4
+ call $s3
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2747,13 +2747,13 @@ if361_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s4
+ $s3 = $s5
goto :if361_end
if361_else:
$s3 = 1
if361_end:
- $s3 = 1
- $v0 = $s3
+ $s5 = 1
+ $v0 = $s5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2909,8 +2909,8 @@ if378_else:
$s5 = 0
if378_end:
$s7 = $s7
- $s2 = [$s7+0]
- $s3 = [$s2+32]
+ $s5 = [$s7+0]
+ $s2 = [$s5+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2921,8 +2921,8 @@ if378_end:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s2 = $v0
+ call $s2
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2932,12 +2932,12 @@ if378_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s2
- if0 $s3 goto :if389_else
+ $s2 = $s5
+ if0 $s2 goto :if389_else
if389_body:
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+16]
+ $s2 = [$s7+0]
+ $s5 = [$s2+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2948,8 +2948,8 @@ if389_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s2
- $s3 = $v0
+ call $s5
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -2959,11 +2959,11 @@ if389_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- [$s6+4] = $s3
- $s3 = [$s6+4]
- $s2 = [$s3+0]
- $s7 = [$s2+80]
- $s2 = $s6
+ [$s6+4] = $s2
+ $s2 = [$s6+4]
+ $s5 = [$s2+0]
+ $s7 = [$s5+80]
+ $s5 = $s6
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -2973,8 +2973,8 @@ if389_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s3
- $a1 = $s2
+ $a0 = $s2
+ $a1 = $s5
call $s7
$s6 = $v0
$t0 = local[8]
@@ -2991,8 +2991,8 @@ if389_body:
if389_else:
$s5 = 0
if389_end:
- $s5 = 0
- $v0 = $s5
+ $s6 = 0
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -3097,8 +3097,8 @@ if401_else:
$s5 = 0
if401_end:
$s7 = $s7
- $s2 = [$s7+0]
- $s3 = [$s2+20]
+ $s5 = [$s7+0]
+ $s2 = [$s5+20]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -3109,8 +3109,8 @@ if401_end:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s2 = $v0
+ call $s2
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -3120,11 +3120,11 @@ if401_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s3 = $s2
- PrintIntS($s3 )
+ $s2 = $s5
+ PrintIntS($s2 )
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+32]
+ $s2 = [$s7+0]
+ $s5 = [$s2+32]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -3135,8 +3135,8 @@ if401_end:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s2
- $s3 = $v0
+ call $s5
+ $s2 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -3146,12 +3146,12 @@ if401_end:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- $s2 = $s3
- if0 $s2 goto :if416_else
+ $s5 = $s2
+ if0 $s5 goto :if416_else
if416_body:
$s7 = $s7
- $s2 = [$s7+0]
- $s3 = [$s2+16]
+ $s5 = [$s7+0]
+ $s2 = [$s5+16]
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -3162,8 +3162,8 @@ if416_body:
local[15] = $t7
local[16] = $t8
$a0 = $s7
- call $s3
- $s2 = $v0
+ call $s2
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -3173,11 +3173,11 @@ if416_body:
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- [$s6+8] = $s2
- $s2 = [$s6+8]
- $s3 = [$s2+0]
- $s7 = [$s3+80]
- $s3 = $s6
+ [$s6+8] = $s5
+ $s5 = [$s6+8]
+ $s2 = [$s5+0]
+ $s7 = [$s2+80]
+ $s2 = $s6
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -3187,8 +3187,8 @@ if416_body:
local[14] = $t6
local[15] = $t7
local[16] = $t8
- $a0 = $s2
- $a1 = $s3
+ $a0 = $s5
+ $a1 = $s2
call $s7
$s6 = $v0
$t0 = local[8]
@@ -3205,8 +3205,8 @@ if416_body:
if416_else:
$s5 = 0
if416_end:
- $s5 = 0
- $v0 = $s5
+ $s6 = 0
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/ex41.vaporm b/output/ex41.vaporm
index ad9726c..25cf1b2 100644
--- a/output/ex41.vaporm
+++ b/output/ex41.vaporm
@@ -85,8 +85,8 @@ while10_end:
$s7 = $s3
goto :while5_test
while5_end:
- $s3 = $s6
- $v0 = $s3
+ $s7 = $s6
+ $v0 = $s7
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/ex45.vaporm b/output/ex45.vaporm
index 277d9ed..beeacaa 100644
--- a/output/ex45.vaporm
+++ b/output/ex45.vaporm
@@ -57,7 +57,7 @@ func A_run [in 0, out 0, local 17]
local[5] = $s5
local[6] = $s6
local[7] = $s7
- $s6 = $a0
+ $s7 = $a0
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -69,7 +69,7 @@ func A_run [in 0, out 0, local 17]
local[16] = $t8
$a0 = 10
call :AllocArray
- $s7 = $v0
+ $s6 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -79,11 +79,11 @@ func A_run [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- [$s6+4] = $s7
- $s7 = [$s6+4]
- $s6 = [$s7+0]
- $s7 = $s6
- $v0 = $s7
+ [$s7+4] = $s6
+ $s6 = [$s7+4]
+ $s7 = [$s6+0]
+ $s6 = $s7
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/ex47.vaporm b/output/ex47.vaporm
index f5e4df1..503e646 100644
--- a/output/ex47.vaporm
+++ b/output/ex47.vaporm
@@ -85,8 +85,8 @@ func A_set [in 0, out 0, local 17]
local[5] = $s5
local[6] = $s6
local[7] = $s7
- $s5 = $a0
- $s6 = $a1
+ $s6 = $a0
+ $s7 = $a1
local[8] = $t0
local[9] = $t1
local[10] = $t2
@@ -98,7 +98,7 @@ func A_set [in 0, out 0, local 17]
local[16] = $t8
$a0 = 12
call :AllocArray
- $s7 = $v0
+ $s5 = $v0
$t0 = local[8]
$t1 = local[9]
$t2 = local[10]
@@ -108,15 +108,15 @@ func A_set [in 0, out 0, local 17]
$t6 = local[14]
$t7 = local[15]
$t8 = local[16]
- [$s5+8] = $s7
- $s7 = [$s5+8]
+ [$s6+8] = $s5
+ $s5 = [$s6+8]
$s4 = MulS(5 4 )
$s4 = Add($s4 4 )
- $s4 = Add($s7 $s4 )
- [$s4+0] = $s6
- $s4 = [$s5+8]
- $s5 = [$s4+0]
- $s4 = $s5
+ $s4 = Add($s5 $s4 )
+ [$s4+0] = $s7
+ $s4 = [$s6+8]
+ $s6 = [$s4+0]
+ $s4 = $s6
$v0 = $s4
$s0 = local[0]
$s1 = local[1]
diff --git a/vaporize/LIRDict.java b/vaporize/LIRDict.java
index 4f3d3c1..50c79b0 100644
--- a/vaporize/LIRDict.java
+++ b/vaporize/LIRDict.java
@@ -1,5 +1,6 @@
package vaporize;
+import cs132.vapor.ast.VCodeLabel;
import cs132.vapor.ast.VFunction;
import cs132.vapor.ast.VInstr;
@@ -24,29 +25,29 @@ public class LIRDict {
CFGNode n = cfg.getNode(s);
int line = n.getInstruction().sourcePos.line;
+ // reaching
String info = "L" + line;
- for (String var : n.getReaching())
+ for (String var : n.getDefinitions())
if (!this.contains(var)) {
this.intervals.add(new LIRVar(var, line, line));
- MinimalLogger.info(String.format("Reaching on %s --- New var %s",
- info,
- var));
- } else {
- this.getInterval(var).trySetLastUse(line);
- MinimalLogger.info(String.format("Reaching on %s --- Updating var %s",
- info,
- var));
+ MinimalLogger.info(String.format("Found def of %s at line %s",
+ var,
+ line));
+ }
+ for (String var : n.getReaching())
+ if (n.getLiveness().contains(var)) {
+ if (this.contains(var)) {
+ this.getInterval(var).trySetLastUse(line);
+ MinimalLogger.info(String.format("Var %s still live on %s",
+ var,
+ line));
+ } else {
+ this.intervals.add(new LIRVar(var, line, line));
+ MinimalLogger.info(String.format("Var %s still live on %s",
+ var,
+ line));
+ }
}
- for (String var : n.getLiveness()) {
- if (!this.contains(var))
- MinimalLogger.severe(String.format("%s was used before defined!",
- var));
- MinimalLogger.info(String.format("Liveness on %s --- Updating var %s",
- info,
- var));
- this.getInterval(var).trySetLastUse(line);
- }
-
}
}
@@ -83,4 +84,14 @@ public class LIRDict {
return this.spilled_num;
}
+ private int subOneLine(int i) {
+ int ret = i - 1;
+
+ CFGNode n = cfg.getNode(new Integer(ret));
+ if (n != null && n.getInstruction() instanceof VCodeLabel)
+ --ret;
+
+ return ret;
+ }
+
}
diff --git a/vaporize/LIRVisitor.java b/vaporize/LIRVisitor.java
index da6abb6..821573c 100644
--- a/vaporize/LIRVisitor.java
+++ b/vaporize/LIRVisitor.java
@@ -45,14 +45,39 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti
this.curr = cfg.getNode(f.body[0]);
// cascades downwards --- cfg.addEdges
for (VVarRef.Local l : f.params)
- cfg.addReaching(this.curr, l.ident.toString());
+ cfg.addDefinition(this.curr, l.ident.toString());
for (VInstr s : f.body)
s.accept(cfg, this);
+ int line = this.curr.getInstruction().sourcePos.line;
+ int stop = f.body[0].sourcePos.line;
+ MinimalLogger.info(String.format("Looking for liveness from final node %d to %d",
+ line, stop));
+ for (int i = line; i >= stop; --i) {
+ this.curr = cfg.getNode(new Integer(i));
+ for (CFGNode source : this.curr.getSources()) {
+ for (String var : this.curr.getLiveness()) {
+ if (!source.getDefinitions().contains(var)) {
+ // MinimalLogger.info(String.format("%s: %s added to liveness of %s.",
+ // this.curr,
+ // var,
+ // source));
+ source.liveness.add(var);
+ } else {
+ // MinimalLogger.info(String.format("%s: %s was defined in %s.",
+ // this.curr,
+ // var,
+ // source));
+ }
+ }
+ }
+ }
+
MinimalLogger.info(String.format("Spitting out reaching/liveness..."));
for (CFGNode n : cfg.getNodes())
- MinimalLogger.info(String.format("%s ::: %s ::: %s",
+ MinimalLogger.info(String.format("%s ::: %s ::: %s ::: %s",
n.toString(),
+ n.getDefinitions(),
n.getReaching(),
n.getLiveness()));
@@ -96,11 +121,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
CFGNode curr = cfg.getNode(n);
+ cfg.addDefinition(curr, n.dest.toString());
+ cfg.addReference(curr, ((VMemRef.Global) n.source).base.toString());
+
this.dot_format += cfg.addEdge(this.curr, curr);
this.curr = curr;
-
- cfg.addReaching(curr, n.dest.toString());
- cfg.addLiveness(curr, ((VMemRef.Global) n.source).base.toString());
///////////////////////////////////////////////////////////////
MinimalLogger.info(String.format("<-%s (\"%s\":%s)",
n.getClass().getSimpleName(),
@@ -116,11 +141,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
CFGNode curr = cfg.getNode(n);
+ cfg.addReference(curr, ((VMemRef.Global) n.dest).base.toString());
+ cfg.addReference(curr, n.source.toString());
+
this.dot_format += cfg.addEdge(this.curr, curr);
this.curr = curr;
-
- cfg.addLiveness(curr, ((VMemRef.Global) n.dest).base.toString());
- cfg.addLiveness(curr, n.source.toString());
///////////////////////////////////////////////////////////////
MinimalLogger.info(String.format("<-%s (\"%s\":%s)",
n.getClass().getSimpleName(),
@@ -136,11 +161,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
CFGNode curr = cfg.getNode(n);
+ cfg.addDefinition(curr, n.dest.toString());
+ cfg.addReference(curr, n.source.toString());
+
this.dot_format += cfg.addEdge(this.curr, curr);
this.curr = curr;
-
- cfg.addReaching(curr, n.dest.toString());
- cfg.addLiveness(curr, n.source.toString());
///////////////////////////////////////////////////////////////
MinimalLogger.info(String.format("<-%s (\"%s\":%s)",
n.getClass().getSimpleName(),
@@ -156,11 +181,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
CFGNode curr = cfg.getNode(n);
+ cfg.addReference(curr, n.value.toString());
+
this.dot_format += cfg.addEdge(this.curr, curr);
this.dot_format += cfg.addEdge(curr, cfg.getNode(new Integer(this.kettle
.findLabelIndex(n.target.toString()))));
-
- cfg.addLiveness(curr, n.value.toString());
///////////////////////////////////////////////////////////////
MinimalLogger.info(String.format("<-%s (\"%s\":%s)",
n.getClass().getSimpleName(),
@@ -197,15 +222,15 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
CFGNode curr = cfg.getNode(n);
- this.dot_format += cfg.addEdge(this.curr, curr);
- this.curr = curr;
-
if (n.dest != null)
- cfg.addReaching(curr, n.dest.toString());
+ cfg.addReference(curr, n.dest.toString());
for (VOperand a : n.args) {
- cfg.addLiveness(curr, a.toString());
+ cfg.addReference(curr, a.toString());
}
- cfg.addLiveness(curr, n.addr.toString());
+ cfg.addReference(curr, n.addr.toString());
+
+ this.dot_format += cfg.addEdge(this.curr, curr);
+ this.curr = curr;
///////////////////////////////////////////////////////////////
MinimalLogger.info(String.format("<-%s (\"%s\":%s)",
n.getClass().getSimpleName(),
@@ -221,14 +246,15 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
CFGNode curr = cfg.getNode(n);
- this.dot_format += cfg.addEdge(this.curr, curr);
- this.curr = curr;
if (n.dest != null)
- cfg.addReaching(curr, n.dest.toString());
+ cfg.addDefinition(curr, n.dest.toString());
for (VOperand a : n.args) {
- cfg.addLiveness(curr, a.toString());
+ cfg.addReference(curr, a.toString());
}
+
+ this.dot_format += cfg.addEdge(this.curr, curr);
+ this.curr = curr;
///////////////////////////////////////////////////////////////
MinimalLogger.info(String.format("<-%s (\"%s\":%s)",
n.getClass().getSimpleName(),
@@ -244,11 +270,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
CFGNode curr = cfg.getNode(n);
+ if (n.value != null)
+ cfg.addReference(curr, n.value.toString());
+
this.dot_format += cfg.addEdge(this.curr, curr);
this.curr = curr;
-
- if (n.value != null)
- cfg.addLiveness(curr, n.value.toString());
///////////////////////////////////////////////////////////////
MinimalLogger.info(String.format("<-%s (\"%s\":%s)",
n.getClass().getSimpleName(),
diff --git a/vaporize/VaporizeVisitor.java b/vaporize/VaporizeVisitor.java
index aa462a5..55340f4 100644
--- a/vaporize/VaporizeVisitor.java
+++ b/vaporize/VaporizeVisitor.java
@@ -263,8 +263,7 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
d.getInterval(n.value.toString()).getAssignedRegister() :
n.value.toString();
this.addVaporm(String.format(" $v0 = %s",
- d.getInterval(((VVarRef.Local) n.value).ident)
- .getAssignedRegister()));
+ reg));
}
for (int j = 0; j < this.callee_save.length; ++j) {
this.addVaporm(String.format(" %s = local[%s]",