diff mbox

[2/2] Automated conversion of IPA passes to new API

Message ID 1381365668-366-3-git-send-email-dmalcolm@redhat.com
State New
Headers show

Commit Message

David Malcolm Oct. 10, 2013, 12:41 a.m. UTC
gcc/

	Patch autogenerated by refactor_ipa_passes.py from
	https://github.com/davidmalcolm/gcc-refactoring-scripts
	revision 9518113a5604ede755ea1dc1f073a1863f5a6de5

	* ipa-cp.c (pass_ipa_cp): Convert to new API for IPA passes.
	* ipa-devirt.c (pass_ipa_devirt): Likewise.
	* ipa-inline.c (pass_ipa_inline): Likewise.
	* ipa-profile.c (pass_ipa_profile): Likewise.
	* ipa-pure-const.c (pass_ipa_pure_const): Likewise.
	* ipa-reference.c (pass_ipa_reference): Likewise.
	* ipa.c (pass_ipa_whole_program_visibility): Likewise.
	(pass_ipa_cdtor_merge): Likewise.
	* lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
	(pass_ipa_lto_finish_out): Likewise.
---
 gcc/ipa-cp.c           | 56 +++++++++++++++++++++++++++++++++--------
 gcc/ipa-devirt.c       | 24 +++++++++++-------
 gcc/ipa-inline.c       | 44 +++++++++++++++++++++++++-------
 gcc/ipa-profile.c      | 39 ++++++++++++++++++++++-------
 gcc/ipa-pure-const.c   | 39 ++++++++++++++++++++++-------
 gcc/ipa-reference.c    | 38 +++++++++++++++++++---------
 gcc/ipa.c              | 48 ++++++++++++++++++++++-------------
 gcc/lto-streamer-out.c | 68 +++++++++++++++++++++++++++++++++++++-------------
 8 files changed, 261 insertions(+), 95 deletions(-)
diff mbox

Patch

diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index c38ba82..c790241 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -3676,28 +3676,62 @@  const pass_data pass_data_ipa_cp =
   ( TODO_dump_symtab | TODO_remove_functions ), /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_cp =
+{
+  true, /* has_generate_summary */
+  true, /* has_write_summary */
+  true, /* has_read_summary */
+  true, /* has_write_optimization_summary */
+  true, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  true, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_cp : public ipa_opt_pass_d
 {
 public:
   pass_ipa_cp (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_cp, ctxt,
-		      ipcp_generate_summary, /* generate_summary */
-		      ipcp_write_summary, /* write_summary */
-		      ipcp_read_summary, /* read_summary */
-		      ipa_prop_write_all_agg_replacement, /*
-		      write_optimization_summary */
-		      ipa_prop_read_all_agg_replacement, /*
-		      read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      ipcp_transform_function, /* function_transform */
-		      NULL) /* variable_transform */
+		     ipa_pass_data_ipa_cp)
   {}
 
   /* opt_pass methods: */
   bool gate () { return cgraph_gate_cp (); }
   unsigned int execute () { return ipcp_driver (); }
 
+  /* ipa_opt_pass_d methods: */
+  void generate_summary (void)
+  {
+    ipcp_generate_summary ();
+  }
+
+  void write_summary (void)
+  {
+    ipcp_write_summary ();
+  }
+
+  void read_summary (void)
+  {
+    ipcp_read_summary ();
+  }
+
+  void write_optimization_summary (void)
+  {
+    ipa_prop_write_all_agg_replacement ();
+  }
+
+  void read_optimization_summary (void)
+  {
+    ipa_prop_read_all_agg_replacement ();
+  }
+
+  unsigned int function_transform (struct cgraph_node *node)
+  {
+    return ipcp_transform_function (node);
+  }
+
 }; // class pass_ipa_cp
 
 } // anon namespace
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 10499e1..61dc2d7 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -1160,26 +1160,32 @@  const pass_data pass_data_ipa_devirt =
   ( TODO_dump_symtab ), /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_devirt =
