Michael McLoughlin
abd300c0e9
operand: const types
2018-12-26 16:42:39 -08:00
Michael McLoughlin
b3644ec7fc
pass: tweak ordering in liveness analysis
...
Previously we updated the set of live in registers before live out. This
was extremely inefficient, since on each pass through live in depends on
live out.
We also change to processing the instructions in reverse order, which is
more likely to be efficient, although we should replace this with
topological sort order soon.
2018-12-24 12:48:29 -08:00
Michael McLoughlin
6d1424dc66
build: -cpuprofile flag
2018-12-21 17:38:19 -08:00
Michael McLoughlin
1ce7acee1d
examples/sha1: implement full hash and test
2018-12-21 16:15:43 -08:00
Michael McLoughlin
f464082484
examples/sha1: single block
2018-12-21 00:30:59 -08:00
Michael McLoughlin
224cccd2b1
readme giving credit to original authors
2018-12-19 22:46:53 -08:00
Michael McLoughlin
c477e46045
add forking script
2018-12-19 22:32:45 -08:00
Michael McLoughlin
854271d978
examples/stadtx: commit first working example
2018-12-19 22:09:55 -08:00
Michael McLoughlin
48a84b6b13
fix signature size/alignment computation
2018-12-19 13:08:56 -08:00
Michael McLoughlin
33f5561d91
examples/components: a few more cases
2018-12-19 00:16:18 -08:00
Michael McLoughlin
ca5c7e7454
printer: add generated code warnings
2018-12-18 22:57:26 -08:00
Michael McLoughlin
213d65e481
printer: cleaner output
2018-12-18 21:05:05 -08:00
Michael McLoughlin
bc9a2aa46b
gotypes: support struct fields
2018-12-17 23:28:31 -08:00
Michael McLoughlin
7f3efa1eb5
fix nil pointer dereference
2018-12-17 21:20:21 -08:00
Michael McLoughlin
1033aa4f9c
add golang.org/x/tools dependency
2018-12-17 21:13:00 -08:00
Michael McLoughlin
34a3ddefcc
start example/test for components access
2018-12-17 20:52:26 -08:00
Michael McLoughlin
8282c9b17e
fix operand check tests
2018-12-14 22:12:28 -08:00
Michael McLoughlin
c70c642ddb
attempt to make register allocation deterministic
2018-12-13 00:34:44 -08:00
Michael McLoughlin
93b53377ac
add fnv1a example
2018-12-13 00:18:44 -08:00
Michael McLoughlin
b89d211ff4
examples/complex: and bugfixes
2018-12-12 00:02:22 -08:00
Michael McLoughlin
2189d38d1e
examples: add sum example (its not pretty)
2018-12-11 23:02:50 -08:00
Michael McLoughlin
19d1761694
fix couple of tests
2018-12-11 22:35:01 -08:00
Michael McLoughlin
79bdb92163
fix ordering of generate script
2018-12-11 22:31:19 -08:00
Michael McLoughlin
c882e52510
printing: commit some refactors (probably broken)
2018-12-11 00:18:22 -08:00
Michael McLoughlin
4dc909a81e
remove unused struct field
2018-12-08 22:16:09 -08:00
Michael McLoughlin
271670c14c
avogen: make mov generator deterministic
2018-12-08 22:14:30 -08:00
Michael McLoughlin
20525e1437
get the basic add example working
2018-12-08 22:02:02 -08:00
Michael McLoughlin
5431f2edef
support signatures and param load/stores
2018-12-08 21:16:03 -08:00
Michael McLoughlin
69ee0e39cb
parameter loading
2018-12-08 20:14:51 -08:00
Michael McLoughlin
bbbf6399a1
gotypes: saving progress (temporarily broken tests)
2018-12-07 18:37:42 -08:00
Michael McLoughlin
c86ef5ecae
gotypes
2018-12-06 21:58:51 -08:00
Michael McLoughlin
676ec39c51
add Symbol type to operand
2018-12-06 17:26:33 -08:00
Michael McLoughlin
e42eb1fb8c
fix go get command
2018-12-05 00:56:02 -08:00
Michael McLoughlin
ceca3612c6
add go get to bootstrap
2018-12-05 00:53:16 -08:00
Michael McLoughlin
00c50be004
enable some more linters
2018-12-05 00:49:12 -08:00
Michael McLoughlin
fa18d7229f
address some lint
2018-12-05 00:27:42 -08:00
Michael McLoughlin
022cbb7792
pass: first attempt at register allocation
2018-12-05 00:05:57 -08:00
Michael McLoughlin
9376a230cf
refactor to use reg.Set
2018-12-03 22:39:43 -08:00
Michael McLoughlin
faafa00e40
pass: test for liveness
2018-12-03 20:40:43 -08:00
Michael McLoughlin
b52c67f3fb
pass: naive implementation of liveness
2018-12-02 23:59:29 -08:00
Michael McLoughlin
7d4e18f4f4
ast: {Input,Output}Registers()
2018-12-02 22:29:30 -08:00
Michael McLoughlin
59548ee9f6
rename some register types
2018-12-02 21:35:33 -08:00
Michael McLoughlin
96a5c5fe1e
ctors: include implicit inputs/outputs
2018-12-02 21:12:56 -08:00
Michael McLoughlin
82b31fa0da
wip: adding instruction inputs and outputs
2018-12-02 17:57:12 -08:00
Michael McLoughlin
f18271ada5
add reg.Type
2018-12-02 15:15:00 -08:00
Michael McLoughlin
bc7d0fa410
pass: cfg tests
2018-12-02 13:51:03 -08:00
Michael McLoughlin
43575d8b61
start at some basic passes
2018-12-02 13:51:03 -08:00
Michael McLoughlin
0ceb1c55a4
Update README.md
2018-11-30 21:57:14 -08:00
Michael McLoughlin
0582a1884c
travis: remove -v from go test
2018-11-30 21:48:37 -08:00
Michael McLoughlin
7ab57635f6
start a lint script
2018-11-30 21:47:10 -08:00