re PR tree-optimization/18544 (ICE with -ftree-vectorize)
authorDorit Naishlos <dorit@il.ibm.com>
Mon, 22 Nov 2004 13:41:57 +0000 (13:41 +0000)
committerDorit Nuzman <dorit@gcc.gnu.org>
Mon, 22 Nov 2004 13:41:57 +0000 (13:41 +0000)
PR tree-opt/18544
        * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.

From-SVN: r91011

gcc/ChangeLog
gcc/tree-vectorizer.c

index 7e130c9198ebbaa41dbe075fcb830c301e42460a..a1666ee1e1c4430e8f6f8a17f4459284b6e502ff 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
+
+       PR tree-opt/18544
+       * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
+
 2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
 
        * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
index 7793b0b6b0104496a3e28c8071a858acd09df694..61c22e82594452b24a57efd992d3b6dd9311e2e9 100644 (file)
@@ -5057,10 +5057,15 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo)
                case ARRAY_REF:
                  dr = analyze_array (stmt, TREE_OPERAND (symbl, 0), 
                                      DR_IS_READ(dr));
-                 STMT_VINFO_MEMTAG (stmt_info) = 
-                    vect_get_base_and_bit_offset (dr, DR_BASE_NAME (dr), NULL_TREE,
-                                                  loop_vinfo, &offset, 
-                                                  &base_aligned_p);
+                 tag = vect_get_base_and_bit_offset (dr, DR_BASE_NAME (dr), 
+                          NULL_TREE, loop_vinfo, &offset, &base_aligned_p);
+                 if (!tag)
+                   {
+                     if (vect_debug_stats (loop) || vect_debug_details (loop))
+                       fprintf (dump_file, "not vectorized: no memtag for ref.");
+                     return false;
+                   }
+                 STMT_VINFO_MEMTAG (stmt_info) = tag; 
                  break;
                  
                case VAR_DECL: