~ chicken-core (chicken-5) 4bc98d31d3cb78ab55d1df923fa8b1c71f7ca1a4


commit 4bc98d31d3cb78ab55d1df923fa8b1c71f7ca1a4
Author:     megane <meganeka@gmail.com>
AuthorDate: Sun Oct 13 16:26:25 2019 +0300
Commit:     megane <meganeka@gmail.com>
CommitDate: Sun Oct 13 18:15:31 2019 +0300

    * optimizer.scm (within-unrolling-limit): Add note about performance + tweak comments

diff --git a/optimizer.scm b/optimizer.scm
index 3e84ce53..7d9d773c 100644
--- a/optimizer.scm
+++ b/optimizer.scm
@@ -150,7 +150,7 @@
 (define simplifications (make-vector 301 '()))
 (define simplified-ops '())
 (define broken-constant-nodes '())
-;; holds a-list mapping inlined fid's to inline-target-fid for catching runaway
+;; Holds a-list mapping inlined fid's to inline-target-fid for catching runaway
 ;; unrolling:
 (define inline-history '())
 
@@ -419,7 +419,7 @@
                                                    (let ((n2 (inline-lambda-bindings
                                                                 llist args (first (node-subexpressions lval))
                                                                 #t db cfk)))
-                                                     (set! inline-history 
+                                                     (set! inline-history
                                                        (alist-cons ifid (car fids) inline-history))
                                                      (touch)
                                                      (walk n2 fids gae)))))
@@ -578,8 +578,11 @@
 
 
 ;; Check whether inlined procedure has already been inlined in the
-;; same target procedure and count occurrences. If the number of 
-;; inlinings exceed the unroll-limit
+;; same target procedure and count occurrences.
+;;
+;; Note: This check takes O(n) time, where n is the total number of
+;; performed inlines. This can be optimized to O(1) if high number of
+;; inlines starts to slow down the compilation.
 
 (define (within-unrolling-limit fid tfid max-unrolls)
   (let ((p (cons fid tfid)))
Trap