Richard Guenther <> writes:
> On Wed, Mar 7, 2012 at 11:11 AM, Richard Sandiford
> <> wrote:
>> Jakub Jelinek <> 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.


Reply via email to