2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/43140
* sese.c (get_rename): Assert that old_name is an SSA_NAME.
(rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
* gfortran.dg/graphite/pr43097.f: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156995
138bc75d-0d04-0410-961f-
82ee72b054a4
2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/43140
+ * sese.c (get_rename): Assert that old_name is an SSA_NAME.
+ (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
+
+ * gfortran.dg/graphite/pr43097.f: New.
+
+2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
Manuel López-Ibáñez <manu@gcc.gnu.org>
PR middle-end/43140
struct rename_map_elt_s tmp;
PTR *slot;
+ gcc_assert (TREE_CODE (old_name) == SSA_NAME);
tmp.old_name = old_name;
slot = htab_find_slot (map, &tmp, NO_INSERT);
FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_ALL_USES)
{
tree use = USE_FROM_PTR (use_p);
- tree expr = get_rename (map, use);
- tree type_use = TREE_TYPE (use);
- tree type_expr = TREE_TYPE (expr);
+ tree expr, type_use, type_expr;
gimple_seq stmts;
+ if (TREE_CODE (use) != SSA_NAME)
+ continue;
+
+ expr = get_rename (map, use);
if (use == expr)
continue;
+ type_use = TREE_TYPE (use);
+ type_expr = TREE_TYPE (expr);
+
if (type_use != type_expr
|| (TREE_CODE (expr) != SSA_NAME
&& is_gimple_reg (use)))
--- /dev/null
+! { dg-options "-O2 -fgraphite-identity" }
+
+ subroutine foo (ldmx,ldmy,nx,ny,v)
+ implicit real*8 (a-h, o-z)
+ dimension v(5,ldmx,ldmy,*)
+ dimension tmat(5,5)
+
+ k = 2
+ do j = 2, ny-1
+ do i = 2, nx-1
+ do ip = 1, 4
+ do m = ip+1, 5
+ v(m,i,j,k) = v(m,i,j,k) * m
+ end do
+ end do
+ do m = 5, 1, -1
+ do l = m+1, 5
+ v(m,i,j,k) = v(l,i,j,k)
+ end do
+ v(m,i,j,k) = m
+ end do
+ end do
+ end do
+ return
+ end