summaryrefslogtreecommitdiffstats
path: root/linenoise/LICENSE
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-09-29 22:46:01 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-09-29 22:46:01 -0700
commit68f856fc1fe2f662e3771bec32fb447304c56818 (patch)
tree010d45e223c62a54568f01392da7ef7042d7d7c8 /linenoise/LICENSE
parentb9398943c06b8d0503f71eda56c59dcd36e826e2 (diff)
downloadtxr-68f856fc1fe2f662e3771bec32fb447304c56818.tar.gz
txr-68f856fc1fe2f662e3771bec32fb447304c56818.tar.bz2
txr-68f856fc1fe2f662e3771bec32fb447304c56818.zip
compiler: remove impossible cases in jump threading.
* stdlib/optimize.tl (basic-blocks thread-jumps-block): There can't be any instructions in a basic block after an if or ifq, so in these cases, jrest is always nil. Let's ignore that nil efficiently with @nil, and get rid of the cut-block branches of the code. There is a similar case in peephole-block, but the target of the jump is an (end ...) which doesn't necessarily end a basic block. I temporarily put in an (assert (null jrest)), and, surprisingly, it never went off during a rebuild of the library or running of the test case. Still, only a jend ends a basic block; it would not be correct to simplify it like these two cases in thread-jumps-block.
Diffstat (limited to 'linenoise/LICENSE')
0 files changed, 0 insertions, 0 deletions