re PR rtl-optimization/26184 (memory leaks in swing modulo scheduling function)
authorUttam Pawar <uttamp@us.ibm.com>
Wed, 15 Feb 2006 19:33:33 +0000 (14:33 -0500)
committerDavid Edelsohn <dje@gcc.gnu.org>
Wed, 15 Feb 2006 19:33:33 +0000 (14:33 -0500)
2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>

        PR rtl-optimization/26184
        * modulo-sched.c (generate_reg_moves): Free bitmap vector
        uses_of_defs.
        * modulo-sched.c (sms_schedule): Free g_arr pointer.
        * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
        must_precede, must_follow and tobe_scheduled.

        PR other/26147
        * opts.c (common_handle_option): Free new_option pointer.
        * df-core.c (df_analyze): Free postorder pointer.

From-SVN: r111114

gcc/ChangeLog
gcc/df-core.c
gcc/modulo-sched.c
gcc/opts.c

index 4d44ab544e7476f4b58a3337d34cccb8a341faf8..5d8c43cebbfeebeb7122bb0ba28f0311897ce088 100644 (file)
@@ -1,4 +1,17 @@
-2006-02-15 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
+
+       PR rtl-optimization/26184
+       * modulo-sched.c (generate_reg_moves): Free bitmap vector
+       uses_of_defs.
+       * modulo-sched.c (sms_schedule): Free g_arr pointer.
+       * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
+       must_precede, must_follow and tobe_scheduled.
+
+       PR other/26147
+       * opts.c (common_handle_option): Free new_option pointer.
+       * df-core.c (df_analyze): Free postorder pointer.
+
+2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
 
        * Makefile.in: Fix the examples about the use of stamps
 
        * basic-block.h: Remove the prototype for
        partition_hot_cold_basic_blocks.
 
-2006-01-16  Rafael Ã\83vila de EspÃ�­ndola <rafael.espindola@gmail.com>
+2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
 
        * cppspec.c (lang_specific_spec_functions): Remove.
        * gcc.c (lookup_spec_function): Use static_spec_functions directly.
index 8821dedeaa3e9e63e1d875cbfa9a0628ed0b7633..e9da8b626fa794cfd41bd3bbfefdfec0a60ae481 100644 (file)
@@ -782,6 +782,7 @@ df_analyze (struct df *df)
 
   BITMAP_FREE (df->blocks_to_scan);
   df->blocks_to_scan = NULL;
+  free (postorder);
 }
 
 
index 86bf1a3a14f2a6eab489787c9893f4dcfbe07e2f..fdba7300da729e4b1e234997753595ae28b428bd 100644 (file)
@@ -531,6 +531,7 @@ generate_reg_moves (partial_schedule_ptr ps)
 
          prev_reg = new_reg;
        }
+      sbitmap_vector_free (uses_of_defs);
     }
   return reg_move_replaces;
 }
@@ -1259,6 +1260,8 @@ sms_schedule (void)
       free_ddg (g);
     }
 
+  free (g_arr);
+
   /* Release scheduler data, needed until now because of DFA.  */
   sched_finish ();
   loop_optimizer_finalize (loops);
@@ -1607,6 +1610,9 @@ sms_schedule_by_order (ddg_ptr g, int mii, int maxii, int *nodes_order)
     } /* While try_again_with_larger_ii.  */
 
   sbitmap_free (sched_nodes);
+  sbitmap_free (must_precede);
+  sbitmap_free (must_follow);
+  sbitmap_free (tobe_scheduled);
 
   if (ii >= maxii)
     {
index 91a5fc2a745851050d8775ad69ade24ce65723a4..a5dc609aa455c39b59369813f87263a056a99d01 100644 (file)
@@ -777,7 +777,7 @@ common_handle_option (size_t scode, const char *arg, int value,
        option_index = find_opt (new_option, lang_mask);
        if (option_index == N_OPTS)
          {
-           error("-Werror-%s: No option -%s", arg, new_option);
+           error ("-Werror-%s: No option -%s", arg, new_option);
          }
        else
          {
@@ -789,6 +789,7 @@ common_handle_option (size_t scode, const char *arg, int value,
                && cl_options[option_index].flag_var
                && kind == DK_ERROR)
              *(int *) cl_options[option_index].flag_var = 1;
+           free (new_option);
          }
       }
       break;