[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] [PATCH] fix #1648 (correctly)
From: |
felix . winkelmann |
Subject: |
Re: [Chicken-hackers] [PATCH] fix #1648 (correctly) |
Date: |
Tue, 01 Oct 2019 15:05:53 +0200 |
> I don't think the -unroll-limit is that useful option to expose for the
> user. The -inline-limit already controls the amount of inlining. I
> couldn't get anything to unroll more than once without having to
> increase the inline-limit, which of course has other implications.
The inline-limit considers the _size_ of a procedure to be inlined.
The unroll-limit specifies the _number_ of times an inlinable procedure
will actually be inlined at the same call site.
I agree that the declaration/option is of limited use, but it's consisten
with the declarations/options we have.
> This is unnecessarily O(n^2) in the number of performed inlines. I think
> we should use a hash-table for inline-history.
>
> I tested with some generated files and the results were:
>
> Case n=100: real 0m1.784s vs. real 0m2.179s (1.2x)
> Case n=200: real 0m7.495s vs. real 0m12.235s (1.6x)
> Case n=300: real 0m17.738s vs. real 0m42.660s (2.4x)
> Case n=400: real 0m34.975s vs. real 2m3.604s (3.5x)
Left as an exercise to you, dear reader. A singly-linked list is
simple and straightforward, I find hash-tables ugly and wasteful
and will wory about scalability when the time arrives.
felix