This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH, PR58805] Add missing check in stmt_local_def for tail-merge
- From: Richard Biener <rguenther at suse dot de>
- To: Jeff Law <law at redhat dot com>
- Cc: Tom de Vries <Tom_deVries at mentor dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 23 Oct 2013 10:16:20 +0200 (CEST)
- Subject: Re: [PATCH, PR58805] Add missing check in stmt_local_def for tail-merge
- Authentication-results: sourceware.org; auth=none
- References: <52664C2B dot 60400 at mentor dot com> <5266C8F2 dot 9020701 at redhat dot com>
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 <email@example.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.