Fix PR43097: rename only SSA_NAMEs.
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. From-SVN: r156995
This commit is contained in:
parent
13cd10a221
commit
c3382979d0
|
@ -1,3 +1,11 @@
|
|||
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>
|
||||
|
||||
|
|
12
gcc/sese.c
12
gcc/sese.c
|
@ -494,6 +494,7 @@ get_rename (htab_t map, tree old_name)
|
|||
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);
|
||||
|
||||
|
@ -658,14 +659,19 @@ rename_variables_in_stmt (gimple stmt, htab_t map, gimple_stmt_iterator *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)))
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
! { 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
|
Loading…
Reference in New Issue