re PR fortran/44882 (Bogus types in references with mismatched commons)
authorRichard Guenther <rguenther@suse.de>
Fri, 9 Jul 2010 10:05:27 +0000 (10:05 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 9 Jul 2010 10:05:27 +0000 (10:05 +0000)
2010-07-09  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/44882
* tree-vect-stmts.c (vectorizable_store): Do not assert alias
sets do conflict.
(vectorizable_load): Likewise.

* gfortran.dg/pr44882.f90: New testcase.

From-SVN: r161990

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr44882.f90 [new file with mode: 0644]
gcc/tree-vect-stmts.c

index a5d4ceb4978217a7fe21e0d87479c1fe583bc43d..4666f4cbed0158eea7ee49089ab6d4f08b8628d2 100644 (file)
@@ -1,3 +1,10 @@
+2010-07-09  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44882
+       * tree-vect-stmts.c (vectorizable_store): Do not assert alias
+       sets do conflict.
+       (vectorizable_load): Likewise.
+
 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
 
        PR target/40657
index 71906e60a9acab90302dcb12e3101f44a52ac906..6a42b4e56601983929af54283255b30e13ccbe84 100644 (file)
@@ -1,3 +1,8 @@
+2010-07-09  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44882
+       * gfortran.dg/pr44882.f90: New testcase.
+
 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
 
        PR target/40657
diff --git a/gcc/testsuite/gfortran.dg/pr44882.f90 b/gcc/testsuite/gfortran.dg/pr44882.f90
new file mode 100644 (file)
index 0000000..ac22459
--- /dev/null
@@ -0,0 +1,14 @@
+! { dg-do compile }
+! { dg-options "-O3 -ffast-math -funroll-loops -w" }
+
+      SUBROUTINE TRUDGE(KDIR)
+! There is a type mismatch here for TRUPAR which caused an ICE
+      COMMON /TRUPAR/ DR(10),V(10,10)
+      DO 110 I=1,NDIR
+  110 DR(I)=V(I,JDIR)
+      END
+      SUBROUTINE TRUSRC(LEAVE)
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      COMMON /TRUPAR/ DX(10),V(10,10)
+      END
+
index bf9ae73a30be8dfd51aedbcd07ea9a84f474c094..e0ae55904daaf06f53f241f2acdde113e68cbea1 100644 (file)
@@ -3372,11 +3372,6 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
             data_ref = build2 (MISALIGNED_INDIRECT_REF, vectype, dataref_ptr, tmis);
            }
 
-         /* If accesses through a pointer to vectype do not alias the original
-            memory reference we have a problem.  This should never happen.  */
-         gcc_assert (alias_sets_conflict_p (get_alias_set (data_ref),
-                     get_alias_set (gimple_assign_lhs (stmt))));
-
          /* Arguments are ready. Create the new vector stmt.  */
          new_stmt = gimple_build_assign (data_ref, vec_oprnd);
          vect_finish_stmt_generation (stmt, new_stmt, gsi);
@@ -3822,10 +3817,6 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
            default:
              gcc_unreachable ();
            }
-         /* If accesses through a pointer to vectype do not alias the original
-            memory reference we have a problem.  This should never happen. */
-         gcc_assert (alias_sets_conflict_p (get_alias_set (data_ref),
-                     get_alias_set (gimple_assign_rhs1 (stmt))));
          vec_dest = vect_create_destination_var (scalar_dest, vectype);
          new_stmt = gimple_build_assign (vec_dest, data_ref);
          new_temp = make_ssa_name (vec_dest, new_stmt);