* tree-vrp.c (find_assert_locations): Skip also edges
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 Aug 2012 09:19:39 +0000 (09:19 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 Aug 2012 09:19:39 +0000 (09:19 +0000)
from the entry block.

* tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Call
free_stmt_vec_info on orig_cond after gsi_removing it.
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Always
free body_cost_vec vector.
(vect_analyze_data_refs): If gather is unsuccessful,
free_data_ref (dr).
* tree-inline.c (tree_function_versioning): Free
old_transforms_to_apply vector.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190590 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-inline.c
gcc/tree-vect-data-refs.c
gcc/tree-vect-loop-manip.c
gcc/tree-vrp.c

index 664fd03..88ec752 100644 (file)
@@ -1,3 +1,17 @@
+2012-08-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-vrp.c (find_assert_locations): Skip also edges
+       from the entry block.
+
+       * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Call
+       free_stmt_vec_info on orig_cond after gsi_removing it.
+       * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Always
+       free body_cost_vec vector.
+       (vect_analyze_data_refs): If gather is unsuccessful,
+       free_data_ref (dr).
+       * tree-inline.c (tree_function_versioning): Free
+       old_transforms_to_apply vector.
+
 2012-08-22  Steven Bosscher  <steven@gcc.gnu.org>
 
        * tree-ssa-coalesce.c (struct ssa_conflicts_d): Make contents
index fe46e5d..20d3317 100644 (file)
@@ -5089,6 +5089,7 @@ tree_function_versioning (tree old_decl, tree new_decl,
                       VEC_index (ipa_opt_pass,
                                  old_transforms_to_apply,
                                  i));
+      VEC_free (ipa_opt_pass, heap, old_transforms_to_apply);
     }
 
   id.copy_decl = copy_decl_no_change;
index 4df2e50..4a5624e 100644 (file)
@@ -1,5 +1,5 @@
 /* Data References Analysis and Manipulation Utilities for Vectorization.
-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
    Free Software Foundation, Inc.
    Contributed by Dorit Naishlos <dorit@il.ibm.com>
    and Ira Rosen <irar@il.ibm.com>
@@ -1934,10 +1934,9 @@ vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo)
          gcc_assert (stat);
           return stat;
         }
-      else
-       VEC_free (stmt_info_for_cost, heap, body_cost_vec);
     }
 
+  VEC_free (stmt_info_for_cost, heap, body_cost_vec);
 
   /* (2) Versioning to force alignment.  */
 
@@ -3313,6 +3312,8 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo,
            gather = false;
          if (!gather)
            {
+             STMT_VINFO_DATA_REF (stmt_info) = NULL;
+             free_data_ref (dr);
              if (vect_print_dump_info (REPORT_UNVECTORIZED_LOCATIONS))
                {
                  fprintf (vect_dump,
index bdf3fd2..4df4800 100644 (file)
@@ -788,6 +788,7 @@ slpeel_make_loop_iterate_ntimes (struct loop *loop, tree niters)
 
   /* Remove old loop exit test:  */
   gsi_remove (&loop_cond_gsi, true);
+  free_stmt_vec_info (orig_cond);
 
   loop_loc = find_loop_location (loop);
   if (dump_file && (dump_flags & TDF_DETAILS))
index f0d68eb..0aa1dc7 100644 (file)
@@ -5596,7 +5596,7 @@ find_assert_locations (void)
          FOR_EACH_EDGE (e, ei, bb->preds)
            {
              int pred = e->src->index;
-             if (e->flags & EDGE_DFS_BACK)
+             if ((e->flags & EDGE_DFS_BACK) || pred == ENTRY_BLOCK)
                continue;
 
              if (!live[pred])