On Fri, 4 Dec 2015, Jan Hubicka wrote:

> Hi,
> this is the patch for fold-const.c. Can you think of some testcase for the
> MR_DEPENDENCE_CLIQUE comparsion? I am not that familiar with the code to
> be able to construct it :(

With ICF it would involve a variant using restrict args vs.
non-restrict args.  For other optimizers it's more difficult
to construct a testcase that would fail.  But if any alias related
compare is necessary in operand_equal_p then the dependence check
is required as well.

> Bootstrapped/regtested x86_64-linux, OK?

Ok.

Thanks,
Richard.

> Honza
> 
>       * fold-const.c (operand_equal_p): Do not use flag_strict_aliasing.
> Index: fold-const.c
> ===================================================================
> --- fold-const.c      (revision 231290)
> +++ fold-const.c      (working copy)
> @@ -2987,14 +2987,13 @@ operand_equal_p (const_tree arg0, const_
>                                          flags)))
>               return 0;
>             /* Verify that accesses are TBAA compatible.  */
> -           if (flag_strict_aliasing
> -               && (!alias_ptr_types_compatible_p
> -                     (TREE_TYPE (TREE_OPERAND (arg0, 1)),
> -                      TREE_TYPE (TREE_OPERAND (arg1, 1)))
> -                   || (MR_DEPENDENCE_CLIQUE (arg0)
> -                       != MR_DEPENDENCE_CLIQUE (arg1))
> -                   || (MR_DEPENDENCE_BASE (arg0)
> -                       != MR_DEPENDENCE_BASE (arg1))))
> +           if (!alias_ptr_types_compatible_p
> +                  (TREE_TYPE (TREE_OPERAND (arg0, 1)),
> +                   TREE_TYPE (TREE_OPERAND (arg1, 1)))
> +               || (MR_DEPENDENCE_CLIQUE (arg0)
> +                   != MR_DEPENDENCE_CLIQUE (arg1))
> +               || (MR_DEPENDENCE_BASE (arg0)
> +                   != MR_DEPENDENCE_BASE (arg1)))
>               return 0;
>            /* Verify that alignment is compatible.  */
>            if (TYPE_ALIGN (TREE_TYPE (arg0))

Reply via email to