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

_______________________________________________
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to