[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] [PATCH] Disable inlining for functions using forei
From: |
Evan Hanson |
Subject: |
Re: [Chicken-hackers] [PATCH] Disable inlining for functions using foreign stubs |
Date: |
Thu, 27 Jun 2019 10:59:49 +1200 |
Hi megane,
Thanks, this seems like a good fix for now.
On 2019-06-23 17:29, megane wrote:
> diff --git a/support.scm b/support.scm
> index f412627d..90635761 100644
> --- a/support.scm
> +++ b/support.scm
> @@ -769,11 +776,11 @@
> ((assq 'inlinable plist))
> (lparams (node-parameters (cdr val)))
> ((not (db-get db sym 'hidden-refs)))
> - ((case (variable-mark sym '##compiler#inline)
> - ((yes) #t)
> - ((no) #f)
> - (else
> - (< (fourth lparams) inline-limit) ) ) ) )
> + ((not (eq? 'no (variable-mark sym '##compiler#inline))))
> + ((< (fourth lparams) inline-limit))
> + ;; ;; See #1440
> + ((not (uses-foreign-stubs? (cdr val))))
> + )
> (set! lst (cons sym lst))
> (set! out (cons (list sym (node->sexpr (cdr val))) out)))))
> db)
ISTM this changes the inlining logic slightly in that symbols marked
with '##compiler#inline => 'yes will now only be inlined if they're
under the inline-limit. Previously, they would always be inlined. Is
that right, and is the change intentional?
Evan