> 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. OK, thanks. Comitted w/o a testcase for now. Once ipa-icf-gimple transition to operand_equal_p is complete, we can invent a testcase. Obviously restrict args are checked earlier independently of the operand comparsion ATM, so this testcase would not fail either.
Honza > > 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))