This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: Merge the GUPC branch into the GCC 6.0 trunk


On December 5, 2015 11:57:27 PM GMT+01:00, Gary Funck <gary@intrepid.com> wrote:
>On 12/02/15 10:40:50, Richard Biener wrote:
>> On Tue, 1 Dec 2015, Gary Funck wrote:
>> > The main change recommended to reduce tree space was moving the
>> > "layout factor" (blocking factor) out of the tree node, and using
>> > only two bits there, one bit for a relatively common case of 0,
>> > and the other for > 1.  It was suggested that we use a hash
>> > table to map tree nodes to layout qualifiers for the case they
>> > are > 1.  This necessitated using a garbage collected tree map,
>> > which unfortunately meant that tree nodes needed special garbage
>> > collection logic.
>> 
>> I still don't see why it needs special garbage collection logic.
>> We have many tree -> X maps that just get away without.
>> [...]
>> As said, I don't see why you need a special GC collection logic
>> at all.  Please explain.
>
>The problem we ran into is that we had a tree map which
>mapped a tree node to its UPC layout qualifier, which
>is an integral constant (CST).  Tree nodes for CST's
>are made unique by hashing them into an integer->tree map.
>What happened is that the GC would free up entries in the
>CST table that were being used by the layout qualifier map.
>
>It seems that the new tree map logic fixes this problem
>(as you've noted).  I backed out the custom GC logic and
>re-ran a large test that extensively exercises the use case
>that triggers the issue -- works like a charm.

That's good news!

Richard.

>thanks,
>- Gary



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]