+{
+  false, /* has_generate_summary */
+  false, /* has_write_summary */
+  false, /* has_read_summary */
+  false, /* has_write_optimization_summary */
+  false, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  false, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_devirt : public ipa_opt_pass_d
 {
 public:
   pass_ipa_devirt (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_devirt, ctxt,
-		      NULL, /* generate_summary */
-		      NULL, /* write_summary */
-		      NULL, /* read_summary */
-		      NULL, /* write_optimization_summary */
-		      NULL, /* read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      NULL, /* function_transform */
-		      NULL) /* variable_transform */
+		     ipa_pass_data_ipa_devirt)
   {}
 
   /* opt_pass methods: */
   bool gate () { return gate_ipa_devirt (); }
   unsigned int execute () { return ipa_devirt (); }
 
+  /* ipa_opt_pass_d methods: */
 }; // class pass_ipa_devirt
 
 } // anon namespace
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 7735bb9..f51178b 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -2358,26 +2358,52 @@  const pass_data pass_data_ipa_inline =
   ( TODO_dump_symtab ), /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_inline =
+{
+  true, /* has_generate_summary */
+  true, /* has_write_summary */
+  true, /* has_read_summary */
+  false, /* has_write_optimization_summary */
+  false, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  true, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_inline : public ipa_opt_pass_d
 {
 public:
   pass_ipa_inline (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_inline, ctxt,
-		      inline_generate_summary, /* generate_summary */
-		      inline_write_summary, /* write_summary */
-		      inline_read_summary, /* read_summary */
-		      NULL, /* write_optimization_summary */
-		      NULL, /* read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      inline_transform, /* function_transform */
-		      NULL) /* variable_transform */
+		     ipa_pass_data_ipa_inline)
   {}
 
   /* opt_pass methods: */
   bool gate () { return gate_ipa_inline (); }
   unsigned int execute () { return ipa_inline (); }
 
+  /* ipa_opt_pass_d methods: */
+  void generate_summary (void)
+  {
+    inline_generate_summary ();
+  }
+
+  void write_summary (void)
+  {
+    inline_write_summary ();
+  }
+
+  void read_summary (void)
+  {
+    inline_read_summary ();
+  }
+
+  unsigned int function_transform (struct cgraph_node *node)
+  {
+    return inline_transform (node);
+  }
+
 }; // class pass_ipa_inline
 
 } // anon namespace
diff --git a/gcc/ipa-profile.c b/gcc/ipa-profile.c
index bae9aec..7790af1 100644
--- a/gcc/ipa-profile.c
+++ b/gcc/ipa-profile.c
@@ -729,26 +729,47 @@  const pass_data pass_data_ipa_profile =
   0, /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_profile =
+{
+  true, /* has_generate_summary */
+  true, /* has_write_summary */
+  true, /* has_read_summary */
+  false, /* has_write_optimization_summary */
+  false, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  false, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_profile : public ipa_opt_pass_d
 {
 public:
   pass_ipa_profile (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_profile, ctxt,
-		      ipa_profile_generate_summary, /* generate_summary */
-		      ipa_profile_write_summary, /* write_summary */
-		      ipa_profile_read_summary, /* read_summary */
-		      NULL, /* write_optimization_summary */
-		      NULL, /* read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      NULL, /* function_transform */
-		      NULL) /* variable_transform */
+		     ipa_pass_data_ipa_profile)
   {}
 
   /* opt_pass methods: */
   bool gate () { return gate_ipa_profile (); }
   unsigned int execute () { return ipa_profile (); }
 
+  /* ipa_opt_pass_d methods: */
+  void generate_summary (void)
+  {
+    ipa_profile_generate_summary ();
+  }
+
+  void write_summary (void)
+  {
+    ipa_profile_write_summary ();
+  }
+
+  void read_summary (void)
+  {
+    ipa_profile_read_summary ();
+  }
+
 }; // class pass_ipa_profile
 
 } // anon namespace
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index 85e5736..6a4d532 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -1517,26 +1517,47 @@  const pass_data pass_data_ipa_pure_const =
   0, /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_pure_const =
