Done: https://codeberg.org/guile/guile/pulls/305

I’m sorry that it took a while, I have quite a few patches applied on
top of main and first had to pry this one out.

Olivier Dion <[email protected]> writes:

> Can you open a PR on Codeberg?
>
> On Thu, 08 Oct 2026, "Dr. Arne Babenhauserheide" <[email protected]> wrote:
>> Hi,
>>
>> this is another min/max change: inlining logic in cps/types.scm.
>>
>> I did this just because I stumbled over it and when I benchmarked with
>> the r7rs benchmarks, I saw that this brings a 1-2% speedup for cat,
>> gcbench, and quicksort.
>>
>> Best wishes,
>> Arne
>>
>>
>> From b18bc284ed916482f27d89d3123f8c0c28b38a8e Mon Sep 17 00:00:00 2001
>> From: Arne Babenhauserheide <[email protected]>
>> Date: Thu, 8 Oct 2026 21:46:47 +0200
>> Subject: [PATCH] cps: inline min and max three elements deep to reduce
>>  indirect calls
>>
>> * module/language/cps/types.scm (min): inline < three levels deep
>> * module/language/cps/types.scm (max): inline > three levels deep
>> ---
>>  module/language/cps/types.scm | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/module/language/cps/types.scm b/module/language/cps/types.scm
>> index fbe7ae087..88ddf732b 100644
>> --- a/module/language/cps/types.scm
>> +++ b/module/language/cps/types.scm
>> @@ -218,13 +218,13 @@
>>  (define min
>>    (case-lambda
>>      ((a b) (if (< a b) a b))
>> -    ((a b c) (min (min a b) c))
>> -    ((a b c d) (min (min a b) c d))))
>> +    ((a b c) (if (< a b) (if (< b c) a (if (< a c) a c)) (if (< b c) b c)))
>> +    ((a b c d) (min (min a b c) d))))
>>  (define max
>>    (case-lambda
>>      ((a b) (if (> a b) a b))
>> -    ((a b c) (max (max a b) c))
>> -    ((a b c d) (max (max a b) c d))))
>> +    ((a b c) (if (> a b) (if (> b c) a (if (> a c) a c)) (if (> b c) b c)))
>> +    ((a b c d) (max (max a b c) d))))
>>  
>>  
>>  
>> -- 
>> 2.54.0
>>
>> -- 
>> Unpolitisch sein
>> heißt politisch sein,
>> ohne es zu merken.
>> https://www.draketo.de

-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
https://www.draketo.de

Attachment: signature.asc
Description: PGP signature

Reply via email to