Commit 7906dbe4 by Richard Biener Committed by Richard Biener

re PR tree-optimization/57517 (internal compiler error: in…

re PR tree-optimization/57517 (internal compiler error: in eliminate_temp_copies, at tree-predcom.c:1913)

2013-11-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57517
	* tree-predcom.c (combinable_refs_p): Verify the combination
	is always executed when the refs are.

	* gfortran.fortran-torture/compile/pr57517.f90: New testcase.
	* gcc.dg/torture/pr57517.c: Likewise.

From-SVN: r205010
parent 64856e1e
2013-11-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/57517
* tree-predcom.c (combinable_refs_p): Verify the combination
is always executed when the refs are.
2013-11-19 Jeff Law <law@redhat.com>
* tree-ssa-threadupdate.c: Include ssa-iterators.h
2013-11-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/57517
* gfortran.fortran-torture/compile/pr57517.f90: New testcase.
* gcc.dg/torture/pr57517.c: Likewise.
2013-11-19 Jan Hubicka <jh@suse.cz>
* gcc.target/i386/memcpy-3.c: New testcase.
......
/* { dg-do compile } */
int x[1024], y[1024], z[1024], w[1024];
void foo (void)
{
int i;
for (i = 1; i < 1024; ++i)
{
int a = x[i];
int b = y[i];
int c = x[i-1];
int d = y[i-1];
if (w[i])
z[i] = (a + b) + (c + d);
}
}
SUBROUTINE cal_helicity (uh, ph, phb, wavg, ims, ime, its, ite)
INTEGER, INTENT( IN ) :: ims, ime, its, ite
REAL, DIMENSION( ims:ime), INTENT( IN ) :: ph, phb, wavg
REAL, DIMENSION( ims:ime), INTENT( INOUT ) :: uh
INTEGER :: i
REAL :: zu
DO i = its, ite
zu = (ph(i ) + phb(i)) + (ph(i-1) + phb(i-1))
IF (wavg(i) .GT. 0) THEN
uh(i) = uh(i) + zu
ENDIF
END DO
END SUBROUTINE cal_helicity
......@@ -2035,7 +2035,11 @@ combinable_refs_p (dref r1, dref r2,
stmt = find_common_use_stmt (&name1, &name2);
if (!stmt)
if (!stmt
/* A simple post-dominance check - make sure the combination
is executed under the same condition as the references. */
|| (gimple_bb (stmt) != gimple_bb (r1->stmt)
&& gimple_bb (stmt) != gimple_bb (r2->stmt)))
return false;
acode = gimple_assign_rhs_code (stmt);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment