[PATCH][RFC] Add FRE in pass_vectorize
Richard Biener
rguenther@suse.de
Thu Jul 2 12:11:00 GMT 2015
On Thu, 2 Jul 2015, Alan Lawrence wrote:
> Jeff Law wrote:
> > On 06/24/2015 01:59 AM, Richard Biener wrote:
> > > And then there is the possibility of making passes generate less
> > > needs to perform cleanups after them - like in the present case
> > > with the redundant IVs make them more appearant redundant by
> > > CSEing the initial value and step during vectorizer code generation.
> > > I'm playing with the idea of adding a simple CSE machinery to
> > > the gimple_build () interface (aka match-and-simplify). It
> > > eventually invokes (well, not currently, but that can be fixed)
> > > maybe_push_res_to_seq which is a good place to maintain a
> > > table of already generated expressions. That of course only
> > > works if you either always append to the same sequence or at least
> > > insert at the same place.
> > As you know we've gone back and forth on this in the past. It's always a
> > trade-off. I still ponder from time to time putting the simple CSE and
> > cprop bits back into the SSA rewriting phase to avoid generating all kinds
> > of garbage that just needs to be cleaned up later -- particularly for
> > incremental SSA updates.
>
> Coming to this rather late, and without the background knowledge about having
> gone back and forth, sorry! But what are the arguments against this? Am I
> right in thinking that the "SSA Rewriting" phase would not trigger as often as
> gimple_build(), or are these the same thing?
Not sure what Jeff means here either. We don't do any SSA rewriting
nowadays but instead produce SSA gimple even from force_gimple_operand
operating on GENERIC.
As the goal is to get rid of force_gimple_operand ("late gimplifying")
this means to build the CSE into its replacement.
> Presumably when you say "simple CSE machinery" you'd have to bail out quickly
> from tricky cases like, say:
>
> if (P)
> {
> use ...expr...
> }
> ...
> if (Q)
> {
> now building a new ...expr... here
> }
Yes, of course.
Richard.
> Thanks, Alan
>
>
--
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Dilip Upmanyu, Graham Norton, HRB 21284 (AG Nuernberg)
More information about the Gcc-patches
mailing list