Hi,
While I am still trying to reproduce and verify the issue (valgrind checking 
runs very slow for me),
It's clear I made stupid mistake using free for newed vector.  This simple 
patch fixes it.
Bootstrap and test ongoing.  Is it OK?

Thanks,
bin
2017-12-06  Bin Cheng  <bin.ch...@arm.com>

        PR tree-optimization/83320
        * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
        (prune_datarefs_not_in_loop): Ditto.
diff --git a/gcc/gimple-loop-interchange.cc b/gcc/gimple-loop-interchange.cc
index 3f7c54f..92c96a3 100644
--- a/gcc/gimple-loop-interchange.cc
+++ b/gcc/gimple-loop-interchange.cc
@@ -945,7 +945,7 @@ free_data_refs_with_aux (vec<data_reference_p> datarefs)
     if (dr->aux != NULL)
       {
        DR_ACCESS_STRIDE (dr)->release ();
-       free (dr->aux);
+       delete (vec<tree> *) dr->aux;
       }
 
   free_data_refs (datarefs);
@@ -1843,7 +1843,7 @@ prune_datarefs_not_in_loop (struct loop *loop, 
vec<data_reference_p> datarefs)
          if (dr->aux)
            {
              DR_ACCESS_STRIDE (dr)->release ();
-             free (dr->aux);
+             delete (vec<tree> *) dr->aux;
            }
          free_data_ref (dr);
        }

Reply via email to