c-typeck.c (finish_init): Free spelling_base before setting it again.
authorAndrew Pinski <pinskia@physics.uc.edu>
Fri, 2 Jan 2004 22:42:31 +0000 (22:42 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Fri, 2 Jan 2004 22:42:31 +0000 (14:42 -0800)
2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>

        * c-typeck.c (finish_init): Free spelling_base before
        setting it again.

        * cfgloop.c (flow_loops_find): Always free the sbitmap
        headers.

        * predict.c (estimate_probability): Free bbs after being
        done with it.

From-SVN: r75337

gcc/ChangeLog
gcc/c-typeck.c
gcc/cfgloop.c
gcc/predict.c

index e387cbcd990f5d3f1d924d8fa5639b87772e8191..80297cff20d81c76090d5c506fde0c59862808ba 100644 (file)
@@ -1,3 +1,14 @@
+2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * c-typeck.c (finish_init): Free spelling_base before 
+       setting it again.
+       
+       * cfgloop.c (flow_loops_find): Always free the sbitmap
+       headers.
+
+       * predict.c (estimate_probability): Free bbs after being
+       done with it.
+
 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/mn10300/mn10300.h (PREDICATE_CODES): Add
index 682cbc0585fdb32c4ea3dbbe3f8f5622833f8355..3a71ee7f001a489064c5c42a60b18995f4206c25 100644 (file)
@@ -4450,6 +4450,8 @@ finish_init (void)
     abort ();
 
   /* Pop back to the data of the outer initializer (if any).  */
+  free (spelling_base);
+  
   constructor_decl = p->decl;
   constructor_asmspec = p->asmspec;
   require_constant_value = p->require_constant_value;
index 43c52f23ddb7d0906b01ee78b6584e905989edef..37cf8f450bf0615698445bad236fa0447c140f15 100644 (file)
@@ -883,8 +883,6 @@ flow_loops_find (struct loops *loops, int flags)
          loop->num_nodes = flow_loop_nodes_find (loop->header, loop);
        }
 
-      sbitmap_free (headers);
-
       /* Assign the loop nesting depth and enclosed loop level for each
         loop.  */
       loops->levels = flow_loops_level_compute (loops);
@@ -900,6 +898,8 @@ flow_loops_find (struct loops *loops, int flags)
       free_dominance_info (CDI_DOMINATORS);
     }
 
+  sbitmap_free (headers);
+
   loops->state = 0;
 #ifdef ENABLE_CHECKING
   verify_flow_info ();
index 74a1f24c3ad504b36e37f822b9a42c413426b7db..0cba3a5f91e730256e403eb789fa798c8eaac954 100644 (file)
@@ -467,6 +467,9 @@ estimate_probability (struct loops *loops_info)
                    - predictor_info [(int) PRED_LOOP_EXIT].hitrate)
                   / exits);
        }
+      
+      /* Free basic blocks from get_loop_body. */
+      free (bbs);
     }
 
   /* Attempt to predict conditional jumps using a number of heuristics.  */