~ chicken-core (chicken-5) d8727f4a9bdfded30813a5a433b57eddf60c068f
commit d8727f4a9bdfded30813a5a433b57eddf60c068f Author: megane <meganeka@gmail.com> AuthorDate: Mon Sep 16 12:04:49 2019 +0300 Commit: Peter Bex <peter@more-magic.net> CommitDate: Tue Sep 17 18:46:58 2019 +0200 Revert half of "Add some optimizer simplification rules" This causes uri-generic to fail to compile in similar way #1648 does. Signed-off-by: Peter Bex <peter@more-magic.net> diff --git a/optimizer.scm b/optimizer.scm index fc2d3165..bd163710 100644 --- a/optimizer.scm +++ b/optimizer.scm @@ -830,38 +830,6 @@ args1) nargs) #t)) - (else (loop (cdr args) - (cons (car args) nargs) - ok))))))) - - ;; (let ((<var1> (##core#inline <op> ...))) - ;; (<var2> ... <var1> ...)) - ;; -> (<var2> ... (##core#inline <op> ...) ...) - ;; ...)) - ;; - <var1> is used only once. - `((let (var) (##core#inline (op) . args1) - (##core#call p . args2)) - (var op args1 p args2) - ,(lambda (db may-rewrite var op args1 p args2) - (and may-rewrite ; give other optimizations a chance first - (= 1 (length (db-get-list db var 'references))) - (let loop ((args args2) (nargs '()) (ok #f)) - (cond ((null? args) - (and ok - (make-node - '##core#call p - (reverse nargs)))) - ((and (eq? '##core#variable - (node-class (car args))) - (eq? var - (car (node-parameters (car args))))) - (loop (cdr args) - (cons (make-node - '##core#inline - (list op) - args1) - nargs) - #t)) (else (loop (cdr args) (cons (car args) nargs) ok))))))))Trap