On Mon, Jan 11, 2016 at 1:38 AM, Kugan
<kugan.vivekanandara...@linaro.org> 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.

Richard.

> Thanks,
> Kugan

Reply via email to