diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-02-17 20:39:19 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-02-17 20:39:19 -0800 |
commit | 77c74bccd0388596b8f9aa0f08502f171bc63d40 (patch) | |
tree | 0e63b316d17ad46c1363637c1c1c552ce762dd00 /debug.h | |
parent | be7b8caccc28b8e039171cced45a212da74f11dd (diff) | |
download | txr-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