diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2023-04-10 15:39:13 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2023-04-10 15:39:13 -0700 |
commit | 75de9fe1552d923a3a7b95ff4cd4966aeaf1de3b (patch) | |
tree | 8f4df8cfca2ccf45c88bf60c6e3db3c7bdddff72 /stdlib/txr-case.txr | |
parent | bb92eaa8da819ff3734d8753b1c4dae4ba841c6d (diff) | |
download | txr-75de9fe1552d923a3a7b95ff4cd4966aeaf1de3b.tar.gz txr-75de9fe1552d923a3a7b95ff4cd4966aeaf1de3b.tar.bz2 txr-75de9fe1552d923a3a7b95ff4cd4966aeaf1de3b.zip |
compiler: streamline live-info object creation.
* stdlib/optimize.tl (basic-blocks local-liveness): When
processing a pure def, we don't copy the live-info
unconditionally, which is waseteful since if the destination
register is a t-reg, we will invoke (new live-info) to
make yet another live info. Instead, let's destructively
mutate the incoming live info from the instruction below,
and return a copy that is made before that is done.
In the def-ref case, the local copy is entirely superfluous,
because in all cases we return a new object.
We also eliminate redundant (set [bb.li-hash insn] li)
evaluations.
Diffstat (limited to 'stdlib/txr-case.txr')
0 files changed, 0 insertions, 0 deletions