re PR tree-optimization/42285 (ICE in Graphite's scan_tree_for_params for 416.gamess)

Fix PR42285.

2009-12-08  Sebastian Pop  <sebpop@gmail.com>

	PR middle-end/42285
	* graphite-scop-detection.c (graphite_can_represent_init): Also
	handle more complex MULT_EXPRs containing parameters by recursion
	on the structure.

	* testsuite/gfortran.dg/graphite/pr42285.f90: New.

From-SVN: r155108
This commit is contained in:
Sebastian Pop 2009-12-09 15:18:22 +00:00
parent da8a7529b5
commit d505015aa5
3 changed files with 41 additions and 2 deletions

View File

@ -1,3 +1,16 @@
2009-12-08 Sebastian Pop <sebpop@gmail.com>
PR middle-end/42285
* graphite-scop-detection.c (graphite_can_represent_init): Also
handle more complex MULT_EXPRs containing parameters by recursion
on the structure.
* testsuite/gfortran.dg/graphite/pr42285.f90: New.
2009-12-01 Tobias Grosser <grosser@fim.uni-passau.de>
* testsuite/g++.dg/graphite/pr42130.C: Fix type.
2009-11-29 Alexander Monakov <amonakov@gcc.gnu.org>
* testsuite/g++.dg/graphite/pr42130.C: Correct testcase.

View File

@ -168,9 +168,11 @@ graphite_can_represent_init (tree e)
case MULT_EXPR:
if (chrec_contains_symbols (TREE_OPERAND (e, 0)))
return host_integerp (TREE_OPERAND (e, 1), 0);
return graphite_can_represent_init (TREE_OPERAND (e, 0))
&& host_integerp (TREE_OPERAND (e, 1), 0);
else
return host_integerp (TREE_OPERAND (e, 0), 0);
return graphite_can_represent_init (TREE_OPERAND (e, 1))
&& host_integerp (TREE_OPERAND (e, 0), 0);
case PLUS_EXPR:
case POINTER_PLUS_EXPR:

View File

@ -0,0 +1,24 @@
! { dg-options "-O2 -floop-interchange" }
SUBROUTINE EFGRDM(NCF,NFRG,G,RTRMS,GM,IOPT,K1)
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION G(*),RTRMS(*),GM(*)
DUM = 0
DO I=1,NFRG
DO J=1,3
IF (IOPT.EQ.0) THEN
GM(K1)=G(K1)
END IF
END DO
DO J=1,3
JDX=NCF*9+IOPT*9*NFRG
DO M=1,3
DUM=DUM+RTRMS(JDX+M)
END DO
GM(K1)=DUM
END DO
END DO
RETURN
END SUBROUTINE EFGRDM