diff options
| author | Alasdair Armstrong | 2018-06-06 20:52:35 +0100 |
|---|---|---|
| committer | Alasdair Armstrong | 2018-06-06 20:52:35 +0100 |
| commit | 9cc101327450f5871749ecd797361f5b254100e5 (patch) | |
| tree | 8469376740047c515ce1ab4e613f316229669585 /language | |
| parent | 11521bfab8ebc89435673e365d0dce0392d63c32 (diff) | |
Factor utility functions for IR into separate file and struct update optimizations.
Move the utility functions for graph generation and pretty printing of
intermediate representation instructions into a separate file,
bytecode_util.ml, by analogy with ast_util.ml.
Add an optimization pass that searches for specific patterns of struct
updates and removes uncessary copying of the structs involved. With
this optimisation pass the time taken for u-boot to run approx
57,000,000 instructions goes down from about 11-12 minutes to 8
minutes (about 120,000 IPS).
Diffstat (limited to 'language')
| -rw-r--r-- | language/bytecode.ott | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/language/bytecode.ott b/language/bytecode.ott index be2bd4a4..704bda83 100644 --- a/language/bytecode.ott +++ b/language/bytecode.ott @@ -105,6 +105,7 @@ clexp :: 'CL_' ::= | id :: :: id | id . string :: :: field | * id :: :: addr + | id -> string :: :: addr_field | current_exception :: :: current_exception | have_exception :: :: have_exception |
