This is the mail archive of the 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: ipa vrp implementation in gcc

On Mon, Jan 11, 2016 at 1:38 AM, Kugan
<> wrote:
> Hi All,
> I am looking at implementing a ipa vrp pass. Jan Hubicka also talks
> about this in 2013 GNU Cauldron as one of the optimization he would like
> to see in gcc. So my question is, is any one implementing it. If not we
> would like to do that.
> I also looked at the ipa-cp implementation to see how this can be done.
> Going by this, one of the way to implement this is (skipping all the
> details):
> - Have an early tree-vrp so that we can have value ranges for parameters
> at call sites.

I'd rather use the IPA analysis phase for this and use a VRP algorithm
that doesn't require ASSERT_EXPR insertion.

> - Create jump functions that captures the value ranges of call sites
> propagate the value ranges. In 2013 talk, Jan Hubicka talks about
> - Modifying ipa-prop.[h|c] to handles this but wouldn't it be easier to
> have its own and much more simpler implementation ?

No idea.

> - Once we have the value ranges for parameter/return values, we could
> rely on tree-vrp to use this and do the optimizations

Yep.  IPA transform phase should annotate parameter default defs with
computed ranges.

> Does this make any sense? Any thoughts/suggestions to work on this is
> highly appreciated.

IPA alignment propagation should already be somewhat similar as in doing
an intersection step during propagation.


> Thanks,
> Kugan

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