This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, PR58805] Add missing check in stmt_local_def for tail-merge


On 10/23/13 02:16, Richard Biener wrote:
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  <tom@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.
So side effects as in implicit... That makes sense. Thanks for the clarification.
jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]