On Mon, 20 May 2019, Jan Hubicka wrote:

> Hi,
> at the moment the alias stats outputs mostly 0 for res_may_alias_p
> (which is supposed to be main entry point to the alias oracle).
> I think this is because of code refactoring where we added more variants
> of this function and we want to do stats around the main worker.
> 
> Bootstrapped/regtested x86_64-linux, OK?

OK.

>       * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
>       (refs_may_alias_p_1): ... here; update stats.
>       (refs_may_alias_p): Do not update stats here.
> Index: tree-ssa-alias.c
> ===================================================================
> --- tree-ssa-alias.c  (revision 271379)
> +++ tree-ssa-alias.c  (working copy)
> @@ -1399,8 +1466,8 @@ indirect_refs_may_alias_p (tree ref1 ATT
>  
>  /* Return true, if the two memory references REF1 and REF2 may alias.  */
>  
> -bool
> -refs_may_alias_p_1 (ao_ref *ref1, ao_ref *ref2, bool tbaa_p)
> +static bool
> +refs_may_alias_p_2 (ao_ref *ref1, ao_ref *ref2, bool tbaa_p)
>  {
>    tree base1, base2;
>    poly_int64 offset1 = 0, offset2 = 0;
> @@ -1557,6 +1624,20 @@ refs_may_alias_p_1 (ao_ref *ref1, ao_ref
>    gcc_unreachable ();
>  }
>  
> +/* Return true, if the two memory references REF1 and REF2 may alias
> +   and update statistics.  */
> +
> +bool
> +refs_may_alias_p_1 (ao_ref *ref1, ao_ref *ref2, bool tbaa_p)
> +{
> +  bool res = refs_may_alias_p_2 (ref1, ref2, tbaa_p);
> +  if (res)
> +    ++alias_stats.refs_may_alias_p_may_alias;
> +  else
> +    ++alias_stats.refs_may_alias_p_no_alias;
> +  return res;
> +}
> +
>  static bool
>  refs_may_alias_p (tree ref1, ao_ref *ref2, bool tbaa_p)
>  {
> @@ -1569,15 +1650,9 @@ bool
>  refs_may_alias_p (tree ref1, tree ref2, bool tbaa_p)
>  {
>    ao_ref r1, r2;
> -  bool res;
>    ao_ref_init (&r1, ref1);
>    ao_ref_init (&r2, ref2);
> -  res = refs_may_alias_p_1 (&r1, &r2, tbaa_p);
> -  if (res)
> -    ++alias_stats.refs_may_alias_p_may_alias;
> -  else
> -    ++alias_stats.refs_may_alias_p_no_alias;
> -  return res;
> +  return; refs_may_alias_p_1 (&r1, &r2, tbaa_p);
>  }
>  
>  /* Returns true if there is a anti-dependence for the STORE that
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany;
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah; HRB 21284 (AG Nürnberg)

Reply via email to