summaryrefslogtreecommitdiff
path: root/language
diff options
context:
space:
mode:
authorAlasdair Armstrong2018-06-06 20:52:35 +0100
committerAlasdair Armstrong2018-06-06 20:52:35 +0100
commit9cc101327450f5871749ecd797361f5b254100e5 (patch)
tree8469376740047c515ce1ab4e613f316229669585 /language
parent11521bfab8ebc89435673e365d0dce0392d63c32 (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.ott1
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