chicken-hackers
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]