summaryrefslogtreecommitdiffstats
path: root/stdlib/txr-case.txr
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2023-04-10 15:39:13 -0700
committerKaz Kylheku <kaz@kylheku.com>2023-04-10 15:39:13 -0700
commit75de9fe1552d923a3a7b95ff4cd4966aeaf1de3b (patch)
tree8f4df8cfca2ccf45c88bf60c6e3db3c7bdddff72 /stdlib/txr-case.txr
parentbb92eaa8da819ff3734d8753b1c4dae4ba841c6d (diff)
downloadtxr-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