This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFC: Merge the GUPC branch into the GCC 6.0 trunk
- From: Richard Biener <rguenther at suse dot de>
- To: Gary Funck <gary at intrepid dot com>
- Cc: Gcc Patches <gcc-patches at gcc dot gnu dot org>,Richard Henderson <rth at redhat dot com>,Meador Inge <meadori at codesourcery dot com>,Jakub Jelinek <jakub at redhat dot com>,Joseph Myers <joseph at codesourcery dot com>,Nenad Vukicevic <nenad at intrepid dot com>
- Date: Sun, 06 Dec 2015 08:57:56 +0100
- Subject: Re: RFC: Merge the GUPC branch into the GCC 6.0 trunk
- Authentication-results: sourceware.org; auth=none
- References: <20151201053129 dot GA29501 at intrepid dot com> <alpine dot LSU dot 2 dot 11 dot 1512011207240 dot 4884 at t29 dot fhfr dot qr> <20151201163407 dot GA30434 at intrepid dot com> <alpine dot LSU dot 2 dot 11 dot 1512021026070 dot 4884 at t29 dot fhfr dot qr> <20151205225727 dot GS2094 at intrepid dot com>
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