Mercurial > repos > rhope
annotate testc.rhope @ 138:1411de6050e1
First stab at transaction data structures, needs work
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 16 Nov 2010 21:53:18 -0500 |
parents | 90c20dc3f4e5 |
children |
rev | line source |
---|---|
14
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
1 Import cbackend.rhope |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
2 |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
3 Main[] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
4 { |
19
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
18
diff
changeset
|
5 prog <- C Program[] |
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
18
diff
changeset
|
6 base <- [[[[[[[prog]Create Function["Fib",("n"),("out"),""] |
14
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
7 ]Allocate Var["work1", "Any Type"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
8 ]Allocate Var["work2", "Any Type"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
9 ]Null["out"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
10 ]Method Call["<", [[()]Append[AddRef["n"]]]Append[AddRef[Constant["const_2"]]]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
11 ]Move[Result[0], "work1"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
12 ]Method Call["If", [()]Append["work1"]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
13 {Print["base done"] } |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
14 |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
15 stream1 <- [[[base]Instruction Stream |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
16 ]Release[Result[0]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
17 ]Move[AddRef[Constant["const_1"]], "out"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
18 {Print["stream1 done"]} |
18
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
19 |
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
20 stream3 <- [[[base]Instruction Stream |
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
21 ]Release["n"] |
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
22 ]Tail Method Call["+", ("work1","work2")] |
14
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
23 |
18
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
24 stream2 <- [[[[[[[[[[[base]Instruction Stream |
14
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
25 ]Release[Result[0]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
26 ]Method Call["-", [[()]Append[AddRef["n"]]]Append[AddRef[Constant["const_1"]]]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
27 ]Move[Result[0], "work1"] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
28 ]Method Call["-", [[()]Append[AddRef["n"]]]Append[AddRef[Constant["const_2"]]]] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
29 ]Move[Result[0], "work2"] |
18
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
30 ]Call["Fib", ("work1")] |
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
31 ]Move[Result[0], "work1"] |
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
32 ]Call["Fib", ("work2")] |
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
33 ]Move[Result[0], "work2"] |
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
34 ]Do If[NotCond["out"], stream3] |
14
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
35 {Print["stream2 done"]} |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
36 |
18
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
37 func <- [[[base |
14
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
38 ]Do If[Result[0], stream1] |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
39 ]Do If[Result[1], stream2] |
18
ea991f95ae1f
C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
40 ]Release["n"] |
14
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
41 {Print["func done"] } |
19
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
18
diff
changeset
|
42 |
90c20dc3f4e5
Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents:
18
diff
changeset
|
43 Print[[[prog]Store Function[func]]Text] |
14
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
44 |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
45 } |
69dfca29565f
C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
46 |