+2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org>
+
+ revert:
+ * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
+ gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
+ ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
+ omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
+ tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
+ tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
+ tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
+ tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
+ vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
+
2015-08-12 Max Filippov <jcmvbkbc@gmail.com>
* config/xtensa/constraints.md (define_constraint "Y"): New
return 0;
}
-static const pass_data pass_data_compare_elim_after_reload =
+namespace {
+
+const pass_data pass_data_compare_elim_after_reload =
{
RTL_PASS, /* type */
"cmpelim", /* name */
( TODO_df_finish | TODO_df_verify ), /* todo_flags_finish */
};
-class pass_compare_elim_after_reload GCC_FINAL : public rtl_opt_pass
+class pass_compare_elim_after_reload : public rtl_opt_pass
{
public:
pass_compare_elim_after_reload (gcc::context *ctxt)
}; // class pass_compare_elim_after_reload
+} // anon namespace
+
rtl_opt_pass *
make_pass_compare_elim_after_reload (gcc::context *ctxt)
{
}
-static const pass_data pass_data_ud_rtl_dce =
+namespace {
+
+const pass_data pass_data_ud_rtl_dce =
{
RTL_PASS, /* type */
"ud_dce", /* name */
TODO_df_finish, /* todo_flags_finish */
};
-class pass_ud_rtl_dce GCC_FINAL : public rtl_opt_pass
+class pass_ud_rtl_dce : public rtl_opt_pass
{
public:
pass_ud_rtl_dce (gcc::context *ctxt)
}; // class pass_ud_rtl_dce
+} // anon namespace
+
rtl_opt_pass *
make_pass_ud_rtl_dce (gcc::context *ctxt)
{
}
-static const pass_data pass_data_fast_rtl_dce =
+namespace {
+
+const pass_data pass_data_fast_rtl_dce =
{
RTL_PASS, /* type */
"rtl_dce", /* name */
TODO_df_finish, /* todo_flags_finish */
};
-class pass_fast_rtl_dce GCC_FINAL : public rtl_opt_pass
+class pass_fast_rtl_dce : public rtl_opt_pass
{
public:
pass_fast_rtl_dce (gcc::context *ctxt)
}; // class pass_fast_rtl_dce
+} // anon namespace
+
rtl_opt_pass *
make_pass_fast_rtl_dce (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_rtl_dse1 =
+namespace {
+
+const pass_data pass_data_rtl_dse1 =
{
RTL_PASS, /* type */
"dse1", /* name */
TODO_df_finish, /* todo_flags_finish */
};
-class pass_rtl_dse1 GCC_FINAL : public rtl_opt_pass
+class pass_rtl_dse1 : public rtl_opt_pass
{
public:
pass_rtl_dse1 (gcc::context *ctxt)
}; // class pass_rtl_dse1
+} // anon namespace
+
rtl_opt_pass *
make_pass_rtl_dse1 (gcc::context *ctxt)
{
return new pass_rtl_dse1 (ctxt);
}
-static const pass_data pass_data_rtl_dse2 =
+namespace {
+
+const pass_data pass_data_rtl_dse2 =
{
RTL_PASS, /* type */
"dse2", /* name */
TODO_df_finish, /* todo_flags_finish */
};
-class pass_rtl_dse2 GCC_FINAL : public rtl_opt_pass
+class pass_rtl_dse2 : public rtl_opt_pass
{
public:
pass_rtl_dse2 (gcc::context *ctxt)
}; // class pass_rtl_dse2
+} // anon namespace
+
rtl_opt_pass *
make_pass_rtl_dse2 (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_isolate_erroneous_paths =
+namespace {
+const pass_data pass_data_isolate_erroneous_paths =
{
GIMPLE_PASS, /* type */
"isolate-paths", /* name */
0, /* todo_flags_finish */
};
-class pass_isolate_erroneous_paths GCC_FINAL : public gimple_opt_pass
+class pass_isolate_erroneous_paths : public gimple_opt_pass
{
public:
pass_isolate_erroneous_paths (gcc::context *ctxt)
}
}; // class pass_isolate_erroneous_paths
+}
gimple_opt_pass *
make_pass_isolate_erroneous_paths (gcc::context *ctxt)
}
}
-static const pass_data pass_data_strength_reduction =
+namespace {
+
+const pass_data pass_data_strength_reduction =
{
GIMPLE_PASS, /* type */
"slsr", /* name */
0, /* todo_flags_finish */
};
-class pass_strength_reduction GCC_FINAL : public gimple_opt_pass
+class pass_strength_reduction : public gimple_opt_pass
{
public:
pass_strength_reduction (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_strength_reduction (gcc::context *ctxt)
{
return flag_graphite != 0;
}
-static const pass_data pass_data_graphite =
+namespace {
+
+const pass_data pass_data_graphite =
{
GIMPLE_PASS, /* type */
"graphite0", /* name */
0, /* todo_flags_finish */
};
-class pass_graphite GCC_FINAL : public gimple_opt_pass
+class pass_graphite : public gimple_opt_pass
{
public:
pass_graphite (gcc::context *ctxt)
}; // class pass_graphite
+} // anon namespace
+
gimple_opt_pass *
make_pass_graphite (gcc::context *ctxt)
{
return new pass_graphite (ctxt);
}
-static const pass_data pass_data_graphite_transforms =
+namespace {
+
+const pass_data pass_data_graphite_transforms =
{
GIMPLE_PASS, /* type */
"graphite", /* name */
0, /* todo_flags_finish */
};
-class pass_graphite_transforms GCC_FINAL : public gimple_opt_pass
+class pass_graphite_transforms : public gimple_opt_pass
{
public:
pass_graphite_transforms (gcc::context *ctxt)
}; // class pass_graphite_transforms
+} // anon namespace
+
gimple_opt_pass *
make_pass_graphite_transforms (gcc::context *ctxt)
{
BITMAP_FREE (already_genned);
}
-static const pass_data pass_data_initialize_regs =
+namespace {
+
+const pass_data pass_data_initialize_regs =
{
RTL_PASS, /* type */
"init-regs", /* name */
TODO_df_finish, /* todo_flags_finish */
};
-class pass_initialize_regs GCC_FINAL : public rtl_opt_pass
+class pass_initialize_regs : public rtl_opt_pass
{
public:
pass_initialize_regs (gcc::context *ctxt)
}; // class pass_initialize_regs
+} // anon namespace
+
rtl_opt_pass *
make_pass_initialize_regs (gcc::context *ctxt)
{
static bool gate_pure_const (void);
-static const pass_data pass_data_ipa_pure_const =
+namespace {
+
+const pass_data pass_data_ipa_pure_const =
{
IPA_PASS, /* type */
"pure-const", /* name */
0, /* todo_flags_finish */
};
-class pass_ipa_pure_const GCC_FINAL : public ipa_opt_pass_d
+class pass_ipa_pure_const : public ipa_opt_pass_d
{
public:
pass_ipa_pure_const(gcc::context *ctxt);
}; // class pass_ipa_pure_const
+} // anon namespace
+
/* Try to guess if function body will always be visible to compiler
when compiling the call and whether compiler will be able
to propagate the information by itself. */
ipa_pure_const. This pass is effective when executed together with
other optimization passes in early optimization pass queue. */
-static const pass_data pass_data_local_pure_const =
+namespace {
+
+const pass_data pass_data_local_pure_const =
{
GIMPLE_PASS, /* type */
"local-pure-const", /* name */
0, /* todo_flags_finish */
};
-class pass_local_pure_const GCC_FINAL : public gimple_opt_pass
+class pass_local_pure_const : public gimple_opt_pass
{
public:
pass_local_pure_const (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_local_pure_const (gcc::context *ctxt)
{
/* Emit noreturn warnings. */
-static const pass_data pass_data_warn_function_noreturn =
+namespace {
+
+const pass_data pass_data_warn_function_noreturn =
{
GIMPLE_PASS, /* type */
"*warn_function_noreturn", /* name */
0, /* todo_flags_finish */
};
-class pass_warn_function_noreturn GCC_FINAL : public gimple_opt_pass
+class pass_warn_function_noreturn : public gimple_opt_pass
{
public:
pass_warn_function_noreturn (gcc::context *ctxt)
}; // class pass_warn_function_noreturn
+} // anon namespace
+
gimple_opt_pass *
make_pass_warn_function_noreturn (gcc::context *ctxt)
{
ipa_pure_const. This pass is effective when executed together with
other optimization passes in early optimization pass queue. */
-static const pass_data pass_data_nothrow =
+namespace {
+
+const pass_data pass_data_nothrow =
{
GIMPLE_PASS, /* type */
"nothrow", /* name */
0, /* todo_flags_finish */
};
-class pass_nothrow GCC_FINAL : public gimple_opt_pass
+class pass_nothrow : public gimple_opt_pass
{
public:
pass_nothrow (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_nothrow (gcc::context *ctxt)
{
/* Local function pass handling visibilities. This happens before LTO streaming
so in particular -fwhole-program should be ignored at this level. */
-static const pass_data pass_data_ipa_function_and_variable_visibility =
+namespace {
+
+const pass_data pass_data_ipa_function_and_variable_visibility =
{
SIMPLE_IPA_PASS, /* type */
"visibility", /* name */
return 0;
}
-static const pass_data pass_data_ipa_whole_program_visibility =
+} // anon namespace
+
+namespace {
+
+const pass_data pass_data_ipa_whole_program_visibility =
{
IPA_PASS, /* type */
"whole-program", /* name */
( TODO_remove_functions | TODO_dump_symtab ), /* todo_flags_finish */
};
-class pass_ipa_whole_program_visibility GCC_FINAL : public ipa_opt_pass_d
+class pass_ipa_whole_program_visibility : public ipa_opt_pass_d
{
public:
pass_ipa_whole_program_visibility (gcc::context *ctxt)
}; // class pass_ipa_whole_program_visibility
+} // anon namespace
+
ipa_opt_pass_d *
make_pass_ipa_whole_program_visibility (gcc::context *ctxt)
{
/* Free inline summary. */
-static const pass_data pass_data_ipa_free_inline_summary =
+namespace {
+
+const pass_data pass_data_ipa_free_inline_summary =
{
SIMPLE_IPA_PASS, /* type */
"free-inline-summary", /* name */
( TODO_remove_functions | TODO_dump_symtab ), /* todo_flags_finish */
};
-class pass_ipa_free_inline_summary GCC_FINAL : public simple_ipa_opt_pass
+class pass_ipa_free_inline_summary : public simple_ipa_opt_pass
{
public:
pass_ipa_free_inline_summary (gcc::context *ctxt)
}; // class pass_ipa_free_inline_summary
+} // anon namespace
+
simple_ipa_opt_pass *
make_pass_ipa_free_inline_summary (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_ipa_cdtor_merge =
+namespace {
+
+const pass_data pass_data_ipa_cdtor_merge =
{
IPA_PASS, /* type */
"cdtor", /* name */
0, /* todo_flags_finish */
};
-class pass_ipa_cdtor_merge GCC_FINAL : public ipa_opt_pass_d
+class pass_ipa_cdtor_merge : public ipa_opt_pass_d
{
public:
pass_ipa_cdtor_merge (gcc::context *ctxt)
return !targetm.have_ctors_dtors || (optimize && in_lto_p);
}
+} // anon namespace
+
ipa_opt_pass_d *
make_pass_ipa_cdtor_merge (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_ipa_single_use =
+namespace {
+
+const pass_data pass_data_ipa_single_use =
{
IPA_PASS, /* type */
"single-use", /* name */
0, /* todo_flags_finish */
};
-class pass_ipa_single_use GCC_FINAL : public ipa_opt_pass_d
+class pass_ipa_single_use : public ipa_opt_pass_d
{
public:
pass_ipa_single_use (gcc::context *ctxt)
return optimize;
}
+} // anon namespace
+
ipa_opt_pass_d *
make_pass_ipa_single_use (gcc::context *ctxt)
{
#endif /* OPTIMIZE_MODE_SWITCHING */
\f
-static const pass_data pass_data_mode_switching =
+namespace {
+
+const pass_data pass_data_mode_switching =
{
RTL_PASS, /* type */
"mode_sw", /* name */
TODO_df_finish, /* todo_flags_finish */
};
-class pass_mode_switching GCC_FINAL : public rtl_opt_pass
+class pass_mode_switching : public rtl_opt_pass
{
public:
pass_mode_switching (gcc::context *ctxt)
}; // class pass_mode_switching
+} // anon namespace
+
rtl_opt_pass *
make_pass_mode_switching (gcc::context *ctxt)
{
/* OMP expansion -- the default pass, run before creation of SSA form. */
-static const pass_data pass_data_expand_omp =
+namespace {
+
+const pass_data pass_data_expand_omp =
{
GIMPLE_PASS, /* type */
"ompexp", /* name */
0, /* todo_flags_finish */
};
-class pass_expand_omp GCC_FINAL : public gimple_opt_pass
+class pass_expand_omp : public gimple_opt_pass
{
public:
pass_expand_omp (gcc::context *ctxt)
}; // class pass_expand_omp
+} // anon namespace
+
gimple_opt_pass *
make_pass_expand_omp (gcc::context *ctxt)
{
return new pass_expand_omp (ctxt);
}
-static const pass_data pass_data_expand_omp_ssa =
+namespace {
+
+const pass_data pass_data_expand_omp_ssa =
{
GIMPLE_PASS, /* type */
"ompexpssa", /* name */
TODO_cleanup_cfg | TODO_rebuild_alias, /* todo_flags_finish */
};
-class pass_expand_omp_ssa GCC_FINAL : public gimple_opt_pass
+class pass_expand_omp_ssa : public gimple_opt_pass
{
public:
pass_expand_omp_ssa (gcc::context *ctxt)
}; // class pass_expand_omp_ssa
+} // anon namespace
+
gimple_opt_pass *
make_pass_expand_omp_ssa (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_lower_omp =
+namespace {
+
+const pass_data pass_data_lower_omp =
{
GIMPLE_PASS, /* type */
"omplower", /* name */
0, /* todo_flags_finish */
};
-class pass_lower_omp GCC_FINAL : public gimple_opt_pass
+class pass_lower_omp : public gimple_opt_pass
{
public:
pass_lower_omp (gcc::context *ctxt)
}; // class pass_lower_omp
+} // anon namespace
+
gimple_opt_pass *
make_pass_lower_omp (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_diagnose_omp_blocks =
+namespace {
+
+const pass_data pass_data_diagnose_omp_blocks =
{
GIMPLE_PASS, /* type */
"*diagnose_omp_blocks", /* name */
0, /* todo_flags_finish */
};
-class pass_diagnose_omp_blocks GCC_FINAL : public gimple_opt_pass
+class pass_diagnose_omp_blocks : public gimple_opt_pass
{
public:
pass_diagnose_omp_blocks (gcc::context *ctxt)
}; // class pass_diagnose_omp_blocks
+} // anon namespace
+
gimple_opt_pass *
make_pass_diagnose_omp_blocks (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_omp_simd_clone =
+namespace {
+
+const pass_data pass_data_omp_simd_clone =
{
SIMPLE_IPA_PASS, /* type */
"simdclone", /* name */
0, /* todo_flags_finish */
};
-class pass_omp_simd_clone GCC_FINAL : public simple_ipa_opt_pass
+class pass_omp_simd_clone : public simple_ipa_opt_pass
{
public:
pass_omp_simd_clone(gcc::context *ctxt)
&& (targetm.simd_clone.compute_vecsize_and_simdlen != NULL));
}
+} // anon namespace
+
simple_ipa_opt_pass *
make_pass_omp_simd_clone (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_delay_slots =
+namespace {
+
+const pass_data pass_data_delay_slots =
{
RTL_PASS, /* type */
"dbr", /* name */
0, /* todo_flags_finish */
};
-class pass_delay_slots GCC_FINAL : public rtl_opt_pass
+class pass_delay_slots : public rtl_opt_pass
{
public:
pass_delay_slots (gcc::context *ctxt)
#endif
}
+} // anon namespace
+
rtl_opt_pass *
make_pass_delay_slots (gcc::context *ctxt)
{
/* Machine dependent reorg pass. */
-static const pass_data pass_data_machine_reorg =
+namespace {
+
+const pass_data pass_data_machine_reorg =
{
RTL_PASS, /* type */
"mach", /* name */
0, /* todo_flags_finish */
};
-class pass_machine_reorg GCC_FINAL : public rtl_opt_pass
+class pass_machine_reorg : public rtl_opt_pass
{
public:
pass_machine_reorg (gcc::context *ctxt)
}; // class pass_machine_reorg
+} // anon namespace
+
rtl_opt_pass *
make_pass_machine_reorg (gcc::context *ctxt)
{
/* Perform optimization of sanitize functions. */
-static const pass_data pass_data_sanopt =
+namespace {
+
+const pass_data pass_data_sanopt =
{
GIMPLE_PASS, /* type */
"sanopt", /* name */
TODO_update_ssa, /* todo_flags_finish */
};
-class pass_sanopt GCC_FINAL : public gimple_opt_pass
+class pass_sanopt : public gimple_opt_pass
{
public:
pass_sanopt (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_sanopt (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_diagnose_tm_blocks =
+namespace {
+
+const pass_data pass_data_diagnose_tm_blocks =
{
GIMPLE_PASS, /* type */
"*diagnose_tm_blocks", /* name */
0, /* todo_flags_finish */
};
-class pass_diagnose_tm_blocks GCC_FINAL : public gimple_opt_pass
+class pass_diagnose_tm_blocks : public gimple_opt_pass
{
public:
pass_diagnose_tm_blocks (gcc::context *ctxt)
}; // class pass_diagnose_tm_blocks
+} // anon namespace
+
gimple_opt_pass *
make_pass_diagnose_tm_blocks (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_lower_tm =
+namespace {
+
+const pass_data pass_data_lower_tm =
{
GIMPLE_PASS, /* type */
"tmlower", /* name */
0, /* todo_flags_finish */
};
-class pass_lower_tm GCC_FINAL : public gimple_opt_pass
+class pass_lower_tm : public gimple_opt_pass
{
public:
pass_lower_tm (gcc::context *ctxt)
}; // class pass_lower_tm
+} // anon namespace
+
gimple_opt_pass *
make_pass_lower_tm (gcc::context *ctxt)
{
return true;
}
-static const pass_data pass_data_tm_init =
+namespace {
+
+const pass_data pass_data_tm_init =
{
GIMPLE_PASS, /* type */
"*tminit", /* name */
0, /* todo_flags_finish */
};
-class pass_tm_init GCC_FINAL : public gimple_opt_pass
+class pass_tm_init : public gimple_opt_pass
{
public:
pass_tm_init (gcc::context *ctxt)
}; // class pass_tm_init
+} // anon namespace
+
gimple_opt_pass *
make_pass_tm_init (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_tm_mark =
+namespace {
+
+const pass_data pass_data_tm_mark =
{
GIMPLE_PASS, /* type */
"tmmark", /* name */
TODO_update_ssa, /* todo_flags_finish */
};
-class pass_tm_mark GCC_FINAL : public gimple_opt_pass
+class pass_tm_mark : public gimple_opt_pass
{
public:
pass_tm_mark (gcc::context *ctxt)
}; // class pass_tm_mark
+} // anon namespace
+
gimple_opt_pass *
make_pass_tm_mark (gcc::context *ctxt)
{
/* Entry point to the final expansion of transactional nodes. */
-static const pass_data pass_data_tm_edges =
+namespace {
+
+const pass_data pass_data_tm_edges =
{
GIMPLE_PASS, /* type */
"tmedge", /* name */
TODO_update_ssa, /* todo_flags_finish */
};
-class pass_tm_edges GCC_FINAL : public gimple_opt_pass
+class pass_tm_edges : public gimple_opt_pass
{
public:
pass_tm_edges (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_tm_edges (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_tm_memopt =
+namespace {
+
+const pass_data pass_data_tm_memopt =
{
GIMPLE_PASS, /* type */
"tmmemopt", /* name */
0, /* todo_flags_finish */
};
-class pass_tm_memopt GCC_FINAL : public gimple_opt_pass
+class pass_tm_memopt : public gimple_opt_pass
{
public:
pass_tm_memopt (gcc::context *ctxt)
}; // class pass_tm_memopt
+} // anon namespace
+
gimple_opt_pass *
make_pass_tm_memopt (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_ipa_tm =
+namespace {
+
+const pass_data pass_data_ipa_tm =
{
SIMPLE_IPA_PASS, /* type */
"tmipa", /* name */
0, /* todo_flags_finish */
};
-class pass_ipa_tm GCC_FINAL : public simple_ipa_opt_pass
+class pass_ipa_tm : public simple_ipa_opt_pass
{
public:
pass_ipa_tm (gcc::context *ctxt)
}; // class pass_ipa_tm
+} // anon namespace
+
simple_ipa_opt_pass *
make_pass_ipa_tm (gcc::context *ctxt)
{
lower_eh_constructs_2 (state, &gsi);
}
-static const pass_data pass_data_lower_eh =
+namespace {
+
+const pass_data pass_data_lower_eh =
{
GIMPLE_PASS, /* type */
"eh", /* name */
0, /* todo_flags_finish */
};
-class pass_lower_eh GCC_FINAL : public gimple_opt_pass
+class pass_lower_eh : public gimple_opt_pass
{
public:
pass_lower_eh (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_lower_eh (gcc::context *ctxt)
{
}
}
-static const pass_data pass_data_refactor_eh =
+namespace {
+
+const pass_data pass_data_refactor_eh =
{
GIMPLE_PASS, /* type */
"ehopt", /* name */
0, /* todo_flags_finish */
};
-class pass_refactor_eh GCC_FINAL : public gimple_opt_pass
+class pass_refactor_eh : public gimple_opt_pass
{
public:
pass_refactor_eh (gcc::context *ctxt)
}; // class pass_refactor_eh
+} // anon namespace
+
gimple_opt_pass *
make_pass_refactor_eh (gcc::context *ctxt)
{
return ret;
}
-static const pass_data pass_data_lower_resx =
+namespace {
+
+const pass_data pass_data_lower_resx =
{
GIMPLE_PASS, /* type */
"resx", /* name */
0, /* todo_flags_finish */
};
-class pass_lower_resx GCC_FINAL : public gimple_opt_pass
+class pass_lower_resx : public gimple_opt_pass
{
public:
pass_lower_resx (gcc::context *ctxt)
return any_rewritten ? TODO_update_ssa_only_virtuals : 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_lower_resx (gcc::context *ctxt)
{
return redirected;
}
-static const pass_data pass_data_lower_eh_dispatch =
+namespace {
+
+const pass_data pass_data_lower_eh_dispatch =
{
GIMPLE_PASS, /* type */
"ehdisp", /* name */
0, /* todo_flags_finish */
};
-class pass_lower_eh_dispatch GCC_FINAL : public gimple_opt_pass
+class pass_lower_eh_dispatch : public gimple_opt_pass
{
public:
pass_lower_eh_dispatch (gcc::context *ctxt)
return flags;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_lower_eh_dispatch (gcc::context *ctxt)
{
return 0;
}
-static const pass_data pass_data_cleanup_eh =
+namespace {
+
+const pass_data pass_data_cleanup_eh =
{
GIMPLE_PASS, /* type */
"ehcleanup", /* name */
0, /* todo_flags_finish */
};
-class pass_cleanup_eh GCC_FINAL : public gimple_opt_pass
+class pass_cleanup_eh : public gimple_opt_pass
{
public:
pass_cleanup_eh (gcc::context *ctxt)
return ret;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_cleanup_eh (gcc::context *ctxt)
{
/* Tree if-conversion pass management. */
-static const pass_data pass_data_if_conversion =
+namespace {
+
+const pass_data pass_data_if_conversion =
{
GIMPLE_PASS, /* type */
"ifcvt", /* name */
0, /* todo_flags_finish */
};
-class pass_if_conversion GCC_FINAL : public gimple_opt_pass
+class pass_if_conversion : public gimple_opt_pass
{
public:
pass_if_conversion (gcc::context *ctxt)
return todo;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_if_conversion (gcc::context *ctxt)
{
}
-static const pass_data pass_data_rename_ssa_copies =
+namespace {
+
+const pass_data pass_data_rename_ssa_copies =
{
GIMPLE_PASS, /* type */
"copyrename", /* name */
0, /* todo_flags_finish */
};
-class pass_rename_ssa_copies GCC_FINAL : public gimple_opt_pass
+class pass_rename_ssa_copies : public gimple_opt_pass
{
public:
pass_rename_ssa_copies (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_rename_ssa_copies (gcc::context *ctxt)
{
return perform_tree_ssa_dce (/*aggressive=*/optimize >= 2);
}
-static const pass_data pass_data_dce =
+namespace {
+
+const pass_data pass_data_dce =
{
GIMPLE_PASS, /* type */
"dce", /* name */
0, /* todo_flags_finish */
};
-class pass_dce GCC_FINAL : public gimple_opt_pass
+class pass_dce : public gimple_opt_pass
{
public:
pass_dce (gcc::context *ctxt)
}; // class pass_dce
+} // anon namespace
+
gimple_opt_pass *
make_pass_dce (gcc::context *ctxt)
{
return new pass_dce (ctxt);
}
-static const pass_data pass_data_cd_dce =
+namespace {
+
+const pass_data pass_data_cd_dce =
{
GIMPLE_PASS, /* type */
"cddce", /* name */
0, /* todo_flags_finish */
};
-class pass_cd_dce GCC_FINAL : public gimple_opt_pass
+class pass_cd_dce : public gimple_opt_pass
{
public:
pass_cd_dce (gcc::context *ctxt)
}; // class pass_cd_dce
+} // anon namespace
+
gimple_opt_pass *
make_pass_cd_dce (gcc::context *ctxt)
{
every new symbol exposed, its corresponding bit will be set in
VARS_TO_RENAME. */
-static const pass_data pass_data_dominator =
+namespace {
+
+const pass_data pass_data_dominator =
{
GIMPLE_PASS, /* type */
"dom", /* name */
( TODO_cleanup_cfg | TODO_update_ssa ), /* todo_flags_finish */
};
-class pass_dominator GCC_FINAL : public gimple_opt_pass
+class pass_dominator : public gimple_opt_pass
{
public:
pass_dominator (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_dominator (gcc::context *ctxt)
{
}
}
-static const pass_data pass_data_dse =
+namespace {
+
+const pass_data pass_data_dse =
{
GIMPLE_PASS, /* type */
"dse", /* name */
0, /* todo_flags_finish */
};
-class pass_dse GCC_FINAL : public gimple_opt_pass
+class pass_dse : public gimple_opt_pass
{
public:
pass_dse (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_dse (gcc::context *ctxt)
{
/* Main entry point for the forward propagation and statement combine
optimizer. */
-static const pass_data pass_data_forwprop =
+namespace {
+
+const pass_data pass_data_forwprop =
{
GIMPLE_PASS, /* type */
"forwprop", /* name */
TODO_update_ssa, /* todo_flags_finish */
};
-class pass_forwprop GCC_FINAL : public gimple_opt_pass
+class pass_forwprop : public gimple_opt_pass
{
public:
pass_forwprop (gcc::context *ctxt)
return todoflags;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_forwprop (gcc::context *ctxt)
{
Note that this reduces the number of computations of a = b + c to 1
when we take the else edge, instead of 2.
*/
-static const pass_data pass_data_sink_code =
+namespace {
+
+const pass_data pass_data_sink_code =
{
GIMPLE_PASS, /* type */
"sink", /* name */
TODO_update_ssa, /* todo_flags_finish */
};
-class pass_sink_code GCC_FINAL : public gimple_opt_pass
+class pass_sink_code : public gimple_opt_pass
{
public:
pass_sink_code (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_sink_code (gcc::context *ctxt)
{
version namespace. This is used to keep footprint of compiler during
interprocedural optimization. */
-static const pass_data pass_data_release_ssa_names =
+namespace {
+
+const pass_data pass_data_release_ssa_names =
{
GIMPLE_PASS, /* type */
"release_ssa", /* name */
0, /* todo_flags_finish */
};
-class pass_release_ssa_names GCC_FINAL : public gimple_opt_pass
+class pass_release_ssa_names : public gimple_opt_pass
{
public:
pass_release_ssa_names (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_release_ssa_names (gcc::context *ctxt)
{
#endif
}
-static const pass_data pass_data_stdarg =
+namespace {
+
+const pass_data pass_data_stdarg =
{
GIMPLE_PASS, /* type */
"stdarg", /* name */
0, /* todo_flags_finish */
};
-class pass_stdarg GCC_FINAL : public gimple_opt_pass
+class pass_stdarg : public gimple_opt_pass
{
public:
pass_stdarg (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_stdarg (gcc::context *ctxt)
{
return new pass_stdarg (ctxt);
}
-static const pass_data pass_data_lower_vaarg =
+namespace {
+
+const pass_data pass_data_lower_vaarg =
{
GIMPLE_PASS, /* type */
"lower_vaarg", /* name */
0, /* todo_flags_finish */
};
-class pass_lower_vaarg GCC_FINAL : public gimple_opt_pass
+class pass_lower_vaarg : public gimple_opt_pass
{
public:
pass_lower_vaarg (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_lower_vaarg (gcc::context *ctxt)
{
return tree_optimize_tail_calls_1 (true);
}
-static const pass_data pass_data_tail_recursion =
+namespace {
+
+const pass_data pass_data_tail_recursion =
{
GIMPLE_PASS, /* type */
"tailr", /* name */
0, /* todo_flags_finish */
};
-class pass_tail_recursion GCC_FINAL : public gimple_opt_pass
+class pass_tail_recursion : public gimple_opt_pass
{
public:
pass_tail_recursion (gcc::context *ctxt)
}; // class pass_tail_recursion
+} // anon namespace
+
gimple_opt_pass *
make_pass_tail_recursion (gcc::context *ctxt)
{
return new pass_tail_recursion (ctxt);
}
-static const pass_data pass_data_tail_calls =
+namespace {
+
+const pass_data pass_data_tail_calls =
{
GIMPLE_PASS, /* type */
"tailc", /* name */
0, /* todo_flags_finish */
};
-class pass_tail_calls GCC_FINAL : public gimple_opt_pass
+class pass_tail_calls : public gimple_opt_pass
{
public:
pass_tail_calls (gcc::context *ctxt)
}; // class pass_tail_calls
+} // anon namespace
+
gimple_opt_pass *
make_pass_tail_calls (gcc::context *ctxt)
{
return cfg_changed ? TODO_cleanup_cfg : 0;
}
-static const pass_data pass_data_lower_vector =
+namespace {
+
+const pass_data pass_data_lower_vector =
{
GIMPLE_PASS, /* type */
"veclower", /* name */
TODO_update_ssa, /* todo_flags_finish */
};
-class pass_lower_vector GCC_FINAL : public gimple_opt_pass
+class pass_lower_vector : public gimple_opt_pass
{
public:
pass_lower_vector (gcc::context *ctxt)
}; // class pass_lower_vector
+} // anon namespace
+
gimple_opt_pass *
make_pass_lower_vector (gcc::context *ctxt)
{
return new pass_lower_vector (ctxt);
}
-static const pass_data pass_data_lower_vector_ssa =
+namespace {
+
+const pass_data pass_data_lower_vector_ssa =
{
GIMPLE_PASS, /* type */
"veclower2", /* name */
| TODO_cleanup_cfg ), /* todo_flags_finish */
};
-class pass_lower_vector_ssa GCC_FINAL : public gimple_opt_pass
+class pass_lower_vector_ssa : public gimple_opt_pass
{
public:
pass_lower_vector_ssa (gcc::context *ctxt)
}; // class pass_lower_vector_ssa
+} // anon namespace
+
gimple_opt_pass *
make_pass_lower_vector_ssa (gcc::context *ctxt)
{
}
-static const pass_data pass_data_ipa_free_lang_data =
+namespace {
+
+const pass_data pass_data_ipa_free_lang_data =
{
SIMPLE_IPA_PASS, /* type */
"*free_lang_data", /* name */
0, /* todo_flags_finish */
};
-class pass_ipa_free_lang_data GCC_FINAL : public simple_ipa_opt_pass
+class pass_ipa_free_lang_data : public simple_ipa_opt_pass
{
public:
pass_ipa_free_lang_data (gcc::context *ctxt)
}; // class pass_ipa_free_lang_data
+} // anon namespace
+
simple_ipa_opt_pass *
make_pass_ipa_free_lang_data (gcc::context *ctxt)
{
DECL_ATTRIBUTES (current_function_decl)));
}
-static const pass_data pass_data_ubsan =
+namespace {
+
+const pass_data pass_data_ubsan =
{
GIMPLE_PASS, /* type */
"ubsan", /* name */
TODO_update_ssa, /* todo_flags_finish */
};
-class pass_ubsan GCC_FINAL : public gimple_opt_pass
+class pass_ubsan : public gimple_opt_pass
{
public:
pass_ubsan (gcc::context *ctxt)
return 0;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_ubsan (gcc::context *ctxt)
{
return ret;
}
\f
-static const pass_data pass_data_variable_tracking =
+namespace {
+
+const pass_data pass_data_variable_tracking =
{
RTL_PASS, /* type */
"vartrack", /* name */
0, /* todo_flags_finish */
};
-class pass_variable_tracking GCC_FINAL : public rtl_opt_pass
+class pass_variable_tracking : public rtl_opt_pass
{
public:
pass_variable_tracking (gcc::context *ctxt)
}; // class pass_variable_tracking
+} // anon namespace
+
rtl_opt_pass *
make_pass_variable_tracking (gcc::context *ctxt)
{
/* Definition of this optimization pass. */
-static const pass_data pass_data_vtable_verify =
+namespace {
+
+const pass_data pass_data_vtable_verify =
{
GIMPLE_PASS, /* type */
"vtable-verify", /* name */
TODO_update_ssa, /* todo_flags_finish */
};
-class pass_vtable_verify GCC_FINAL : public gimple_opt_pass
+class pass_vtable_verify : public gimple_opt_pass
{
public:
pass_vtable_verify (gcc::context *ctxt)
return ret;
}
+} // anon namespace
+
gimple_opt_pass *
make_pass_vtable_verify (gcc::context *ctxt)
{
}
\f
-static const pass_data pass_data_web =
+namespace {
+
+const pass_data pass_data_web =
{
RTL_PASS, /* type */
"web", /* name */
TODO_df_finish, /* todo_flags_finish */
};
-class pass_web GCC_FINAL : public rtl_opt_pass
+class pass_web : public rtl_opt_pass
{
public:
pass_web (gcc::context *ctxt)
return 0;
}
\f
+} // anon namespace
+
rtl_opt_pass *
make_pass_web (gcc::context *ctxt)
{