+{
+  true, /* has_generate_summary */
+  true, /* has_write_summary */
+  true, /* has_read_summary */
+  false, /* has_write_optimization_summary */
+  false, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  false, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_pure_const : public ipa_opt_pass_d
 {
 public:
   pass_ipa_pure_const (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_pure_const, ctxt,
-		      pure_const_generate_summary, /* generate_summary */
-		      pure_const_write_summary, /* write_summary */
-		      pure_const_read_summary, /* read_summary */
-		      NULL, /* write_optimization_summary */
-		      NULL, /* read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      NULL, /* function_transform */
-		      NULL) /* variable_transform */
+		     ipa_pass_data_ipa_pure_const)
   {}
 
   /* opt_pass methods: */
   bool gate () { return gate_pure_const (); }
   unsigned int execute () { return propagate (); }
 
+  /* ipa_opt_pass_d methods: */
+  void generate_summary (void)
+  {
+    pure_const_generate_summary ();
+  }
+
+  void write_summary (void)
+  {
+    pure_const_write_summary ();
+  }
+
+  void read_summary (void)
+  {
+    pure_const_read_summary ();
+  }
+
 }; // class pass_ipa_pure_const
 
 } // anon namespace
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index d946380..062f438 100644
--- a/gcc/ipa-reference.c
+++ b/gcc/ipa-reference.c
@@ -1171,28 +1171,42 @@  const pass_data pass_data_ipa_reference =
   0, /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_reference =
+{
+  false, /* has_generate_summary */
+  false, /* has_write_summary */
+  false, /* has_read_summary */
+  true, /* has_write_optimization_summary */
+  true, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  false, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_reference : public ipa_opt_pass_d
 {
 public:
   pass_ipa_reference (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_reference, ctxt,
-		      NULL, /* generate_summary */
-		      NULL, /* write_summary */
-		      NULL, /* read_summary */
-		      ipa_reference_write_optimization_summary, /*
-		      write_optimization_summary */
-		      ipa_reference_read_optimization_summary, /*
-		      read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      NULL, /* function_transform */
-		      NULL) /* variable_transform */
-    {}
+		     ipa_pass_data_ipa_reference)
+  {}
 
   /* opt_pass methods: */
   bool gate () { return gate_reference (); }
   unsigned int execute () { return propagate (); }
 
+  /* ipa_opt_pass_d methods: */
+  void write_optimization_summary (void)
+  {
+    ipa_reference_write_optimization_summary ();
+  }
+
+  void read_optimization_summary (void)
+  {
+    ipa_reference_read_optimization_summary ();
+  }
+
 }; // class pass_ipa_reference
 
 } // anon namespace
diff --git a/gcc/ipa.c b/gcc/ipa.c
index 92343fb2..d5fc05a 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -1224,20 +1224,25 @@  const pass_data pass_data_ipa_whole_program_visibility =
   ( TODO_remove_functions | TODO_dump_symtab ), /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_whole_program_visibility =
+{
+  false, /* has_generate_summary */
+  false, /* has_write_summary */
+  false, /* has_read_summary */
+  false, /* has_write_optimization_summary */
+  false, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  false, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_whole_program_visibility : public ipa_opt_pass_d
 {
 public:
   pass_ipa_whole_program_visibility (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_whole_program_visibility, ctxt,
-		      NULL, /* generate_summary */
-		      NULL, /* write_summary */
-		      NULL, /* read_summary */
-		      NULL, /* write_optimization_summary */
-		      NULL, /* read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      NULL, /* function_transform */
-		      NULL) /* variable_transform */
+		     ipa_pass_data_ipa_whole_program_visibility)
   {}
 
   /* opt_pass methods: */
@@ -1248,6 +1253,7 @@  public:
     return whole_program_function_and_variable_visibility ();
   }
 
+  /* ipa_opt_pass_d methods: */
 }; // class pass_ipa_whole_program_visibility
 
 } // anon namespace
