http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48270



--- Comment #6 from Ira Rosen <irar at il dot ibm.com> 2011-03-24 12:36:18 UTC 
---

My guess is that I freed data-refs too early. Could someone please check if

this patch fixes the failures:



Index: tree-ssa-phiopt.c

===================================================================

--- tree-ssa-phiopt.c   (revision 171384)

+++ tree-ssa-phiopt.c   (working copy)

@@ -1494,8 +1494,6 @@ cond_if_else_store_replacement (basic_bl

   else_ddrs = VEC_alloc (ddr_p, heap, 1);

   compute_all_dependences (then_datarefs, &then_ddrs, NULL, false);

   compute_all_dependences (else_datarefs, &else_ddrs, NULL, false);

-  free_data_refs (then_datarefs);

-  free_data_refs (else_datarefs);

   blocks[0] = then_bb;

   blocks[1] = else_bb;

   blocks[2] = join_bb;

@@ -1517,6 +1515,8 @@ cond_if_else_store_replacement (basic_bl

         {

           free_dependence_relations (then_ddrs);

           free_dependence_relations (else_ddrs);

+          free_data_refs (then_datarefs);

+          free_data_refs (else_datarefs);

           VEC_free (gimple, heap, then_stores);

           VEC_free (gimple, heap, else_stores);

           return false;

@@ -1539,6 +1539,8 @@ cond_if_else_store_replacement (basic_bl

         {

           free_dependence_relations (then_ddrs);

           free_dependence_relations (else_ddrs);

+          free_data_refs (then_datarefs);

+          free_data_refs (else_datarefs);

           VEC_free (gimple, heap, then_stores);

           VEC_free (gimple, heap, else_stores);

           return false;

@@ -1558,6 +1560,8 @@ cond_if_else_store_replacement (basic_bl

   free_dependence_relations (else_ddrs);

   VEC_free (gimple, heap, then_stores);

   VEC_free (gimple, heap, else_stores);

+  free_data_refs (then_datarefs);

+  free_data_refs (else_datarefs);



   return ok;

 }



Thanks,

Ira

Reply via email to