Update documentation
This commit is contained in:
parent
d5ff090be6
commit
e75a0a085d
|
@ -16,6 +16,7 @@ Gir supports following optimizations:
|
||||||
* Turn runs of +- or <> into one command
|
* Turn runs of +- or <> into one command
|
||||||
* Turn [-] or [+] into one command
|
* Turn [-] or [+] into one command
|
||||||
* Add offsets to commands that modify tape, to reduce moving tape head
|
* Add offsets to commands that modify tape, to reduce moving tape head
|
||||||
|
* Turn multiply loops into one command
|
||||||
|
|
||||||
TODO
|
TODO
|
||||||
----
|
----
|
||||||
|
|
6
ir.md
6
ir.md
|
@ -95,6 +95,12 @@ property | value
|
||||||
type | `clear`
|
type | `clear`
|
||||||
offset | The location of the cell relative to current tape position
|
offset | The location of the cell relative to current tape position
|
||||||
|
|
||||||
|
### multiply
|
||||||
|
property | value
|
||||||
|
---------|------
|
||||||
|
type | `multiply`
|
||||||
|
changes | Map of offsets to the number that should be added to those cells multiplies by the current cell
|
||||||
|
|
||||||
|
|
||||||
Flattened
|
Flattened
|
||||||
---------
|
---------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Gir has four optimization passes.
|
Gir has five optimization passes.
|
||||||
|
|
||||||
joinAdjacentOps
|
joinAdjacentOps
|
||||||
---------------
|
---------------
|
||||||
|
@ -39,6 +39,16 @@ current tape head location the operations are performed. It also adds an
|
||||||
body ends at the same cell where it began, which is useful for performing
|
body ends at the same cell where it began, which is useful for performing
|
||||||
further optimizations.
|
further optimizations.
|
||||||
|
|
||||||
|
transformMultiplyLoops
|
||||||
|
----------------------
|
||||||
|
* *consumed*: commands with offsets
|
||||||
|
* *unknown commands*: passed through unmodified
|
||||||
|
* *acts on*: balanced `loop`s that only have adds and where adds at offset 0 are together 1 or -1
|
||||||
|
* *other known commands*: `loop` (recurses)
|
||||||
|
|
||||||
|
`transformMultiplyLoops` changes loops of the form `[>+>++<<-]` into a
|
||||||
|
single `multiply` command.
|
||||||
|
|
||||||
flattenLoops
|
flattenLoops
|
||||||
------------
|
------------
|
||||||
* *consumes*: commands with offsets
|
* *consumes*: commands with offsets
|
||||||
|
|
Loading…
Reference in New Issue