From 2d4a5f0f440945b46ce3832b54556b4bf62d5603 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 29 Oct 2018 18:51:47 -0400 Subject: [PATCH] WIP - sequencing expressions --- scheme/cyclone/cps-optimizations.sld | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scheme/cyclone/cps-optimizations.sld b/scheme/cyclone/cps-optimizations.sld index 0d7f4528..87ad180d 100644 --- a/scheme/cyclone/cps-optimizations.sld +++ b/scheme/cyclone/cps-optimizations.sld @@ -1082,6 +1082,20 @@ ;; Could not inline (map (lambda (e) (opt:inline-prims e scope-sym refs)) exp))) )) ;; + ;; Lambda with a parameter that is never used; sequence code instead to avoid lambda + ((and (ast:lambda? (car exp)) + (every + (lambda (param) + (with-var param (lambda (var) + (null? (adbv:ref-by var))))) + (ast:lambda-formals->list (car exp))) + ) + (opt:inline-prims + `(Cyc-seq + ,@(cdr exp) + ,(ast:lambda-body (car exp))) + scope-sym + refs)) (else (map (lambda (e) (opt:inline-prims e scope-sym refs)) exp)))) (else