This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting


On Fri, Dec 19, 2014 at 11:51:06AM +0800, Bin.Cheng wrote:
> >> yes, we want to restrict the transformation on single-use pseudo only,
> >> and it's better the transformation could re-use existed info and helper
> >> function to avoid increase compile time. but I haven't found anything I
> >> can reuse at the stage the transformation happen.
> >>
> >> the info similar as LOG_LINKS is what I want, but maybe simpler. I'd study
> >> the code about build LOG_LINKS, and try to see if we can do some factor out.
> >
> > LOG_LINKs in combine are just historical.  combine should be converted
> > to use DF fully.
> >
> > LOG_LINKs have nothing to do with single use; they point from the _first_
> > use to its corresponding def.
> >
> > You might want to look at what fwprop does instead.
> Pass rtl fwprop uses df information in single-definition way, it
> doesn't really take into consideration if register is a single use.

Sure, because that's not what fwprop is meant to do.  It has all the
information though, and combine (in the LOG_LINKs) does not: it does
not encode single uses, it does not encode all uses, it does not
encode all defs, it doesn't even look outside of a single basic block.


Segher


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]