diff options
| author | Alasdair Armstrong | 2018-11-23 17:55:54 +0000 |
|---|---|---|
| committer | Alasdair Armstrong | 2018-11-23 18:27:31 +0000 |
| commit | ea177d95766789b0500317f12fe0939d1508e19c (patch) | |
| tree | 094ce6f42f23c8a526c8d75cf777d2eb400f0a8d /src/constant_fold.ml | |
| parent | 01a6e9b8ad00728fdbf12a76cda24144a75ec552 (diff) | |
C backend improvements
- Propagate types more accurately to improve optimization on ANF
representation.
- Add a generic optimization pass to remove redundant variables that
simply alias other variables.
- Modify Sail interactive mode, so it can compile a specification with
the :compile command, view generated intermediate representation via
the :ir <function> command, and step-through the IR with :exec <exp>
(although this is very incomplete)
- Introduce a third bitvector representation, between fast
fixed-precision bitvectors, and variable length large
bitvectors. The bitvector types are now from most efficient to least
* CT_fbits for fixed precision, 64-bit or less bitvectors
* CT_sbits for 64-bit or less, variable length bitvectors
* CT_lbits for arbitrary variable length bitvectors
- Support for generating C code using CT_sbits is currently
incomplete, it just exists in the intermediate representation right
now.
- Include ctyp in AV_C_fragment, so we don't have to recompute it
Diffstat (limited to 'src/constant_fold.ml')
| -rw-r--r-- | src/constant_fold.ml | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/constant_fold.ml b/src/constant_fold.ml index 407bd69a..f22b48de 100644 --- a/src/constant_fold.ml +++ b/src/constant_fold.ml @@ -100,6 +100,7 @@ let safe_primops = "prerr_string"; "read_ram"; "write_ram"; + "get_time_ns"; "Elf_loader.elf_entry"; "Elf_loader.elf_tohost" ] |
