This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] reaching def. question
- From: law at redhat dot com
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: Devang Patel <dpatel at apple dot com>, "gcc at gcc dot gnu dot org list" <gcc at gcc dot gnu dot org>
- Date: Tue, 16 Mar 2004 20:30:01 -0700
- Subject: Re: [tree-ssa] reaching def. question
- Reply-to: law at redhat dot com
In message <1079483792.3173.491.camel@localhost.localdomain>, Diego Novillo wri
tes:
>On Tue, 2004-03-16 at 19:27, law@redhat.com wrote:
>
>> Which is not a safe thing to do if you've done things like copy propagation
>> since you can have overlapping lifetimes.
>>
>We do this all the time. Passes just mark the variables they want to be
>renamed and the SSA renamer is run as a cleanup.
They do this for newly exposed variables and possibly virtuals. They do
not do this for real variables which have already been rewritten. Re-rewriting
an existing variable is a non-trivial exercise.
>> You also have to be damn careful about marking something to be rewritten
>> which is used in a mixed PHI node. ie
>>
>> a_3 = PHI (a_2, b_1)
>>
>> Marking just a or b to be written is a recipe for disaster.
>>
>More context, with concrete examples, please. Are you talking about
>copyprop *while* doing if-conversion?
No, I'm talking about cases where it is not safe to simply drop version
numbers, then rewrite the variables into SSA form again.
jeff