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))