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: Michael Matz <matz at suse dot de>
- To: law at redhat dot com
- Cc: Andrew MacLeod <amacleod at redhat dot com>,gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Sat, 31 May 2003 01:24:37 +0200 (CEST)
- Subject: Re: [tree-ssa] Insert on edge comment
Hi,
On Fri, 30 May 2003 law@redhat.com wrote:
> 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'm sure you know. But this has serious implications for any code moving
optimization like PRE. For those being able to split edges is crucial.
I.e. I hope the (obivously) complicated process to implement it is
worthwhile ;-)
Btw. I dislike any implicit knowledge ;) It tends to make things hard.
> 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.
Hmm. Does this mean, that for instance this expression:
a/b*c+f(g,h(i))
is represented as one tree (seen from the top), which magically has three
to five (depending on how * and + are defined) outgoing "edges", which
refer to the following statement resp. the reached exception handler?
Let's say it this way: ugh. Remind me again: why would we want to do
basic block based optimizations on such an IR? I'm not pessimistic yet,
but hiding control flow in this way seems wrong to me, and I would like to
learn the reasons why it isn't.
Ciao,
Michael.