This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: rtx_equal_function_value_matters
- To: "David S. Miller" <davem at dm dot cobaltmicro dot com>
- Subject: Re: rtx_equal_function_value_matters
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Tue, 24 Nov 1998 11:04:53 -0700
- cc: jj at sunsite dot ms dot mff dot cuni dot cz, egcs at cygnus dot com, rth at cygnus dot com, crux at pool dot informatik dot rwth-aachen dot de
- Reply-To: law at cygnus dot com
In message <199811191934.LAA29587@dm.cobaltmicro.com>you write:
> From: Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
> Date: Thu, 19 Nov 1998 19:58:18 +0100 (CET)
>
> [ Some discussion has been going on about recent sparc64
> failures due to one of Bernd's regclass() changes which
> introduces calls there to gen_move expanders which were
> never being called before. ]
Yea. It's something that needs more thought. There is definitely a window
where bad things can happen, though that window may actually be exposing
bogon code in ports. We'll have to look at each case carefully.
> Ok, this helped so that I can now compile kernel with egcs-current
> and boot it. It works mostly, but something is broken in networking
> (e.g. ping does not work very well). I'll be investigating more.
>
> I thought about this problem some more, and I think it is bogus that
> local alloc etc. is blowing up. Local alloc is blowing up because
> regclass() is now generating new pseudos and nobody between regclass()
> and local alloc resize the reg_info varray.
When/where/how are we generating new pseudos via regclass? There's nothing
that says we can't create new ones during the first regclass pass. Though it
is definitely not valid to create them during the second regclass pass.
Seems to me that we ought to have a global variable that indicates the
exact moment after which we are not allowed to create new pseudos.
gen_reg_rtx uses (reload_in_progress || reload_completed), but that's not the
correct test since it is incorrect to create any new pseudos after the first
life analysis pass has run.
I worry that other code makes the same approximation. I know the PA port does.
jeff