This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Predictive commoning
Hello,
> >3) For predictive commoning, it is essential that the life ranges of
> > the temporary ssa names it creates do not start to overlap (since
> > that would increase the number of registers that are necessary, and
> > prevent us from coalescing the ssa names that correspond to one
> > temporary, thus forcing us to insert moves between the temporary
> > variables). Unfortunately, even on the trivial examples the patch
> > adds to the testsuite, the optimizers change the life ranges of the
> > temporaries, thus spoiling the code. To avoid this, we set
> > SSA_NAME_OCCURS_IN_ABNORMAL_PHI for the temporary ssa names created
> > by predictive commoning.
>
> Maybe it's enough to treat *all* SSA names as if they occurred in an
> abnormal PHI, after loop optimizations?
why? That would prevent many cleanups (including copy propagation), so I do not
think this is a good idea unless you have some reasons for it.
> Which brings the question of
> which scalar passes we really need after loop optimization.
Standard scalar cleanups are necessary, as the loop optimizers produce
quite a lot of garbage.
Zdenek