Will tree-ssa be GCC 3.5?

law@redhat.com law@redhat.com
Tue Dec 2 04:35:00 GMT 2003


In message <m31xrnrho5.fsf@gossamer.airs.com>, Ian Lance Taylor writes:
 >law@redhat.com writes:
 >
 >> In message <87oeusnfwp.fsf@egil.codesourcery.com>, "Zack Weinberg" writes:
 >>  >kenner@vlsi1.ultra.nyu.edu (Richard Kenner) writes:
 >>  >
 >>  >> We don't yet know that it will be *replacing* anything.  For the moment
 >,
 >>  >> it'll be adding a new class of optimizations.
 >>  >
 >>  >This strikes me as disingenuous.  The people working on the tree-ssa
 >>  >project have clearly and repeatedly stated their intention to replace
 >>  >several (perhaps most) of the RTL optimizers.  That this has not
 >>  >happened yet merely indicates that the project is not done yet.
 >> More correctly, it is our intention to either replace or significantly
 >> simplify some of the RTL optimizations.  In particular, null pointer
 >> check elimination, CSE, GCSE, jump opts (including jump threading).
 >
 >It seems to me that you still want CSE to handle little stuff like
 >parts of addresses on machines which need to build up addresses by
 >parts (e.g., MIPS), or for that matter parts of constants on machines
 >which need to build constants by parts (e.g., ARM).
Precisely, that's why I said "replace or significantly simplify".  There are
a few things that we're still going to need an RTL based CSE pass for.
For example, lowered 64bit arithmetic on 32bit hosts can expose certain
redundancies, and lowering from trees to RTL can expose certain redundancies
(say for example lowering loads of constants on RISC targets).

CSE is an example of a pass that I want to see significantly simplified.
The RTL null pointer check elimination is a pass which should disappear.

 >Conversely, I would think that tree-ssa might be able to get rid of
 >the RTL loop optimization pass.  On the other hand, then how do you
 >handle prefetch generation?
You actually have a lot more of the information you need to do good
prefetch generation at the tree level -- namely ARRAY_REFs.

And we certainly do want to do a goodly amount of loop optimization on
trees.  Given an unroller on trees plus the existing tree-ssa infrastructure
and you're 80% of the way to doing SLP style autovectorization.

jeff







More information about the Gcc mailing list