mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-24 12:20:20 +02:00
((lambda ...) ...) fix
* module/language/tree-il/optimize.scm (peval): If it's a lambda in the operator position, inline without a nested counter, as it's not possible to increase code size.
This commit is contained in:
parent
40be30c974
commit
0353a2d817
2 changed files with 9 additions and 8 deletions
|
@ -855,8 +855,11 @@ it does not handle <fix> and <let-values>, it should be called before
|
|||
;; An error, or effecting arguments.
|
||||
(make-application src (for-value orig-proc)
|
||||
(map for-value orig-args)))
|
||||
((and=> (find-counter key counter) counter-recursive?)
|
||||
;; A recursive call. Process again in tail context.
|
||||
((or (and=> (find-counter key counter) counter-recursive?)
|
||||
(lambda? orig-proc))
|
||||
;; A recursive call, or a lambda in the operator
|
||||
;; position of the source expression. Process again in
|
||||
;; tail context.
|
||||
(loop (make-let src (append req (or opt '()))
|
||||
gensyms
|
||||
(append orig-args
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue