diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-02-08 06:45:01 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-02-08 06:45:01 -0800 |
commit | 7d34bf0f489009caed4a2958ea8c05adbf692145 (patch) | |
tree | fe9a705a5c556adf0ada454d2aba492515f0cb5b | |
parent | 42e024e6d5c09b8a3aee50160ef825e7362f3bef (diff) | |
download | txr-7d34bf0f489009caed4a2958ea8c05adbf692145.tar.gz txr-7d34bf0f489009caed4a2958ea8c05adbf692145.tar.bz2 txr-7d34bf0f489009caed4a2958ea8c05adbf692145.zip |
compiler: frame optimizations apply to dframe too.
* share/txr/stdlib/optimize.tl (basic-blocks peephole): Use or
pattern to look for dframe as well as frame.
-rw-r--r-- | share/txr/stdlib/optimize.tl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/share/txr/stdlib/optimize.tl b/share/txr/stdlib/optimize.tl index 537d064c..c06c5d22 100644 --- a/share/txr/stdlib/optimize.tl +++ b/share/txr/stdlib/optimize.tl @@ -130,13 +130,13 @@ (((mov @reg0 @reg1) (mov reg1 @reg0) . @rest) ^(,(car insns) ,*rest)) ;; frame reduction - (((frame @lev @size) + (((@(or frame dframe) @lev @size) (@(or call gcall mov) . @(require @(coll (v @vlev @nil)) (none vlev (op eql (ppred lev))))) . @rest) ^(,(cadr insns) ,(car insns) ,*rest)) - (((frame . @nil) + (((@(or frame dframe) . @nil) (if (t @reg) @jlabel) . @rest) (let ((jinsns [bb.hash jlabel])) (match-case jinsns |