This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Insert on edge comment
- From: law at redhat dot com
- To: Michael Matz <matz at suse dot de>
- Cc: Andrew MacLeod <amacleod at redhat dot com>, gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Fri, 30 May 2003 17:04:24 -0600
- Subject: Re: [tree-ssa] Insert on edge comment
- Reply-to: law at redhat dot com
In message <Pine.LNX.4.44.0305310041130.27582-100000@wotan.suse.de>, Michael Ma
tz writes:
>Hi,
>
>On 30 May 2003, Andrew MacLeod wrote:
>
>> edge feeding the phi will have to be updated. My new switch edge
>> manipulation will be a real ugly one to update.. brrr.
>>
>> There may be other structures which need to be fixed, etc.
>
>Forgive me my ignorance (I never looked at tree-ssa carefully), but why is
>edge splitting in your infrastructure so hard? It's a totally trivial
>operation for the usual IRs. If this doesn't hold for tree-ssa it just
>doesn't sound quite "right". Could you explain in simple words? ;-)
I haven't thought much about node splitting within the tree-ssa infrastructure,
but it would seem to me the largest problem is dealing with the nesting
control structures and keeping them consistent.
ie, in RTL you just have this linear stream of code, which contains
insns, call_insns, jump_insns & labels. All you have to do is insert
the new code, redirect the jumps and fixup the representation at the
CFG level.
In tree-ssa you have to keep the control nesting stuff correct in addition
to inserting the new code and redirecting the jumps (and the jumps may be
implicit in the control structures rather than explicit in the IR).
I don't think anyone is saying it's impossible, it just has more complications
than doing splitting on a linear form such as RTL.
jeff