[committed] PR 52515: Missing GTY markers

Richard Sandiford rdsandiford@googlemail.com
Wed Mar 7 10:52:00 GMT 2012


Richard Guenther <richard.guenther@gmail.com> writes:
> On Wed, Mar 7, 2012 at 11:11 AM, Richard Sandiford
> <rdsandiford@googlemail.com> wrote:
>> Jakub Jelinek <jakub@redhat.com> writes:
>>> On Wed, Mar 07, 2012 at 09:52:51AM +0000, Richard Sandiford wrote:
>>>> This patch restores x86_64-linux-gnu bootstrap after my patch for 52372.
>>>> Applied as obvious.
>>>>
>>>> Sorry for the breakage.
>>>
>>> Was it really necessary to move these out of the global rtx array?
>>> Now you completely unnecessarily have 4 new GTY roots with all the overhead
>>> it has.  Wouldn't just moving their initialization elsewhere be sufficient?
>>
>> It had to be outside the "global" array, because that's a per-target thing.
>> E.g. MIPS16 and non-MIPS16 have separate target_rtl structures, but ought
>> to have the same pc_rtx (just as they ought to have the same const0_rtx, etc.)
>>
>> I hadn't realised that the overhead of 4 roots was much greater than the
>> overhead of one root pointing to a 4-element array.  We could have a new
>> 4-element array if that's a problem.
>
> Why can't you put the same RTXen in the per-target rtl structures?

But where does it stop?  Do we move const_tiny_rtx to the target
structure too?

Logically, the target structure should be for target-specific rtl.
Target-independent rtl like constants, (cc0), (pc), etc., should be
shared between targets.  It seems a shame if GC inefficiencies
force us to use a different scheme.

Richard



More information about the Gcc-patches mailing list