summaryrefslogtreecommitdiffstats
path: root/debug.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-02-17 20:39:19 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-02-17 20:39:19 -0800
commit77c74bccd0388596b8f9aa0f08502f171bc63d40 (patch)
tree0e63b316d17ad46c1363637c1c1c552ce762dd00 /debug.h
parentbe7b8caccc28b8e039171cced45a212da74f11dd (diff)
downloadtxr-77c74bccd0388596b8f9aa0f08502f171bc63d40.tar.gz
txr-77c74bccd0388596b8f9aa0f08502f171bc63d40.tar.bz2
txr-77c74bccd0388596b8f9aa0f08502f171bc63d40.zip
compiler: strength reduction of equal.
Here, we look for (equal x y) expressions that can be reduced to (eql x y) or (eq x y) and compiled that way. Also, we look for (if (equal x y) ...) expressions that can be turned into (if (eql x y) ...) or (if (eq x y) ...) which then compile into ifq or ifql instructions. * share/txr/stdlib/compiler.tl (compiler comp-if): Convert tree-case into match case, and then handle the (if (equal ...)) pattern. (comp-fun-form): Add recognition for (equal x y) expressions, and reduce their strength, if possible. (eq-comparable, eql-comparable): New functions.
Diffstat (limited to 'debug.h')
0 files changed, 0 insertions, 0 deletions