@@ -1557,26 +1563,32 @@  const pass_data pass_data_ipa_cdtor_merge =
   0, /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_cdtor_merge =
+{
+  false, /* has_generate_summary */
+  false, /* has_write_summary */
+  false, /* has_read_summary */
+  false, /* has_write_optimization_summary */
+  false, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  false, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_cdtor_merge : public ipa_opt_pass_d
 {
 public:
   pass_ipa_cdtor_merge (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_cdtor_merge, ctxt,
-		      NULL, /* generate_summary */
-		      NULL, /* write_summary */
-		      NULL, /* read_summary */
-		      NULL, /* write_optimization_summary */
-		      NULL, /* read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      NULL, /* function_transform */
-		      NULL) /* variable_transform */
+		     ipa_pass_data_ipa_cdtor_merge)
   {}
 
   /* opt_pass methods: */
   bool gate () { return gate_ipa_cdtor_merge (); }
   unsigned int execute () { return ipa_cdtor_merge (); }
 
+  /* ipa_opt_pass_d methods: */
 }; // class pass_ipa_cdtor_merge
 
 } // anon namespace
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 20d8bfa..e65fed5 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -2031,25 +2031,41 @@  const pass_data pass_data_ipa_lto_gimple_out =
   0, /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_lto_gimple_out =
+{
+  false, /* has_generate_summary */
+  true, /* has_write_summary */
+  false, /* has_read_summary */
+  true, /* has_write_optimization_summary */
+  false, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  false, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_lto_gimple_out : public ipa_opt_pass_d
 {
 public:
   pass_ipa_lto_gimple_out (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_lto_gimple_out, ctxt,
-		      NULL, /* generate_summary */
-		      lto_output, /* write_summary */
-		      NULL, /* read_summary */
-		      lto_output, /* write_optimization_summary */
-		      NULL, /* read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      NULL, /* function_transform */
-		      NULL) /* variable_transform */
+		     ipa_pass_data_ipa_lto_gimple_out)
   {}
 
   /* opt_pass methods: */
   bool gate () { return gate_lto_out (); }
 
+  /* ipa_opt_pass_d methods: */
+  void write_summary (void)
+  {
+    lto_output ();
+  }
+
+  void write_optimization_summary (void)
+  {
+    lto_output ();
+  }
+
 }; // class pass_ipa_lto_gimple_out
 
 } // anon namespace
@@ -2503,25 +2519,41 @@  const pass_data pass_data_ipa_lto_finish_out =
   0, /* todo_flags_finish */
 };
 
+const ipa_pass_data ipa_pass_data_ipa_lto_finish_out =
+{
+  false, /* has_generate_summary */
+  true, /* has_write_summary */
+  false, /* has_read_summary */
+  true, /* has_write_optimization_summary */
+  false, /* has_read_optimization_summary */
+  false, /* has_stmt_fixup */
+  0, /* function_transform_todo_flags_start */
+  false, /* has_function_transform */
+  false /* has_variable_transform */
+};
+
 class pass_ipa_lto_finish_out : public ipa_opt_pass_d
 {
 public:
   pass_ipa_lto_finish_out (gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_ipa_lto_finish_out, ctxt,
-		      NULL, /* generate_summary */
-		      produce_asm_for_decls, /* write_summary */
-		      NULL, /* read_summary */
-		      produce_asm_for_decls, /* write_optimization_summary */
-		      NULL, /* read_optimization_summary */
-		      NULL, /* stmt_fixup */
-		      0, /* function_transform_todo_flags_start */
-		      NULL, /* function_transform */
-		      NULL) /* variable_transform */
+		     ipa_pass_data_ipa_lto_finish_out)
   {}
 
   /* opt_pass methods: */
   bool gate () { return gate_lto_out (); }
 
+  /* ipa_opt_pass_d methods: */
+  void write_summary (void)
+  {
+    produce_asm_for_decls ();
+  }
+
+  void write_optimization_summary (void)
+  {
+    produce_asm_for_decls ();
+  }
+
 }; // class pass_ipa_lto_finish_out
 
 } // anon namespace