summaryrefslogtreecommitdiffstats
path: root/sysif.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-01-30 06:36:39 -0800
committerKaz Kylheku <kaz@kylheku.com>2019-01-30 06:36:39 -0800
commit3330b1593c5d591aecbacfdae5a06ade661d9fd6 (patch)
treefa066df08b1b5f4736236c9cf4ea8796f6946146 /sysif.c
parent79fef71c0f043aa7eba5251fe2a76d33bd4c4359 (diff)
downloadtxr-3330b1593c5d591aecbacfdae5a06ade661d9fd6.tar.gz
txr-3330b1593c5d591aecbacfdae5a06ade661d9fd6.tar.bz2
txr-3330b1593c5d591aecbacfdae5a06ade661d9fd6.zip
caseql: generate better code.
* eval.c (me_case): Replace a code generation pattern of the (if (and x y) z) with the equivalent (and x y z). The motivation behind this is that it effectively coaxes a jump-threading optimization out of our simplistic compiler. The failure cases out of a single *and* all jump past the entire code block, whereas with the cascaded if + and we get a double test of the same failed value threading through two branches.
Diffstat (limited to 'sysif.c')
0 files changed, 0 insertions, 0 deletions