This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: "Bin.Cheng" <amker dot cheng at gmail dot com>
- Cc: Jiong Wang <jiong dot wang at arm dot com>, Richard Biener <richard dot guenther at gmail dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 19 Dec 2014 09:05:47 -0600
- Subject: Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Authentication-results: sourceware.org; auth=none
- References: <54803EBE dot 2060607 at arm dot com> <CAFiYyc1jauY_hejCfgU88DXtaSCCSZDUMiKMb678KqQ_QrMzrQ at mail dot gmail dot com> <CAFiYyc0gEQt_Ci1TyCfYys=JnZMr8FmYW7dFtq+mBmqKjeuttw at mail dot gmail dot com> <5480B6D6 dot 2020201 at arm dot com> <548EFE0D dot 1070808 at arm dot com> <548EFE55 dot 6090901 at arm dot com> <CAFiYyc3oYRsYkQwivE+T4A4mysDBe0gjZqjroQ8B2p1J6sakQg at mail dot gmail dot com> <54930811 dot 1020003 at arm dot com> <20141218220908 dot GA20720 at gate dot crashing dot org> <CAHFci28ajc8KqKEvyYYvQHbhYkZ-ExV8ixJ+SNuqV8bg3n7JJQ at mail dot gmail dot com>
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
- References:
- [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting
- Re: [PATCH] PR 62173, re-shuffle insns for RTL loop invariant hoisting