On Tue, 22 Oct 2013, Jeff Law wrote: > On 10/22/13 03:58, Tom de Vries wrote: > > Richard, > > > > This patch adds a missing check for gimple_vdef in stmt_local_def for the > > tail-merge pass. > > > > Bootstrapped and reg-tested on x86_64. > > > > OK for trunk, gcc-4_8-branch? > > > > Thanks, > > - Tom > > > > 2013-10-22 Tom de Vries <t...@codesourcery.com> > > > > PR tree-optimization/58805 > > * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check. > > > > * gcc.dg/pr58805.c: New test. > Doesn't this test belong in an architecture specific directory? > > Under what conditions can a statement have a VDEF but not be considered as > having a side effect by gimple_has_side_effects? > > It almost seems to me that gimple_has_side_effects may need updating.
You seem to misunderstand "side-effect", for example *p = 1; has !gimple_has_side_effects but it has a VDEF. Likewise *p = const_call_returing_aggregate (); has !gimple_has_side_effects but it has a VDEF. side-effect is an effect that is not explicitely represented in the gimple stmt you look at. Richard.