[llvm-dev] [RFC] Interprocedural MIR-level outlining pass
Hal Finkel via llvm-dev
llvm-dev at lists.llvm.org
Wed Aug 31 15:25:43 PDT 2016
----- Original Message -----
> From: "Andrey Bokhanko" <andreybokhanko at gmail.com>
> To: "Daniel Berlin" <dberlin at dberlin.org>
> Cc: "Hal Finkel" <hfinkel at anl.gov>, "llvm-dev"
> <llvm-dev at lists.llvm.org>
> Sent: Wednesday, August 31, 2016 7:17:08 AM
> Subject: Re: [llvm-dev] [RFC] Interprocedural MIR-level outlining
> On Tue, Aug 30, 2016 at 7:28 PM, Daniel Berlin < dberlin at dberlin.org
> > wrote:
> > > I tend to agree with Hal -- value numbering computes equivalent
> > > *values*,
> > Sorry, but this is just flat out wrong
> > "A Global Value Numbering(GVN) algorithm is considered to be
> > complete
> > (or precise), if it can detect all Herbrand equivalences among
> > expressions in a program.
> > Two expressions are said to be Herbrand equivalent (or transparent
> > equivalent ), if they are computed by the same operator applied to
> > equivalent operands "
> > This is, AFAIK, precisely what you want.
> I'm not entirely happy with this definition (IMHO, it's overly
> restrictive), but this in irrelevant.
> What relevant is what one considers to be "equivalent operands". Take
> my example again -- for outlining (Jessica's name) / code folding
> (your name) optimization reads of "a" and "b" globals are
> equivalent; for VN and its users they are not.
Yes, this was exactly my point. We want to recognize structurally-equivalent sequences of instructions on inequivalent operands.
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev