diff mbox

passes.c: handle register_pass with a name starting with a star

Message ID 1278820035-18384-2-git-send-email-crquan@gmail.com
State New
Headers show

Commit Message

Denis ChengRq July 11, 2010, 3:47 a.m. UTC
From: "Dennis, CHENG Renquan" <crquan@fedoraproject.org>

The gcc included passes have the feature that a name starting with a start do
not dump anything; so should the plugin registered passes have.

And since passes from gcc and from plugin both have been asserted having a name
at least; the check for pass->name in any following code is not necessary.

Bootstraped on i686-pc-linux-gnu with --enable-checking=all.

2010-07-10  "Dennis, CHENG Renquan" <crquan@fedoraproject.org>

	* passes.c (register_pass): handle plugin registered passes with
	a name starting with a star do not dump anything.
	* passes.c: remove some cases of pass->name check.


--
Git 1.7.1.1

CHENG Renquan
38 St Thomas Walk, Singapore 238118      http://crquan.fedorapeople.org

Comments

Dennis, CHENG Renquan July 11, 2010, 4:11 a.m. UTC | #1
On Sun, Jul 11, 2010 at 11:47 AM,  <crquan@gmail.com> wrote:
> From: "Dennis, CHENG Renquan" <crquan@fedoraproject.org>
>
> The gcc included passes have the feature that a name starting with a start do
> not dump anything; so should the plugin registered passes have.
>
> And since passes from gcc and from plugin both have been asserted having a name
> at least; the check for pass->name in any following code is not necessary.
>
> Bootstraped on i686-pc-linux-gnu with --enable-checking=all.

Bootstraped and tested on i686-pc-linux-gnu with --enable-checking=all.

>
> 2010-07-10  "Dennis, CHENG Renquan" <crquan@fedoraproject.org>
>
>        * passes.c (register_pass): handle plugin registered passes with
>        a name starting with a star do not dump anything.
>        * passes.c: remove some cases of pass->name check.
>
> --- gcc-4.5-20100708/gcc/passes.c.orig  2010-05-19 21:14:37.000000000 +0800
> +++ gcc-4.5-20100708/gcc/passes.c       2010-07-11 10:10:13.972787670 +0800
[...]
diff mbox

Patch

--- gcc-4.5-20100708/gcc/passes.c.orig	2010-05-19 21:14:37.000000000 +0800
+++ gcc-4.5-20100708/gcc/passes.c	2010-07-11 10:10:13.972787670 +0800
@@ -422,7 +422,7 @@  register_dump_files_1 (struct opt_pass *
       int new_properties = (properties | pass->properties_provided)
 			   & ~pass->properties_destroyed;
 
-      if (pass->name && pass->name[0] != '*')
+      if (pass->name[0] != '*')
         register_one_dump_file (pass);
 
       if (pass->sub)
@@ -488,7 +488,7 @@  make_pass_instance (struct opt_pass *pas
          and so it should rename the dump file.  The first instance will
          be -1, and be number of duplicates = -static_pass_number - 1.
          Subsequent instances will be > 0 and just the duplicate number.  */
-      if ((pass->name && pass->name[0] != '*') || track_duplicates)
+      if ((pass->name[0] != '*') || track_duplicates)
         {
           pass->static_pass_number -= 1;
           new_pass->static_pass_number = -pass->static_pass_number;
@@ -553,7 +553,6 @@  position_pass (struct register_pass_info
       /* Check if the current pass is of the same type as the new pass and
          matches the name and the instance number of the reference pass.  */
       if (pass->type == new_pass_info->pass->type
-          && pass->name
           && !strcmp (pass->name, new_pass_info->reference_pass_name)
           && ((new_pass_info->ref_pass_instance_number == 0)
               || (new_pass_info->ref_pass_instance_number ==
@@ -679,18 +678,22 @@  register_pass (struct register_pass_info
     {
       struct pass_list_node *next_node = added_pass_nodes->next;
       enum tree_dump_index tdi;
-      register_one_dump_file (added_pass_nodes->pass);
-      if (added_pass_nodes->pass->type == SIMPLE_IPA_PASS
-          || added_pass_nodes->pass->type == IPA_PASS)
-        tdi = TDI_ipa_all;
-      else if (added_pass_nodes->pass->type == GIMPLE_PASS)
-        tdi = TDI_tree_all;
-      else
-        tdi = TDI_rtl_all;
-      /* Check if dump-all flag is specified.  */
-      if (get_dump_file_info (tdi)->state)
-        get_dump_file_info (added_pass_nodes->pass->static_pass_number)
-            ->state = get_dump_file_info (tdi)->state;
+
+      if (added_pass_nodes->pass->name[0] != '*')
+	{
+	  register_one_dump_file (added_pass_nodes->pass);
+	  if (added_pass_nodes->pass->type == SIMPLE_IPA_PASS
+	      || added_pass_nodes->pass->type == IPA_PASS)
+	    tdi = TDI_ipa_all;
+	  else if (added_pass_nodes->pass->type == GIMPLE_PASS)
+	    tdi = TDI_tree_all;
+	  else
+	    tdi = TDI_rtl_all;
+	  /* Check if dump-all flag is specified.  */
+	  if (get_dump_file_info (tdi)->state)
+	    get_dump_file_info (added_pass_nodes->pass->static_pass_number)
+	      ->state = get_dump_file_info (tdi)->state;
+    	}
       XDELETE (added_pass_nodes);
       added_pass_nodes = next_node;
     }
@@ -1542,7 +1545,7 @@  execute_one_pass (struct opt_pass *pass)
   invoke_plugin_callbacks (PLUGIN_PASS_EXECUTION, pass);
 
   if (!quiet_flag && !cfun)
-    fprintf (stderr, " <%s>", pass->name ? pass->name : "");
+    fprintf (stderr, " <%s>", pass->name);
 
   /* Note that the folders should only create gimple expressions.
      This is a hack until the new folder is ready.  */