Minor optimizer cleanup.

original commit: 8baccb2af51538ad1e8d99fefe981a968b1dbbf8
This commit is contained in:
Eric Dobson 2013-05-29 22:07:34 -07:00
parent 7030be8535
commit 09e2e75f06

View File

@ -17,6 +17,11 @@
(define-syntax-class opt-expr
#:commit
#:literal-sets (kernel-literals)
#:attributes (opt)
(pattern opt:expr
#:when (or (ignore-property #'opt)
(ignore-some-property #'opt)
(with-handlers-property #'opt)))
;; can't optimize the body of this code because it isn't typechecked
(pattern ((~and op (~literal let-values))
@ -86,18 +91,7 @@
#:with opt #'other))
(define (optimize-top stx)
(parameterize
([optimize
(syntax-parser
[e:expr
#:when (and (not (ignore-property #'e))
(not (ignore-some-property #'e))
(not (with-handlers-property #'e))
#;
(not (kw-lambda-property #'e)))
#:with e*:opt-expr #'e
#'e*.opt]
[e:expr #'e])])
(parameterize ([optimize (syntax-parser [e:opt-expr #'e.opt])])
(let ((result ((optimize) stx)))
(when *show-optimized-code*
(pretty-print (syntax->datum result)))