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: Andrew MacLeod <amacleod at redhat dot com>
- Cc: "Vladimir N. Makarov" <vmakarov at redhat dot com>, Michael Matz <matz at suse dot de>, gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Fri, 30 May 2003 17:56:27 -0600
- Subject: Re: [tree-ssa] Insert on edge comment
- Reply-to: law at redhat dot com
In message <1054337469.10801.304.camel@p4>, Andrew MacLeod writes:
>On Fri, 2003-05-30 at 19:13, law@redhat.com wrote:
>> In message <3ED7E4C7.69416EBC@redhat.com>, "Vladimir N. Makarov" writes:
>> >I am ignorant too (never looked at ssa-tree branch). As I understand the
>> >problem is in phi nodes which are based on dominator frontier analysis.
>> >Insertion of new BB is simple for general IR but for SSA it can significa
>ntly
>> >change dominator frontiers for many blocks and as consequence phi-nodes i
>n
>> >the dominator frontiers. So updating phi-nodes is not a trivial task.
>> That's certainly true as well. If you look at how we do this at the
>> RTL level, you'll find that we don't split edges while in SSA form.
>> Instead we queue things (such as edge insertions) and split the edge
>> after we no longer need dominance info and PHI nodes.
>>
>
>PRE will probably want to insert things on edge and commit them before
>we are done with PHI nodes :-) I suspect I'll need to add PHI node
>updating as a flag to the commit routine.
Yea. I haven't really thought about how hard the incremental update
will be.
The only nice property about PRE (at least those that I've worked on) is
that the stuff you're inserting on edges is straight-line code with no
control flow changes. So the class of updates you have to worry about
is at least limited somewhat.
jeff