~ chicken-core (chicken-5) 6f9046549ad5c822175dde9ce0ff0f1318796b9f
commit 6f9046549ad5c822175dde9ce0ff0f1318796b9f Author: felix <bunny351@gmail.com> AuthorDate: Mon Jun 7 15:30:06 2010 +0200 Commit: felix <bunny351@gmail.com> CommitDate: Mon Jun 7 15:30:06 2010 +0200 global inlining of externally defined procedures ignores inline-limit diff --git a/optimizer.scm b/optimizer.scm index 5d287621..4e52ebd2 100644 --- a/optimizer.scm +++ b/optimizer.scm @@ -309,7 +309,8 @@ (decompose-lambda-list llist (lambda (vars argc rest) - (let ([ifid (first lparams)]) + (let ((ifid (first lparams)) + (external (node? (variable-mark var '##compiler#inline-global)))) (cond [(and inline-locally (test var 'inlinable) (not (test ifid 'inline-target)) ; inlinable procedure has changed @@ -317,10 +318,10 @@ ((yes) #t) ((no) #f) (else - (< (fourth lparams) inline-max-size) ) )) + (or external (< (fourth lparams) inline-max-size))))) (debugging 'i - (if (node? (variable-mark var '##compiler#inline-global)) + (if external "global inlining" "inlining") var ifid (fourth lparams))Trap