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