[PATCH] Remove static marker for range in alloca pass.
Andrew MacLeod
amacleod@redhat.com
Mon Oct 4 20:57:47 GMT 2021
On 10/4/21 4:15 AM, Richard Biener via Gcc-patches wrote:
> On Mon, Oct 4, 2021 at 8:55 AM Aldy Hernandez via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
>> The m_ranges[] field in int_range<N> are trees, so they live in GC
>> space. Since invalid_range is static, it must be marked with GTY
>> magic. However, calculating invalid_range is not particularly slow,
>> or on a critical path, so we can just put it in local scope and
>> recalculate every time.
>>
>> Tested on x86-64 Linux.
>>
>> Since this is more of a GC thing than a range thing, I'd like a nod from
>> a global reviewer.
>>
>> OK?
> OK, but can we somehow make int_range<>::intersect work
> with non-tree as well? That is, can we somehow make this
> operation w/o constructing temporary trees?
>
> Thanks,
> Richard.
Yeah, I'll shortly provide an intersect which takes 2 wide_ints, along
with some other performance improvements.
It can be more efficient since the general case has to build into a
temporary range, and if its single pair, we can go directly into the
original range, and possible even avoid ever creating a new tree.
Andrew
More information about the Gcc-patches
mailing list