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 --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 -- 1.7.11.7