1. 07 Aug, 2013 10 commits
    • configure.ac: Set need_64bit_hwint for all arm targets. · fd6eea0c
      	* configure.ac: Set need_64bit_hwint for all arm targets.
      	* configure: Regenerated.
      
      From-SVN: r201566
      Richard Earnshaw committed
    • re PR libstdc++/58098 (wrong return value of normal_distribution::min()) · a803975d
      2013-08-07  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR libstdc++/58098
      	* include/bits/random.h (cauchy_distribution<>::min,
      	extreme_value_distribution<>::min, normal_distribution<>::min,
      	student_t_distribution<>::min): Fix.
      	* include/ext/random (normal_mv_distribution<>::min): Likewise.
      	* testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
      	Adjust.
      	testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/extreme_value_distribution/cons/
      	parms.cc: Likewise.
      	testsuite/26_numerics/random/extreme_value_distribution/cons/
      	default.cc: Likewise.
      	* testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
      	Likewise.
      	* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
      	Likewise.
      	* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
      	* testsuite/ext/random/normal_mv_distribution/cons/default.cc: Likewise.
      
      	* testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
      	Minor tweak.
      	* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
      	Likewise.
      
      	* testsuite/ext/von_mises_distribution/*: Move to...
      	* testsuite/ext/random/von_mises_distribution/*: ... here.
      	* testsuite/ext/triangular_distribution/*: Move to...
      	* testsuite/ext/random/triangular_distribution/*: ... here.
      
      From-SVN: r201562
      Paolo Carlini committed
    • re PR c++/46206 (using typedef-name error with typedef name hiding struct name) · dd81965b
      /cp
      2013-08-07  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/46206
      	* name-lookup.c (lookup_name_real_1): Handle iter->type before
      	iter->value.
      
      /testsuite
      2013-08-07  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/46206
      	* g++.dg/lookup/typedef2.C: New.
      
      From-SVN: r201558
      Paolo Carlini committed
    • Commit the vtable verification feature. · 2077db1b
      Commit the vtable verification feature.  This feature is designed to
      detect, at run time, if/when the vtable pointer in a C++ object has
      been corrupted, before allowing virtual calls through that pointer. 
      If pointer corruption is detected, execution of the program is halted.
      
      libstdc++-v3 ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * fragment.am: Add XTEMPLATE_FLAGS.
              * configure.ac: Add definitions for --enable-vtable-verify.
              * acinclude.m4:  Add --enable-vtable-verify and
              --disable-vtable-verify; define --enable-vtable-verify; define
              VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS.
              * config/abi/pre/gnu.ver: Export symbols for vtable verification.
              * libsupc++/Makefile.am: Define vtv_sources and add it to
              libsupc___la_SOURCES and libsupc__convenience_la_SOURCES.
              * libsupc++/vtv_stubs.cc: New file.
              * include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS.
              * src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add
              VTV_CXXLINKFLAGS to CXXLINK.
              * src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS
              to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK.
              * src/C++11/Makefile.am: Ditto.
              * doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify.
              * scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause
              cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS.
              * testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate
              libvtv if --enable-vtable-verify was used; set cxxvtvflags; add
              cxxvtvflags to cxx_final.
              * testsuite/18_support/bad_exception/23591_thread-1.c: Add
              -fvtable-verify=none to compiler flags.
              * testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none
              to compiler flags.
              * configure: Regenerated.
              * Makefile.in: Regenerated.
              * python/Makefile.in: Regenerated.
              * include/Makefile.in: Regenerated.
              * libsupc++/Makefile.in: Regenerated.
              * config.h.in: Regenerated.
              * po/Makefile.in: Regenerated.
              * src/Makefile.in: Regenerated.
              * src/c++98/Makefile.in: Regenerated.
              * src/c++11/Makefile.in: Regenerated.
              * doc/Makefile.in: Regenerated.
              * testsuite/Makefile.in: Regenerated.
      
      top level ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * configure.ac: Add target-libvtv to target_libraries; disable libvtv
              on non-linux systems; add target-libvtv to noconfigdirs; add
              libsupc++/.libs to C++ library search paths.
              * configure: Regenerated.
              * Makefile.def: Add libvtv to target_modules; make libvtv depend on
              libstdc++ and libgcc.
              * Makefile.in: Regenerated.
      
      include/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * vtv-change-permission.h: New file.
      
      contrib/ChangeLog:
      2013-08-06  Caroline Tice4  <cmtice@google.com>
      
              * gcc_update: Add libvtv files.
      
      libgcc/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              config.host (extra_parts): Add vtv_start.o, vtv_end.o
              vtv_start_preinit.o and vtv_end_preinit.o.
              configure.ac: Add code to check/set enable_vtable_verify.
              Makefile.in: Add rules to build vtv_*.o, if enable_vtable_verify is
              true.
              vtv_start_preinit.c: New file.
              vtv_end_preinit.c: New file.
              vtv_start.c: New file.
              vtv_end.c: New file.
              configure: Regenerated.
      
      gcc/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
              (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
              * tree-pass.h: Add pass_vtable_verify.
              * varasm.c (assemble_variable): Add code to properly set the comdat
              section and name for the .vtable_map_vars section.
              (assemble_vtyv_preinit_initializer): New function.
              (default_sectin_type_flags):  Make sure .vtable_map_vars section has
              LINK_ONCE flag.
              * output.h: Add function decl for assemble_vtv_preinit_initializer.
              * vtable-verify.c: New file.
              * vtable-verify.h: New file.
              * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
              initialiation levels.
              * timevar.def (TV_VTABLE_VERIFICATION): New definition.
              * passes.def: Insert pass_vtable_verify.
              * aclocal.m4: Reorder includes.
              * doc/invoke.texi: Add documentation for the flags -fvtable-verify=,
      	-fvtv-debug and -fvtv-counts.
              * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
      as appropriate, if -fvtable-verify=... is used.
              (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
              -fvtable-verify=... is used.
              * Makefile.in (OBJS):  Add vtable-verify.o to list.
              (vtable-verify.o): Add new build rule.
              (GTFILES): Add vtable-verify.c to list.
              * common.opt (fvtable-verify=): New flag.
              (vtv_priority): Values for fvtable-verify= flag.
              (fvtv-counts): New flag.
      (fvtv-debug): New flag.
              * tree.h (save_vtable_map_decl): New extern function decl.
      
      
      gcc/cp/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * Make-lang.in (*CXX_AND_OBJCXX_OBJS):  Add vtable-class-hierarchy.o to
              list.
              (vtable-class-hierarchy.o): Add build rule.
              * cp-tree.h (vtv_start_verification_constructor_init_function): New
              extern function decl.
              (vtv_finish_verification_constructor_init_function): New extern
              function decl.
              (build_vtbl_address): New extern function decl.
              (get_mangled_vtable_map_var_name): New extern function decl.
              (vtv_compute_class_hierarchy_transitive_closure): New extern function
              decl.
              (vtv_generate_init_routine): New extern function decl.
              (vtv_save_class_info): New extern function decl.
              (vtv_recover_class_info): New extern function decl.
              (vtv_build_vtable_verify_fndecl): New extern function decl.
              * class.c (finish_struct_1): Add call to vtv_save_class_info if
              flag_vtable_verify is true.
              * config-lang.in: Add vtable-class-hierarchy.c to gtfiles list.
              * vtable-class-hierarchy.c: New file.
              * mangle.c (get_mangled_vtable_map_var_name):  New function.
              * decl2.c (start_objects): Update function comment.
              (cp_write_global_declarations): Call vtv_recover_class_info,
              vtv_compute_class_hierarchy_transitive_closure and
              vtv_build_vtable_verify_fndecl, before calling
              finalize_compilation_unit, and call vtv_generate_init_rount after, IFF
              flag_vtable_verify is true.
              (vtv_start_verification_constructor_init_function): New function.
              (vtv_finish_verification_constructor_init_function): New function.
              * init.c (build_vtbl_address): Remove static qualifier from function.
      
      libvtv/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              Initial check-in of new vtable verification feature.
              * configure.ac : New file.
              * acinclude.m4 : New file.
              * Makefile.am : New file.
              * aclocal.m4 : New file.
              * configure.tgt : New file.
              * configure: New file (generated).
              * Makefile.in: New file (generated).
              * vtv_set.h : New file.
              * vtv_utils.cc : New file.
              * vtv_utils.h : New file.
              * vtv_malloc.cc : New file.
              * vtv_rts.cc : New file.
              * vtv_malloc.h : New file.
              * vtv_rts.h : New file.
              * vtv_fail.cc : New file.
              * vtv_fail.h : New file.
              * vtv_map.h : New file.
              * scripts/run-testsuite.sh : New file.
              * scripts/sum-vtv-counts.c : New file.
              * testsuite/parts-test-main.h : New file.
              * testusite/dataentry.cc : New file.
              * testsuite/temp_deriv.cc : New file.
              * testsuite/register_pair.cc : New file.
              * testsuite/virtual_inheritance.cc : New file.
              * testsuite/field-test.cc : New file.
              * testsuite/nested_vcall_test.cc : New file.
              * testsuite/template-list-iostream.cc : New file.
              * testsuite/register_pair_inserts.cc : New file.
              * testsuite/register_pair_inserts_mt.cc : New file.
              * testsuite/event.list : New file.
              * testsuite/parts-test-extra-parts-views.cc : New file.
              * testsuite/parts-test-extra-parts-views.h : New file.
              * testsuite/environment-fail-32.s : New file.
              * testsuite/parts-test-extra-parts.h : New file.
              * testsuite/temp_deriv2.cc : New file.
              * testsuite/dlopen_mt.cc : New file.
              * testsuite/event.h : New file.
              * testsuite/template-list.cc : New file.
              * testsuite/replace-fail.cc : New file.
              * testsuite/Makefile.am : New file.
              * testsuite/Makefile.in: New file (generated).
              * testsuite/mempool_negative.c : New file.
              * testsuite/parts-test-main.cc : New file.
              * testsuite/event-private.cc : New file.
              * testsuite/thunk.cc : New file.
              * testsuite/event-defintiions.cc : New file.
              * testsuite/event-private.h : New file.
              * testsuite/parts-test.list : New file.
              * testusite/register_pair_mt.cc : New file.
              * testsuite/povray-derived.cc : New file.
              * testsuite/event-main.cc : New file.
              * testsuite/environment.cc : New file.
              * testsuite/template-list2.cc : New file.
              * testsuite/thunk_vtable_map_attack.cc : New file.
              * testsuite/parts-test-extra-parts.cc : New file.
              * testsuite/environment-fail-64.s : New file.
              * testsuite/dlopen.cc : New file.
              * testsuite/so.cc : New file.
              * testsuite/temp_deriv3.cc : New file.
              * testsuite/const_vtable.cc : New file.
              * testsuite/mempool_positive.c : New file.
              * testsuite/dup_name.cc : New file.
      
      From-SVN: r201555
      Caroline Tice committed
    • rl78.c (rl78_devirt_pass): Convert from a struct to... · 03085d1c
      2013-08-07  David Malcolm  <dmalcolm@redhat.com>
      
      	* config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
      	(pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
      	(pass_data_rl78_devirt): ...new pass_data instance and...
      	(make_pass_rl78_devirt): ...new function.
      	(rl78_asm_file_start): Port pass registration to new C++ API.
      
      From-SVN: r201553
      David Malcolm committed
    • plugin-support.exp (plugin-test-execute): Add -fno-rtti to optstr when building plugins on darwin. · d0cd8160
      2013-08-07  David Malcolm  <dmalcolm@redhat.com>
      
      	* lib/plugin-support.exp (plugin-test-execute): Add -fno-rtti
      	to optstr when building plugins on darwin.
      
      From-SVN: r201552
      David Malcolm committed
    • re PR c++/57825 (Template specialization for ref qualified member pointers) · f585f69b
      	PR c++/57825
      	* tree.c (strip_typedefs) [METHOD_TYPE]: Preserve ref-qualifier.
      
      From-SVN: r201550
      Jason Merrill committed
    • coretypes.h (rtl_opt_pass): Add. · 05555c4a
      2013-08-07  David Malcolm  <dmalcolm@redhat.com>
      
      	* coretypes.h (rtl_opt_pass): Add.
      	(gcc::context): Add.
      	* config/epiphany/epiphany.c (pass_mode_switch_use): New.
      	(epiphany_init): Port to new C++ pass API.
      	(epiphany_optimize_mode_switching): Likewise.
      	* pass_manager.h (pass_manager::get_pass_split_all_insns): New.
      	(pass_manager::get_pass_mode_switching): New.
      	(pass_manager::get_pass_peephole2): New.
      	* mode-switching.c (pass_mode_switching): Add clone method.
      	* recog.c (pass_peephole2): Add clone method.
      	(pass_split_all_insns): Add clone method.
      
      From-SVN: r201549
      David Malcolm committed
    • Daily bump. · e71835fb
      From-SVN: r201548
      GCC Administrator committed
  2. 06 Aug, 2013 11 commits
  3. 05 Aug, 2013 16 commits
    • re PR other/12081 (Gcc can't be compiled with -mregparm=3) · eb923e54
      	PR other/12081
      	* recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with	new
      	class insn_gen_fn.
      	* expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
      	rtx (*) (rtx, ...) with insn_gen_fn.
      	* genoutput.c (output_insn_data): Cast gen_? function pointers to
      	insn_gen_fn::stored_funcptr.  Add initializer braces.
      
      From-SVN: r201513
      Oleg Endo committed
    • re PR c++/58080 (internal compiler error, decltype in function declaration (for SFINAE purposes)) · fd9b0f32
      /c-family
      2013-08-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58080
      	* c-common.c (pointer_int_sum): Add bool parameter.
      	* c-common.h (pointer_int_sum): Adjust declaration.
      
      /cp
      2013-08-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58080
      	* typeck.c (cp_pointer_int_sum): Add tsubst_flags_t parameter.
      	(cp_build_binary_op): Adjust.
      
      /testsuite
      2013-08-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58080
      	* g++.dg/cpp0x/pr58080.C: New.
      
      From-SVN: r201512
      Paolo Carlini committed
    • Rewrite how instances of passes are cloned · 8ac69a6c
      gcc/
      
      	Rewrite how instances of passes are cloned to remove assumptions
      	about their sizes (thus allowing pass subclasses to have
      	additional data fields, albeit non-GC-managed ones at this point).
      
      	* passes.c (make_pass_instance): Now that passes have clone
      	methods, rewrite this function to eliminate XNEW and memcpy
      	calls that used hardcoded sizes.  Since this function no longer
      	creates pass instances, rename it to...
      	(add_pass_instance): ...this.  Document the old way that passes
      	were numbered and flagged, and rework this function to continue
      	using it.
      	(next_pass_1): Add an initial_pass argument for use by
      	add_pass_instance.
      	(position_pass): When adding multiple instances of a pass, use
      	the pass's clone method, rather than relying on the XNEW/memcpy
      	within the former make_pass_instance (now add_pass_instance).
      	(pass_manager::pass_manager): When invoking next_pass_1, also
      	supply the initial instance of the current pass within the
      	pass manager.
      
      From-SVN: r201511
      David Malcolm committed
    • Add -fno-rtti when building plugins. · 15892298
      gcc/testsuite
      
      	* lib/plugin-support.exp (plugin-test-execute): Add -fno-rtti
      	to optstr when building plugins.
      
      From-SVN: r201509
      David Malcolm committed
    • Automated conversion of passes to C++ classes · 27a4cd48
      gcc/
      
      	Patch autogenerated by refactor_passes.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
      
      	* asan.c (pass_asan): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_asan): ...new pass_data instance and...
      	(make_pass_asan): ...new function.
      	(pass_asan_O0): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_asan_O0): ...new pass_data instance and...
      	(make_pass_asan_O0): ...new function.
      	* auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_inc_dec): ...new pass_data instance and...
      	(make_pass_inc_dec): ...new function.
      	* bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_reorder_blocks): ...new pass_data instance and...
      	(make_pass_reorder_blocks): ...new function.
      	(pass_duplicate_computed_gotos): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_duplicate_computed_gotos): ...new pass_data instance and...
      	(make_pass_duplicate_computed_gotos): ...new function.
      	(pass_partition_blocks): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_partition_blocks): ...new pass_data instance and...
      	(make_pass_partition_blocks): ...new function.
      	* bt-load.c (pass_branch_target_load_optimize1): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_branch_target_load_optimize1): ...new pass_data instance
      	and...
      	(make_pass_branch_target_load_optimize1): ...new function.
      	(pass_branch_target_load_optimize2): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_branch_target_load_optimize2): ...new pass_data instance
      	and...
      	(make_pass_branch_target_load_optimize2): ...new function.
      	* cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_jump): ...new pass_data instance and...
      	(make_pass_jump): ...new function.
      	(pass_jump2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_jump2): ...new pass_data instance and...
      	(make_pass_jump2): ...new function.
      	* cfgexpand.c (pass_expand): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_expand): ...new pass_data instance and...
      	(make_pass_expand): ...new function.
      	* cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_free_cfg): ...new pass_data instance and...
      	(make_pass_free_cfg): ...new function.
      	(pass_into_cfg_layout_mode): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_into_cfg_layout_mode): ...new pass_data instance and...
      	(make_pass_into_cfg_layout_mode): ...new function.
      	(pass_outof_cfg_layout_mode): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
      	(make_pass_outof_cfg_layout_mode): ...new function.
      	* cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_build_cgraph_edges): ...new pass_data instance and...
      	(make_pass_build_cgraph_edges): ...new function.
      	(pass_rebuild_cgraph_edges): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
      	(make_pass_rebuild_cgraph_edges): ...new function.
      	(pass_remove_cgraph_callee_edges): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_remove_cgraph_callee_edges): ...new pass_data instance
      	and...
      	(make_pass_remove_cgraph_callee_edges): ...new function.
      	* combine-stack-adj.c (pass_stack_adjustments): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_stack_adjustments): ...new pass_data instance and...
      	(make_pass_stack_adjustments): ...new function.
      	* combine.c (pass_combine): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_combine): ...new pass_data instance and...
      	(make_pass_combine): ...new function.
      	* compare-elim.c (pass_compare_elim_after_reload): Convert from a
      	global struct to a subclass of rtl_opt_pass along with...
      	(pass_data_compare_elim_after_reload): ...new pass_data instance
      	and...
      	(make_pass_compare_elim_after_reload): ...new function.
      	* cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_rtl_cprop): ...new pass_data instance and...
      	(make_pass_rtl_cprop): ...new function.
      	* cse.c (pass_cse): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_cse): ...new pass_data instance and...
      	(make_pass_cse): ...new function.
      	(pass_cse2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_cse2): ...new pass_data instance and...
      	(make_pass_cse2): ...new function.
      	(pass_cse_after_global_opts): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_cse_after_global_opts): ...new pass_data instance and...
      	(make_pass_cse_after_global_opts): ...new function.
      	* dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_ud_rtl_dce): ...new pass_data instance and...
      	(make_pass_ud_rtl_dce): ...new function.
      	(pass_fast_rtl_dce): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_fast_rtl_dce): ...new pass_data instance and...
      	(make_pass_fast_rtl_dce): ...new function.
      	* df-core.c (pass_df_initialize_opt): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_df_initialize_opt): ...new pass_data instance and...
      	(make_pass_df_initialize_opt): ...new function.
      	(pass_df_initialize_no_opt): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_df_initialize_no_opt): ...new pass_data instance and...
      	(make_pass_df_initialize_no_opt): ...new function.
      	(pass_df_finish): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_df_finish): ...new pass_data instance and...
      	(make_pass_df_finish): ...new function.
      	* dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_dse1): ...new pass_data instance and...
      	(make_pass_rtl_dse1): ...new function.
      	(pass_rtl_dse2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_dse2): ...new pass_data instance and...
      	(make_pass_rtl_dse2): ...new function.
      	* dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_dwarf2_frame): ...new pass_data instance and...
      	(make_pass_dwarf2_frame): ...new function.
      	* except.c (pass_set_nothrow_function_flags): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_set_nothrow_function_flags): ...new pass_data instance
      	and...
      	(make_pass_set_nothrow_function_flags): ...new function.
      	(pass_convert_to_eh_region_ranges): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_convert_to_eh_region_ranges): ...new pass_data instance
      	and...
      	(make_pass_convert_to_eh_region_ranges): ...new function.
      	* final.c (pass_compute_alignments): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_compute_alignments): ...new pass_data instance and...
      	(make_pass_compute_alignments): ...new function.
      	(pass_final): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_final): ...new pass_data instance and...
      	(make_pass_final): ...new function.
      	(pass_shorten_branches): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_shorten_branches): ...new pass_data instance and...
      	(make_pass_shorten_branches): ...new function.
      	(pass_clean_state): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_clean_state): ...new pass_data instance and...
      	(make_pass_clean_state): ...new function.
      	* function.c (pass_instantiate_virtual_regs): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_instantiate_virtual_regs): ...new pass_data instance and...
      	(make_pass_instantiate_virtual_regs): ...new function.
      	(pass_leaf_regs): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_leaf_regs): ...new pass_data instance and...
      	(make_pass_leaf_regs): ...new function.
      	(pass_thread_prologue_and_epilogue): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_thread_prologue_and_epilogue): ...new pass_data instance
      	and...
      	(make_pass_thread_prologue_and_epilogue): ...new function.
      	(pass_match_asm_constraints): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_match_asm_constraints): ...new pass_data instance and...
      	(make_pass_match_asm_constraints): ...new function.
      	* fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_rtl_fwprop): ...new pass_data instance and...
      	(make_pass_rtl_fwprop): ...new function.
      	(pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_fwprop_addr): ...new pass_data instance and...
      	(make_pass_rtl_fwprop_addr): ...new function.
      	* gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_pre): ...new pass_data instance and...
      	(make_pass_rtl_pre): ...new function.
      	(pass_rtl_hoist): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_hoist): ...new pass_data instance and...
      	(make_pass_rtl_hoist): ...new function.
      	* gimple-low.c (pass_lower_cf): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_lower_cf): ...new pass_data instance and...
      	(make_pass_lower_cf): ...new function.
      	* gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
      	from a global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_strength_reduction): ...new pass_data instance and...
      	(make_pass_strength_reduction): ...new function.
      	* ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_rtl_ifcvt): ...new pass_data instance and...
      	(make_pass_rtl_ifcvt): ...new function.
      	(pass_if_after_combine): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_if_after_combine): ...new pass_data instance and...
      	(make_pass_if_after_combine): ...new function.
      	(pass_if_after_reload): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_if_after_reload): ...new pass_data instance and...
      	(make_pass_if_after_reload): ...new function.
      	* init-regs.c (pass_initialize_regs): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_initialize_regs): ...new pass_data instance and...
      	(make_pass_initialize_regs): ...new function.
      	* ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
      	of ipa_opt_pass_d along with...
      	(pass_data_ipa_cp): ...new pass_data instance and...
      	(make_pass_ipa_cp): ...new function.
      	* ipa-inline-analysis.c (pass_inline_parameters): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_inline_parameters): ...new pass_data instance and...
      	(make_pass_inline_parameters): ...new function.
      	* ipa-inline.c (pass_early_inline): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_early_inline): ...new pass_data instance and...
      	(make_pass_early_inline): ...new function.
      	(pass_ipa_inline): Convert from a global struct to a subclass of
      	ipa_opt_pass_d along with...
      	(pass_data_ipa_inline): ...new pass_data instance and...
      	(make_pass_ipa_inline): ...new function.
      	* ipa-pure-const.c (pass_local_pure_const): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_local_pure_const): ...new pass_data instance and...
      	(make_pass_local_pure_const): ...new function.
      	(pass_ipa_pure_const): Convert from a global struct to a subclass of
      	ipa_opt_pass_d along with...
      	(pass_data_ipa_pure_const): ...new pass_data instance and...
      	(make_pass_ipa_pure_const): ...new function.
      	* ipa-reference.c (pass_ipa_reference): Convert from a global struct
      	to a subclass of ipa_opt_pass_d along with...
      	(pass_data_ipa_reference): ...new pass_data instance and...
      	(make_pass_ipa_reference): ...new function.
      	* ipa-split.c (pass_split_functions): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_split_functions): ...new pass_data instance and...
      	(make_pass_split_functions): ...new function.
      	(pass_feedback_split_functions): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_feedback_split_functions): ...new pass_data instance and...
      	(make_pass_feedback_split_functions): ...new function.
      	* ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
      	global struct to a subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_function_and_variable_visibility): ...new pass_data
      	instance and...
      	(make_pass_ipa_function_and_variable_visibility): ...new function.
      	(pass_ipa_free_inline_summary): Convert from a global struct to a
      	subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_free_inline_summary): ...new pass_data instance and...
      	(make_pass_ipa_free_inline_summary): ...new function.
      	(pass_ipa_whole_program_visibility): Convert from a global struct to a
      	subclass of ipa_opt_pass_d along with...
      	(pass_data_ipa_whole_program_visibility): ...new pass_data instance
      	and...
      	(make_pass_ipa_whole_program_visibility): ...new function.
      	(pass_ipa_profile): Convert from a global struct to a subclass of
      	ipa_opt_pass_d along with...
      	(pass_data_ipa_profile): ...new pass_data instance and...
      	(make_pass_ipa_profile): ...new function.
      	(pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
      	ipa_opt_pass_d along with...
      	(pass_data_ipa_cdtor_merge): ...new pass_data instance and...
      	(make_pass_ipa_cdtor_merge): ...new function.
      	* ira.c (pass_ira): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_ira): ...new pass_data instance and...
      	(make_pass_ira): ...new function.
      	(pass_reload): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_reload): ...new pass_data instance and...
      	(make_pass_reload): ...new function.
      	* jump.c (pass_cleanup_barriers): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_cleanup_barriers): ...new pass_data instance and...
      	(make_pass_cleanup_barriers): ...new function.
      	* loop-init.c (pass_loop2): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_loop2): ...new pass_data instance and...
      	(make_pass_loop2): ...new function.
      	(pass_rtl_loop_init): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_loop_init): ...new pass_data instance and...
      	(make_pass_rtl_loop_init): ...new function.
      	(pass_rtl_loop_done): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_loop_done): ...new pass_data instance and...
      	(make_pass_rtl_loop_done): ...new function.
      	(pass_rtl_move_loop_invariants): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
      	(make_pass_rtl_move_loop_invariants): ...new function.
      	(pass_rtl_unswitch): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_unswitch): ...new pass_data instance and...
      	(make_pass_rtl_unswitch): ...new function.
      	(pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
      	and...
      	(make_pass_rtl_unroll_and_peel_loops): ...new function.
      	(pass_rtl_doloop): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_doloop): ...new pass_data instance and...
      	(make_pass_rtl_doloop): ...new function.
      	* lower-subreg.c (pass_lower_subreg): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_lower_subreg): ...new pass_data instance and...
      	(make_pass_lower_subreg): ...new function.
      	(pass_lower_subreg2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_lower_subreg2): ...new pass_data instance and...
      	(make_pass_lower_subreg2): ...new function.
      	* lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
      	struct to a subclass of ipa_opt_pass_d along with...
      	(pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
      	(make_pass_ipa_lto_gimple_out): ...new function.
      	(pass_ipa_lto_finish_out): Convert from a global struct to a subclass
      	of ipa_opt_pass_d along with...
      	(pass_data_ipa_lto_finish_out): ...new pass_data instance and...
      	(make_pass_ipa_lto_finish_out): ...new function.
      	* mode-switching.c (pass_mode_switching): Convert from a global struct
      	to a subclass of rtl_opt_pass along with...
      	(pass_data_mode_switching): ...new pass_data instance and...
      	(make_pass_mode_switching): ...new function.
      	* modulo-sched.c (pass_sms): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_sms): ...new pass_data instance and...
      	(make_pass_sms): ...new function.
      	* omp-low.c (pass_expand_omp): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_expand_omp): ...new pass_data instance and...
      	(make_pass_expand_omp): ...new function.
      	(pass_lower_omp): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_omp): ...new pass_data instance and...
      	(make_pass_lower_omp): ...new function.
      	(pass_diagnose_omp_blocks): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_diagnose_omp_blocks): ...new pass_data instance and...
      	(make_pass_diagnose_omp_blocks): ...new function.
      	* passes.c (pass_early_local_passes): Convert from a global struct to
      	a subclass of simple_ipa_opt_pass along with...
      	(pass_data_early_local_passes): ...new pass_data instance and...
      	(make_pass_early_local_passes): ...new function.
      	(pass_all_early_optimizations): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_all_early_optimizations): ...new pass_data instance and...
      	(make_pass_all_early_optimizations): ...new function.
      	(pass_all_optimizations): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_all_optimizations): ...new pass_data instance and...
      	(make_pass_all_optimizations): ...new function.
      	(pass_all_optimizations_g): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_all_optimizations_g): ...new pass_data instance and...
      	(make_pass_all_optimizations_g): ...new function.
      	(pass_rest_of_compilation): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_rest_of_compilation): ...new pass_data instance and...
      	(make_pass_rest_of_compilation): ...new function.
      	(pass_postreload): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_postreload): ...new pass_data instance and...
      	(make_pass_postreload): ...new function.
      	* postreload-gcse.c (pass_gcse2): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_gcse2): ...new pass_data instance and...
      	(make_pass_gcse2): ...new function.
      	* postreload.c (pass_postreload_cse): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_postreload_cse): ...new pass_data instance and...
      	(make_pass_postreload_cse): ...new function.
      	* predict.c (pass_profile): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_profile): ...new pass_data instance and...
      	(make_pass_profile): ...new function.
      	(pass_strip_predict_hints): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_strip_predict_hints): ...new pass_data instance and...
      	(make_pass_strip_predict_hints): ...new function.
      	* recog.c (pass_peephole2): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_peephole2): ...new pass_data instance and...
      	(make_pass_peephole2): ...new function.
      	(pass_split_all_insns): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_split_all_insns): ...new pass_data instance and...
      	(make_pass_split_all_insns): ...new function.
      	(pass_split_after_reload): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_split_after_reload): ...new pass_data instance and...
      	(make_pass_split_after_reload): ...new function.
      	(pass_split_before_regstack): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_split_before_regstack): ...new pass_data instance and...
      	(make_pass_split_before_regstack): ...new function.
      	(pass_split_before_sched2): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_split_before_sched2): ...new pass_data instance and...
      	(make_pass_split_before_sched2): ...new function.
      	(pass_split_for_shorten_branches): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_split_for_shorten_branches): ...new pass_data instance
      	and...
      	(make_pass_split_for_shorten_branches): ...new function.
      	* ree.c (pass_ree): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_ree): ...new pass_data instance and...
      	(make_pass_ree): ...new function.
      	* reg-stack.c (pass_stack_regs): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_stack_regs): ...new pass_data instance and...
      	(make_pass_stack_regs): ...new function.
      	(pass_stack_regs_run): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_stack_regs_run): ...new pass_data instance and...
      	(make_pass_stack_regs_run): ...new function.
      	* regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_cprop_hardreg): ...new pass_data instance and...
      	(make_pass_cprop_hardreg): ...new function.
      	* reginfo.c (pass_reginfo_init): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_reginfo_init): ...new pass_data instance and...
      	(make_pass_reginfo_init): ...new function.
      	* regmove.c (pass_regmove): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_regmove): ...new pass_data instance and...
      	(make_pass_regmove): ...new function.
      	* regrename.c (pass_regrename): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_regrename): ...new pass_data instance and...
      	(make_pass_regrename): ...new function.
      	* reorg.c (pass_delay_slots): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_delay_slots): ...new pass_data instance and...
      	(make_pass_delay_slots): ...new function.
      	(pass_machine_reorg): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_machine_reorg): ...new pass_data instance and...
      	(make_pass_machine_reorg): ...new function.
      	* sched-rgn.c (pass_sched): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_sched): ...new pass_data instance and...
      	(make_pass_sched): ...new function.
      	(pass_sched2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_sched2): ...new pass_data instance and...
      	(make_pass_sched2): ...new function.
      	* stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
      	to a subclass of rtl_opt_pass along with...
      	(pass_data_stack_ptr_mod): ...new pass_data instance and...
      	(make_pass_stack_ptr_mod): ...new function.
      	* store-motion.c (pass_rtl_store_motion): Convert from a global struct
      	to a subclass of rtl_opt_pass along with...
      	(pass_data_rtl_store_motion): ...new pass_data instance and...
      	(make_pass_rtl_store_motion): ...new function.
      	* tracer.c (pass_tracer): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_tracer): ...new pass_data instance and...
      	(make_pass_tracer): ...new function.
      	* trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_diagnose_tm_blocks): ...new pass_data instance and...
      	(make_pass_diagnose_tm_blocks): ...new function.
      	(pass_lower_tm): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_tm): ...new pass_data instance and...
      	(make_pass_lower_tm): ...new function.
      	(pass_tm_init): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tm_init): ...new pass_data instance and...
      	(make_pass_tm_init): ...new function.
      	(pass_tm_mark): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tm_mark): ...new pass_data instance and...
      	(make_pass_tm_mark): ...new function.
      	(pass_tm_edges): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tm_edges): ...new pass_data instance and...
      	(make_pass_tm_edges): ...new function.
      	(pass_tm_memopt): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tm_memopt): ...new pass_data instance and...
      	(make_pass_tm_memopt): ...new function.
      	(pass_ipa_tm): Convert from a global struct to a subclass of
      	simple_ipa_opt_pass along with...
      	(pass_data_ipa_tm): ...new pass_data instance and...
      	(make_pass_ipa_tm): ...new function.
      	* tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_call_cdce): ...new pass_data instance and...
      	(make_pass_call_cdce): ...new function.
      	* tree-cfg.c (pass_build_cfg): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_build_cfg): ...new pass_data instance and...
      	(make_pass_build_cfg): ...new function.
      	(pass_split_crit_edges): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_split_crit_edges): ...new pass_data instance and...
      	(make_pass_split_crit_edges): ...new function.
      	(pass_warn_function_return): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_warn_function_return): ...new pass_data instance and...
      	(make_pass_warn_function_return): ...new function.
      	(pass_warn_function_noreturn): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_warn_function_noreturn): ...new pass_data instance and...
      	(make_pass_warn_function_noreturn): ...new function.
      	(pass_warn_unused_result): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_warn_unused_result): ...new pass_data instance and...
      	(make_pass_warn_unused_result): ...new function.
      	* tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_merge_phi): ...new pass_data instance and...
      	(make_pass_merge_phi): ...new function.
      	* tree-complex.c (pass_lower_complex): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_lower_complex): ...new pass_data instance and...
      	(make_pass_lower_complex): ...new function.
      	(pass_lower_complex_O0): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_complex_O0): ...new pass_data instance and...
      	(make_pass_lower_complex_O0): ...new function.
      	* tree-eh.c (pass_lower_eh): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_lower_eh): ...new pass_data instance and...
      	(make_pass_lower_eh): ...new function.
      	(pass_refactor_eh): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_refactor_eh): ...new pass_data instance and...
      	(make_pass_refactor_eh): ...new function.
      	(pass_lower_resx): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_resx): ...new pass_data instance and...
      	(make_pass_lower_resx): ...new function.
      	(pass_lower_eh_dispatch): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_lower_eh_dispatch): ...new pass_data instance and...
      	(make_pass_lower_eh_dispatch): ...new function.
      	(pass_cleanup_eh): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_cleanup_eh): ...new pass_data instance and...
      	(make_pass_cleanup_eh): ...new function.
      	* tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
      	to a subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_lower_emutls): ...new pass_data instance and...
      	(make_pass_ipa_lower_emutls): ...new function.
      	* tree-if-conv.c (pass_if_conversion): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_if_conversion): ...new pass_data instance and...
      	(make_pass_if_conversion): ...new function.
      	* tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_build_ssa): ...new pass_data instance and...
      	(make_pass_build_ssa): ...new function.
      	* tree-loop-distribution.c (pass_loop_distribution): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_loop_distribution): ...new pass_data instance and...
      	(make_pass_loop_distribution): ...new function.
      	* tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_mudflap_1): ...new pass_data instance and...
      	(make_pass_mudflap_1): ...new function.
      	(pass_mudflap_2): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_mudflap_2): ...new pass_data instance and...
      	(make_pass_mudflap_2): ...new function.
      	* tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_mudflap_1): ...new pass_data instance and...
      	(make_pass_mudflap_1): ...new function.
      	(pass_mudflap_2): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_mudflap_2): ...new pass_data instance and...
      	(make_pass_mudflap_2): ...new function.
      	* tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_nrv): ...new pass_data instance and...
      	(make_pass_nrv): ...new function.
      	(pass_return_slot): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_return_slot): ...new pass_data instance and...
      	(make_pass_return_slot): ...new function.
      	* tree-object-size.c (pass_object_sizes): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_object_sizes): ...new pass_data instance and...
      	(make_pass_object_sizes): ...new function.
      	* tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
      	and...
      	(make_pass_cleanup_cfg_post_optimizing): ...new function.
      	(pass_fixup_cfg): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_fixup_cfg): ...new pass_data instance and...
      	(make_pass_fixup_cfg): ...new function.
      	* tree-pass.h (pass_mudflap_1): Replace declaration with that of...
      	(make_pass_mudflap_1): ...new function.
      	(pass_mudflap_2): Replace declaration with that of...
      	(make_pass_mudflap_2): ...new function.
      	(pass_asan): Replace declaration with that of...
      	(make_pass_asan): ...new function.
      	(pass_asan_O0): Replace declaration with that of...
      	(make_pass_asan_O0): ...new function.
      	(pass_tsan): Replace declaration with that of...
      	(make_pass_tsan): ...new function.
      	(pass_tsan_O0): Replace declaration with that of...
      	(make_pass_tsan_O0): ...new function.
      	(pass_lower_cf): Replace declaration with that of...
      	(make_pass_lower_cf): ...new function.
      	(pass_refactor_eh): Replace declaration with that of...
      	(make_pass_refactor_eh): ...new function.
      	(pass_lower_eh): Replace declaration with that of...
      	(make_pass_lower_eh): ...new function.
      	(pass_lower_eh_dispatch): Replace declaration with that of...
      	(make_pass_lower_eh_dispatch): ...new function.
      	(pass_lower_resx): Replace declaration with that of...
      	(make_pass_lower_resx): ...new function.
      	(pass_build_cfg): Replace declaration with that of...
      	(make_pass_build_cfg): ...new function.
      	(pass_early_tree_profile): Replace declaration with that of...
      	(make_pass_early_tree_profile): ...new function.
      	(pass_cleanup_eh): Replace declaration with that of...
      	(make_pass_cleanup_eh): ...new function.
      	(pass_sra): Replace declaration with that of...
      	(make_pass_sra): ...new function.
      	(pass_sra_early): Replace declaration with that of...
      	(make_pass_sra_early): ...new function.
      	(pass_early_ipa_sra): Replace declaration with that of...
      	(make_pass_early_ipa_sra): ...new function.
      	(pass_tail_recursion): Replace declaration with that of...
      	(make_pass_tail_recursion): ...new function.
      	(pass_tail_calls): Replace declaration with that of...
      	(make_pass_tail_calls): ...new function.
      	(pass_tree_loop): Replace declaration with that of...
      	(make_pass_tree_loop): ...new function.
      	(pass_tree_loop_init): Replace declaration with that of...
      	(make_pass_tree_loop_init): ...new function.
      	(pass_lim): Replace declaration with that of...
      	(make_pass_lim): ...new function.
      	(pass_tree_unswitch): Replace declaration with that of...
      	(make_pass_tree_unswitch): ...new function.
      	(pass_predcom): Replace declaration with that of...
      	(make_pass_predcom): ...new function.
      	(pass_iv_canon): Replace declaration with that of...
      	(make_pass_iv_canon): ...new function.
      	(pass_scev_cprop): Replace declaration with that of...
      	(make_pass_scev_cprop): ...new function.
      	(pass_empty_loop): Replace declaration with that of...
      	(make_pass_empty_loop): ...new function.
      	(pass_record_bounds): Replace declaration with that of...
      	(make_pass_record_bounds): ...new function.
      	(pass_graphite): Replace declaration with that of...
      	(make_pass_graphite): ...new function.
      	(pass_graphite_transforms): Replace declaration with that of...
      	(make_pass_graphite_transforms): ...new function.
      	(pass_if_conversion): Replace declaration with that of...
      	(make_pass_if_conversion): ...new function.
      	(pass_loop_distribution): Replace declaration with that of...
      	(make_pass_loop_distribution): ...new function.
      	(pass_vectorize): Replace declaration with that of...
      	(make_pass_vectorize): ...new function.
      	(pass_slp_vectorize): Replace declaration with that of...
      	(make_pass_slp_vectorize): ...new function.
      	(pass_complete_unroll): Replace declaration with that of...
      	(make_pass_complete_unroll): ...new function.
      	(pass_complete_unrolli): Replace declaration with that of...
      	(make_pass_complete_unrolli): ...new function.
      	(pass_parallelize_loops): Replace declaration with that of...
      	(make_pass_parallelize_loops): ...new function.
      	(pass_loop_prefetch): Replace declaration with that of...
      	(make_pass_loop_prefetch): ...new function.
      	(pass_iv_optimize): Replace declaration with that of...
      	(make_pass_iv_optimize): ...new function.
      	(pass_tree_loop_done): Replace declaration with that of...
      	(make_pass_tree_loop_done): ...new function.
      	(pass_ch): Replace declaration with that of...
      	(make_pass_ch): ...new function.
      	(pass_ccp): Replace declaration with that of...
      	(make_pass_ccp): ...new function.
      	(pass_phi_only_cprop): Replace declaration with that of...
      	(make_pass_phi_only_cprop): ...new function.
      	(pass_build_ssa): Replace declaration with that of...
      	(make_pass_build_ssa): ...new function.
      	(pass_build_alias): Replace declaration with that of...
      	(make_pass_build_alias): ...new function.
      	(pass_build_ealias): Replace declaration with that of...
      	(make_pass_build_ealias): ...new function.
      	(pass_dominator): Replace declaration with that of...
      	(make_pass_dominator): ...new function.
      	(pass_dce): Replace declaration with that of...
      	(make_pass_dce): ...new function.
      	(pass_dce_loop): Replace declaration with that of...
      	(make_pass_dce_loop): ...new function.
      	(pass_cd_dce): Replace declaration with that of...
      	(make_pass_cd_dce): ...new function.
      	(pass_call_cdce): Replace declaration with that of...
      	(make_pass_call_cdce): ...new function.
      	(pass_merge_phi): Replace declaration with that of...
      	(make_pass_merge_phi): ...new function.
      	(pass_split_crit_edges): Replace declaration with that of...
      	(make_pass_split_crit_edges): ...new function.
      	(pass_pre): Replace declaration with that of...
      	(make_pass_pre): ...new function.
      	(pass_profile): Replace declaration with that of...
      	(make_pass_profile): ...new function.
      	(pass_strip_predict_hints): Replace declaration with that of...
      	(make_pass_strip_predict_hints): ...new function.
      	(pass_lower_complex_O0): Replace declaration with that of...
      	(make_pass_lower_complex_O0): ...new function.
      	(pass_lower_complex): Replace declaration with that of...
      	(make_pass_lower_complex): ...new function.
      	(pass_lower_vector): Replace declaration with that of...
      	(make_pass_lower_vector): ...new function.
      	(pass_lower_vector_ssa): Replace declaration with that of...
      	(make_pass_lower_vector_ssa): ...new function.
      	(pass_lower_omp): Replace declaration with that of...
      	(make_pass_lower_omp): ...new function.
      	(pass_diagnose_omp_blocks): Replace declaration with that of...
      	(make_pass_diagnose_omp_blocks): ...new function.
      	(pass_expand_omp): Replace declaration with that of...
      	(make_pass_expand_omp): ...new function.
      	(pass_expand_omp_ssa): Replace declaration with that of...
      	(make_pass_expand_omp_ssa): ...new function.
      	(pass_object_sizes): Replace declaration with that of...
      	(make_pass_object_sizes): ...new function.
      	(pass_strlen): Replace declaration with that of...
      	(make_pass_strlen): ...new function.
      	(pass_fold_builtins): Replace declaration with that of...
      	(make_pass_fold_builtins): ...new function.
      	(pass_stdarg): Replace declaration with that of...
      	(make_pass_stdarg): ...new function.
      	(pass_early_warn_uninitialized): Replace declaration with that of...
      	(make_pass_early_warn_uninitialized): ...new function.
      	(pass_late_warn_uninitialized): Replace declaration with that of...
      	(make_pass_late_warn_uninitialized): ...new function.
      	(pass_cse_reciprocals): Replace declaration with that of...
      	(make_pass_cse_reciprocals): ...new function.
      	(pass_cse_sincos): Replace declaration with that of...
      	(make_pass_cse_sincos): ...new function.
      	(pass_optimize_bswap): Replace declaration with that of...
      	(make_pass_optimize_bswap): ...new function.
      	(pass_optimize_widening_mul): Replace declaration with that of...
      	(make_pass_optimize_widening_mul): ...new function.
      	(pass_warn_function_return): Replace declaration with that of...
      	(make_pass_warn_function_return): ...new function.
      	(pass_warn_function_noreturn): Replace declaration with that of...
      	(make_pass_warn_function_noreturn): ...new function.
      	(pass_cselim): Replace declaration with that of...
      	(make_pass_cselim): ...new function.
      	(pass_phiopt): Replace declaration with that of...
      	(make_pass_phiopt): ...new function.
      	(pass_forwprop): Replace declaration with that of...
      	(make_pass_forwprop): ...new function.
      	(pass_phiprop): Replace declaration with that of...
      	(make_pass_phiprop): ...new function.
      	(pass_tree_ifcombine): Replace declaration with that of...
      	(make_pass_tree_ifcombine): ...new function.
      	(pass_dse): Replace declaration with that of...
      	(make_pass_dse): ...new function.
      	(pass_nrv): Replace declaration with that of...
      	(make_pass_nrv): ...new function.
      	(pass_rename_ssa_copies): Replace declaration with that of...
      	(make_pass_rename_ssa_copies): ...new function.
      	(pass_sink_code): Replace declaration with that of...
      	(make_pass_sink_code): ...new function.
      	(pass_fre): Replace declaration with that of...
      	(make_pass_fre): ...new function.
      	(pass_check_data_deps): Replace declaration with that of...
      	(make_pass_check_data_deps): ...new function.
      	(pass_copy_prop): Replace declaration with that of...
      	(make_pass_copy_prop): ...new function.
      	(pass_vrp): Replace declaration with that of...
      	(make_pass_vrp): ...new function.
      	(pass_uncprop): Replace declaration with that of...
      	(make_pass_uncprop): ...new function.
      	(pass_return_slot): Replace declaration with that of...
      	(make_pass_return_slot): ...new function.
      	(pass_reassoc): Replace declaration with that of...
      	(make_pass_reassoc): ...new function.
      	(pass_rebuild_cgraph_edges): Replace declaration with that of...
      	(make_pass_rebuild_cgraph_edges): ...new function.
      	(pass_remove_cgraph_callee_edges): Replace declaration with that of...
      	(make_pass_remove_cgraph_callee_edges): ...new function.
      	(pass_build_cgraph_edges): Replace declaration with that of...
      	(make_pass_build_cgraph_edges): ...new function.
      	(pass_local_pure_const): Replace declaration with that of...
      	(make_pass_local_pure_const): ...new function.
      	(pass_tracer): Replace declaration with that of...
      	(make_pass_tracer): ...new function.
      	(pass_warn_unused_result): Replace declaration with that of...
      	(make_pass_warn_unused_result): ...new function.
      	(pass_diagnose_tm_blocks): Replace declaration with that of...
      	(make_pass_diagnose_tm_blocks): ...new function.
      	(pass_lower_tm): Replace declaration with that of...
      	(make_pass_lower_tm): ...new function.
      	(pass_tm_init): Replace declaration with that of...
      	(make_pass_tm_init): ...new function.
      	(pass_tm_mark): Replace declaration with that of...
      	(make_pass_tm_mark): ...new function.
      	(pass_tm_memopt): Replace declaration with that of...
      	(make_pass_tm_memopt): ...new function.
      	(pass_tm_edges): Replace declaration with that of...
      	(make_pass_tm_edges): ...new function.
      	(pass_split_functions): Replace declaration with that of...
      	(make_pass_split_functions): ...new function.
      	(pass_feedback_split_functions): Replace declaration with that of...
      	(make_pass_feedback_split_functions): ...new function.
      	(pass_strength_reduction): Replace declaration with that of...
      	(make_pass_strength_reduction): ...new function.
      	(pass_ipa_lower_emutls): Replace declaration with that of...
      	(make_pass_ipa_lower_emutls): ...new function.
      	(pass_ipa_function_and_variable_visibility): Replace declaration with
      	that of...
      	(make_pass_ipa_function_and_variable_visibility): ...new function.
      	(pass_ipa_tree_profile): Replace declaration with that of...
      	(make_pass_ipa_tree_profile): ...new function.
      	(pass_early_local_passes): Replace declaration with that of...
      	(make_pass_early_local_passes): ...new function.
      	(pass_ipa_whole_program_visibility): Replace declaration with that
      	of...
      	(make_pass_ipa_whole_program_visibility): ...new function.
      	(pass_ipa_lto_gimple_out): Replace declaration with that of...
      	(make_pass_ipa_lto_gimple_out): ...new function.
      	(pass_ipa_increase_alignment): Replace declaration with that of...
      	(make_pass_ipa_increase_alignment): ...new function.
      	(pass_ipa_inline): Replace declaration with that of...
      	(make_pass_ipa_inline): ...new function.
      	(pass_ipa_free_lang_data): Replace declaration with that of...
      	(make_pass_ipa_free_lang_data): ...new function.
      	(pass_ipa_free_inline_summary): Replace declaration with that of...
      	(make_pass_ipa_free_inline_summary): ...new function.
      	(pass_ipa_cp): Replace declaration with that of...
      	(make_pass_ipa_cp): ...new function.
      	(pass_ipa_reference): Replace declaration with that of...
      	(make_pass_ipa_reference): ...new function.
      	(pass_ipa_pure_const): Replace declaration with that of...
      	(make_pass_ipa_pure_const): ...new function.
      	(pass_ipa_pta): Replace declaration with that of...
      	(make_pass_ipa_pta): ...new function.
      	(pass_ipa_lto_finish_out): Replace declaration with that of...
      	(make_pass_ipa_lto_finish_out): ...new function.
      	(pass_ipa_tm): Replace declaration with that of...
      	(make_pass_ipa_tm): ...new function.
      	(pass_ipa_profile): Replace declaration with that of...
      	(make_pass_ipa_profile): ...new function.
      	(pass_ipa_cdtor_merge): Replace declaration with that of...
      	(make_pass_ipa_cdtor_merge): ...new function.
      	(pass_cleanup_cfg_post_optimizing): Replace declaration with that
      	of...
      	(make_pass_cleanup_cfg_post_optimizing): ...new function.
      	(pass_init_datastructures): Replace declaration with that of...
      	(make_pass_init_datastructures): ...new function.
      	(pass_fixup_cfg): Replace declaration with that of...
      	(make_pass_fixup_cfg): ...new function.
      	(pass_expand): Replace declaration with that of...
      	(make_pass_expand): ...new function.
      	(pass_instantiate_virtual_regs): Replace declaration with that of...
      	(make_pass_instantiate_virtual_regs): ...new function.
      	(pass_rtl_fwprop): Replace declaration with that of...
      	(make_pass_rtl_fwprop): ...new function.
      	(pass_rtl_fwprop_addr): Replace declaration with that of...
      	(make_pass_rtl_fwprop_addr): ...new function.
      	(pass_jump): Replace declaration with that of...
      	(make_pass_jump): ...new function.
      	(pass_jump2): Replace declaration with that of...
      	(make_pass_jump2): ...new function.
      	(pass_lower_subreg): Replace declaration with that of...
      	(make_pass_lower_subreg): ...new function.
      	(pass_cse): Replace declaration with that of...
      	(make_pass_cse): ...new function.
      	(pass_fast_rtl_dce): Replace declaration with that of...
      	(make_pass_fast_rtl_dce): ...new function.
      	(pass_ud_rtl_dce): Replace declaration with that of...
      	(make_pass_ud_rtl_dce): ...new function.
      	(pass_rtl_dce): Replace declaration with that of...
      	(make_pass_rtl_dce): ...new function.
      	(pass_rtl_dse1): Replace declaration with that of...
      	(make_pass_rtl_dse1): ...new function.
      	(pass_rtl_dse2): Replace declaration with that of...
      	(make_pass_rtl_dse2): ...new function.
      	(pass_rtl_dse3): Replace declaration with that of...
      	(make_pass_rtl_dse3): ...new function.
      	(pass_rtl_cprop): Replace declaration with that of...
      	(make_pass_rtl_cprop): ...new function.
      	(pass_rtl_pre): Replace declaration with that of...
      	(make_pass_rtl_pre): ...new function.
      	(pass_rtl_hoist): Replace declaration with that of...
      	(make_pass_rtl_hoist): ...new function.
      	(pass_rtl_store_motion): Replace declaration with that of...
      	(make_pass_rtl_store_motion): ...new function.
      	(pass_cse_after_global_opts): Replace declaration with that of...
      	(make_pass_cse_after_global_opts): ...new function.
      	(pass_rtl_ifcvt): Replace declaration with that of...
      	(make_pass_rtl_ifcvt): ...new function.
      	(pass_into_cfg_layout_mode): Replace declaration with that of...
      	(make_pass_into_cfg_layout_mode): ...new function.
      	(pass_outof_cfg_layout_mode): Replace declaration with that of...
      	(make_pass_outof_cfg_layout_mode): ...new function.
      	(pass_loop2): Replace declaration with that of...
      	(make_pass_loop2): ...new function.
      	(pass_rtl_loop_init): Replace declaration with that of...
      	(make_pass_rtl_loop_init): ...new function.
      	(pass_rtl_move_loop_invariants): Replace declaration with that of...
      	(make_pass_rtl_move_loop_invariants): ...new function.
      	(pass_rtl_unswitch): Replace declaration with that of...
      	(make_pass_rtl_unswitch): ...new function.
      	(pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
      	(make_pass_rtl_unroll_and_peel_loops): ...new function.
      	(pass_rtl_doloop): Replace declaration with that of...
      	(make_pass_rtl_doloop): ...new function.
      	(pass_rtl_loop_done): Replace declaration with that of...
      	(make_pass_rtl_loop_done): ...new function.
      	(pass_web): Replace declaration with that of...
      	(make_pass_web): ...new function.
      	(pass_cse2): Replace declaration with that of...
      	(make_pass_cse2): ...new function.
      	(pass_df_initialize_opt): Replace declaration with that of...
      	(make_pass_df_initialize_opt): ...new function.
      	(pass_df_initialize_no_opt): Replace declaration with that of...
      	(make_pass_df_initialize_no_opt): ...new function.
      	(pass_reginfo_init): Replace declaration with that of...
      	(make_pass_reginfo_init): ...new function.
      	(pass_inc_dec): Replace declaration with that of...
      	(make_pass_inc_dec): ...new function.
      	(pass_stack_ptr_mod): Replace declaration with that of...
      	(make_pass_stack_ptr_mod): ...new function.
      	(pass_initialize_regs): Replace declaration with that of...
      	(make_pass_initialize_regs): ...new function.
      	(pass_combine): Replace declaration with that of...
      	(make_pass_combine): ...new function.
      	(pass_if_after_combine): Replace declaration with that of...
      	(make_pass_if_after_combine): ...new function.
      	(pass_ree): Replace declaration with that of...
      	(make_pass_ree): ...new function.
      	(pass_partition_blocks): Replace declaration with that of...
      	(make_pass_partition_blocks): ...new function.
      	(pass_match_asm_constraints): Replace declaration with that of...
      	(make_pass_match_asm_constraints): ...new function.
      	(pass_regmove): Replace declaration with that of...
      	(make_pass_regmove): ...new function.
      	(pass_split_all_insns): Replace declaration with that of...
      	(make_pass_split_all_insns): ...new function.
      	(pass_fast_rtl_byte_dce): Replace declaration with that of...
      	(make_pass_fast_rtl_byte_dce): ...new function.
      	(pass_lower_subreg2): Replace declaration with that of...
      	(make_pass_lower_subreg2): ...new function.
      	(pass_mode_switching): Replace declaration with that of...
      	(make_pass_mode_switching): ...new function.
      	(pass_sms): Replace declaration with that of...
      	(make_pass_sms): ...new function.
      	(pass_sched): Replace declaration with that of...
      	(make_pass_sched): ...new function.
      	(pass_ira): Replace declaration with that of...
      	(make_pass_ira): ...new function.
      	(pass_reload): Replace declaration with that of...
      	(make_pass_reload): ...new function.
      	(pass_clean_state): Replace declaration with that of...
      	(make_pass_clean_state): ...new function.
      	(pass_branch_prob): Replace declaration with that of...
      	(make_pass_branch_prob): ...new function.
      	(pass_value_profile_transformations): Replace declaration with that
      	of...
      	(make_pass_value_profile_transformations): ...new function.
      	(pass_postreload_cse): Replace declaration with that of...
      	(make_pass_postreload_cse): ...new function.
      	(pass_gcse2): Replace declaration with that of...
      	(make_pass_gcse2): ...new function.
      	(pass_split_after_reload): Replace declaration with that of...
      	(make_pass_split_after_reload): ...new function.
      	(pass_branch_target_load_optimize1): Replace declaration with that
      	of...
      	(make_pass_branch_target_load_optimize1): ...new function.
      	(pass_thread_prologue_and_epilogue): Replace declaration with that
      	of...
      	(make_pass_thread_prologue_and_epilogue): ...new function.
      	(pass_stack_adjustments): Replace declaration with that of...
      	(make_pass_stack_adjustments): ...new function.
      	(pass_peephole2): Replace declaration with that of...
      	(make_pass_peephole2): ...new function.
      	(pass_if_after_reload): Replace declaration with that of...
      	(make_pass_if_after_reload): ...new function.
      	(pass_regrename): Replace declaration with that of...
      	(make_pass_regrename): ...new function.
      	(pass_cprop_hardreg): Replace declaration with that of...
      	(make_pass_cprop_hardreg): ...new function.
      	(pass_reorder_blocks): Replace declaration with that of...
      	(make_pass_reorder_blocks): ...new function.
      	(pass_branch_target_load_optimize2): Replace declaration with that
      	of...
      	(make_pass_branch_target_load_optimize2): ...new function.
      	(pass_leaf_regs): Replace declaration with that of...
      	(make_pass_leaf_regs): ...new function.
      	(pass_split_before_sched2): Replace declaration with that of...
      	(make_pass_split_before_sched2): ...new function.
      	(pass_compare_elim_after_reload): Replace declaration with that of...
      	(make_pass_compare_elim_after_reload): ...new function.
      	(pass_sched2): Replace declaration with that of...
      	(make_pass_sched2): ...new function.
      	(pass_stack_regs): Replace declaration with that of...
      	(make_pass_stack_regs): ...new function.
      	(pass_stack_regs_run): Replace declaration with that of...
      	(make_pass_stack_regs_run): ...new function.
      	(pass_df_finish): Replace declaration with that of...
      	(make_pass_df_finish): ...new function.
      	(pass_compute_alignments): Replace declaration with that of...
      	(make_pass_compute_alignments): ...new function.
      	(pass_duplicate_computed_gotos): Replace declaration with that of...
      	(make_pass_duplicate_computed_gotos): ...new function.
      	(pass_variable_tracking): Replace declaration with that of...
      	(make_pass_variable_tracking): ...new function.
      	(pass_free_cfg): Replace declaration with that of...
      	(make_pass_free_cfg): ...new function.
      	(pass_machine_reorg): Replace declaration with that of...
      	(make_pass_machine_reorg): ...new function.
      	(pass_cleanup_barriers): Replace declaration with that of...
      	(make_pass_cleanup_barriers): ...new function.
      	(pass_delay_slots): Replace declaration with that of...
      	(make_pass_delay_slots): ...new function.
      	(pass_split_for_shorten_branches): Replace declaration with that of...
      	(make_pass_split_for_shorten_branches): ...new function.
      	(pass_split_before_regstack): Replace declaration with that of...
      	(make_pass_split_before_regstack): ...new function.
      	(pass_convert_to_eh_region_ranges): Replace declaration with that
      	of...
      	(make_pass_convert_to_eh_region_ranges): ...new function.
      	(pass_shorten_branches): Replace declaration with that of...
      	(make_pass_shorten_branches): ...new function.
      	(pass_set_nothrow_function_flags): Replace declaration with that of...
      	(make_pass_set_nothrow_function_flags): ...new function.
      	(pass_dwarf2_frame): Replace declaration with that of...
      	(make_pass_dwarf2_frame): ...new function.
      	(pass_final): Replace declaration with that of...
      	(make_pass_final): ...new function.
      	(pass_rtl_seqabstr): Replace declaration with that of...
      	(make_pass_rtl_seqabstr): ...new function.
      	(pass_release_ssa_names): Replace declaration with that of...
      	(make_pass_release_ssa_names): ...new function.
      	(pass_early_inline): Replace declaration with that of...
      	(make_pass_early_inline): ...new function.
      	(pass_inline_parameters): Replace declaration with that of...
      	(make_pass_inline_parameters): ...new function.
      	(pass_update_address_taken): Replace declaration with that of...
      	(make_pass_update_address_taken): ...new function.
      	(pass_convert_switch): Replace declaration with that of...
      	(make_pass_convert_switch): ...new function.
      	* tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
      	to a subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_tree_profile): ...new pass_data instance and...
      	(make_pass_ipa_tree_profile): ...new function.
      	* tree-sra.c (pass_sra_early): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_sra_early): ...new pass_data instance and...
      	(make_pass_sra_early): ...new function.
      	(pass_sra): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_sra): ...new pass_data instance and...
      	(make_pass_sra): ...new function.
      	(pass_early_ipa_sra): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_early_ipa_sra): ...new pass_data instance and...
      	(make_pass_early_ipa_sra): ...new function.
      	* tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_ccp): ...new pass_data instance and...
      	(make_pass_ccp): ...new function.
      	(pass_fold_builtins): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_fold_builtins): ...new pass_data instance and...
      	(make_pass_fold_builtins): ...new function.
      	* tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_copy_prop): ...new pass_data instance and...
      	(make_pass_copy_prop): ...new function.
      	* tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_rename_ssa_copies): ...new pass_data instance and...
      	(make_pass_rename_ssa_copies): ...new function.
      	* tree-ssa-dce.c (pass_dce): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_dce): ...new pass_data instance and...
      	(make_pass_dce): ...new function.
      	(pass_dce_loop): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_dce_loop): ...new pass_data instance and...
      	(make_pass_dce_loop): ...new function.
      	(pass_cd_dce): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_cd_dce): ...new pass_data instance and...
      	(make_pass_cd_dce): ...new function.
      	* tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_dominator): ...new pass_data instance and...
      	(make_pass_dominator): ...new function.
      	(pass_phi_only_cprop): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_phi_only_cprop): ...new pass_data instance and...
      	(make_pass_phi_only_cprop): ...new function.
      	* tree-ssa-dse.c (pass_dse): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_dse): ...new pass_data instance and...
      	(make_pass_dse): ...new function.
      	* tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_forwprop): ...new pass_data instance and...
      	(make_pass_forwprop): ...new function.
      	* tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_tree_ifcombine): ...new pass_data instance and...
      	(make_pass_tree_ifcombine): ...new function.
      	* tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_ch): ...new pass_data instance and...
      	(make_pass_ch): ...new function.
      	* tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_tree_loop): ...new pass_data instance and...
      	(make_pass_tree_loop): ...new function.
      	(pass_tree_loop_init): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tree_loop_init): ...new pass_data instance and...
      	(make_pass_tree_loop_init): ...new function.
      	(pass_lim): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lim): ...new pass_data instance and...
      	(make_pass_lim): ...new function.
      	(pass_tree_unswitch): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tree_unswitch): ...new pass_data instance and...
      	(make_pass_tree_unswitch): ...new function.
      	(pass_predcom): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_predcom): ...new pass_data instance and...
      	(make_pass_predcom): ...new function.
      	(pass_vectorize): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_vectorize): ...new pass_data instance and...
      	(make_pass_vectorize): ...new function.
      	(pass_graphite): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_graphite): ...new pass_data instance and...
      	(make_pass_graphite): ...new function.
      	(pass_graphite_transforms): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_graphite_transforms): ...new pass_data instance and...
      	(make_pass_graphite_transforms): ...new function.
      	(pass_check_data_deps): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_check_data_deps): ...new pass_data instance and...
      	(make_pass_check_data_deps): ...new function.
      	(pass_iv_canon): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_iv_canon): ...new pass_data instance and...
      	(make_pass_iv_canon): ...new function.
      	(pass_scev_cprop): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_scev_cprop): ...new pass_data instance and...
      	(make_pass_scev_cprop): ...new function.
      	(pass_record_bounds): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_record_bounds): ...new pass_data instance and...
      	(make_pass_record_bounds): ...new function.
      	(pass_complete_unroll): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_complete_unroll): ...new pass_data instance and...
      	(make_pass_complete_unroll): ...new function.
      	(pass_complete_unrolli): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_complete_unrolli): ...new pass_data instance and...
      	(make_pass_complete_unrolli): ...new function.
      	(pass_parallelize_loops): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_parallelize_loops): ...new pass_data instance and...
      	(make_pass_parallelize_loops): ...new function.
      	(pass_loop_prefetch): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_loop_prefetch): ...new pass_data instance and...
      	(make_pass_loop_prefetch): ...new function.
      	(pass_iv_optimize): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_iv_optimize): ...new pass_data instance and...
      	(make_pass_iv_optimize): ...new function.
      	(pass_tree_loop_done): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tree_loop_done): ...new pass_data instance and...
      	(make_pass_tree_loop_done): ...new function.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_cse_reciprocals): ...new pass_data instance and...
      	(make_pass_cse_reciprocals): ...new function.
      	(pass_cse_sincos): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_cse_sincos): ...new pass_data instance and...
      	(make_pass_cse_sincos): ...new function.
      	(pass_optimize_bswap): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_optimize_bswap): ...new pass_data instance and...
      	(make_pass_optimize_bswap): ...new function.
      	(pass_optimize_widening_mul): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_optimize_widening_mul): ...new pass_data instance and...
      	(make_pass_optimize_widening_mul): ...new function.
      	* tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_phiopt): ...new pass_data instance and...
      	(make_pass_phiopt): ...new function.
      	(pass_cselim): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_cselim): ...new pass_data instance and...
      	(make_pass_cselim): ...new function.
      	* tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_phiprop): ...new pass_data instance and...
      	(make_pass_phiprop): ...new function.
      	* tree-ssa-pre.c (pass_pre): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_pre): ...new pass_data instance and...
      	(make_pass_pre): ...new function.
      	(pass_fre): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_fre): ...new pass_data instance and...
      	(make_pass_fre): ...new function.
      	* tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_reassoc): ...new pass_data instance and...
      	(make_pass_reassoc): ...new function.
      	* tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_sink_code): ...new pass_data instance and...
      	(make_pass_sink_code): ...new function.
      	* tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_strlen): ...new pass_data instance and...
      	(make_pass_strlen): ...new function.
      	* tree-ssa-structalias.c (pass_build_alias): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_build_alias): ...new pass_data instance and...
      	(make_pass_build_alias): ...new function.
      	(pass_build_ealias): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_build_ealias): ...new pass_data instance and...
      	(make_pass_build_ealias): ...new function.
      	(pass_ipa_pta): Convert from a global struct to a subclass of
      	simple_ipa_opt_pass along with...
      	(pass_data_ipa_pta): ...new pass_data instance and...
      	(make_pass_ipa_pta): ...new function.
      	* tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_uncprop): ...new pass_data instance and...
      	(make_pass_uncprop): ...new function.
      	* tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_late_warn_uninitialized): ...new pass_data instance and...
      	(make_pass_late_warn_uninitialized): ...new function.
      	* tree-ssa.c (pass_init_datastructures): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_init_datastructures): ...new pass_data instance and...
      	(make_pass_init_datastructures): ...new function.
      	(pass_early_warn_uninitialized): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_early_warn_uninitialized): ...new pass_data instance and...
      	(make_pass_early_warn_uninitialized): ...new function.
      	(pass_update_address_taken): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_update_address_taken): ...new pass_data instance and...
      	(make_pass_update_address_taken): ...new function.
      	* tree-ssanames.c (pass_release_ssa_names): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_release_ssa_names): ...new pass_data instance and...
      	(make_pass_release_ssa_names): ...new function.
      	* tree-stdarg.c (pass_stdarg): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_stdarg): ...new pass_data instance and...
      	(make_pass_stdarg): ...new function.
      	* tree-switch-conversion.c (pass_convert_switch): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_convert_switch): ...new pass_data instance and...
      	(make_pass_convert_switch): ...new function.
      	* tree-tailcall.c (pass_tail_recursion): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_tail_recursion): ...new pass_data instance and...
      	(make_pass_tail_recursion): ...new function.
      	(pass_tail_calls): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tail_calls): ...new pass_data instance and...
      	(make_pass_tail_calls): ...new function.
      	* tree-vect-generic.c (pass_lower_vector): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_lower_vector): ...new pass_data instance and...
      	(make_pass_lower_vector): ...new function.
      	(pass_lower_vector_ssa): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_vector_ssa): ...new pass_data instance and...
      	(make_pass_lower_vector_ssa): ...new function.
      	* tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_slp_vectorize): ...new pass_data instance and...
      	(make_pass_slp_vectorize): ...new function.
      	(pass_ipa_increase_alignment): Convert from a global struct to a
      	subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_increase_alignment): ...new pass_data instance and...
      	(make_pass_ipa_increase_alignment): ...new function.
      	* tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_vrp): ...new pass_data instance and...
      	(make_pass_vrp): ...new function.
      	* tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
      	subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_free_lang_data): ...new pass_data instance and...
      	(make_pass_ipa_free_lang_data): ...new function.
      	* tsan.c (pass_tsan): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tsan): ...new pass_data instance and...
      	(make_pass_tsan): ...new function.
      	(pass_tsan_O0): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tsan_O0): ...new pass_data instance and...
      	(make_pass_tsan_O0): ...new function.
      	* var-tracking.c (pass_variable_tracking): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_variable_tracking): ...new pass_data instance and...
      	(make_pass_variable_tracking): ...new function.
      	* web.c (pass_web): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_web): ...new pass_data instance and...
      	(make_pass_web): ...new function.
      	* config/epiphany/epiphany.h (pass_mode_switch_use): Replace
      	declaration with that of...
      	(make_pass_mode_switch_use): ...new function.
      	(pass_resolve_sw_modes): Replace declaration with that of...
      	(make_pass_resolve_sw_modes): ...new function.
      	* config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
      	from a global struct to a subclass of rtl_opt_pass along with...
      	(pass_data_mode_switch_use): ...new pass_data instance and...
      	(make_pass_mode_switch_use): ...new function.
      	* config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
      	from a global struct to a subclass of rtl_opt_pass along with...
      	(pass_data_resolve_sw_modes): ...new pass_data instance and...
      	(make_pass_resolve_sw_modes): ...new function.
      	* config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_insert_vzeroupper): ...new pass_data instance and...
      	(make_pass_insert_vzeroupper): ...new function.
      	* config/sparc/sparc.c (pass_work_around_errata): Convert from a
      	global struct to a subclass of rtl_opt_pass along with...
      	(pass_data_work_around_errata): ...new pass_data instance and...
      	(make_pass_work_around_errata): ...new function.
      	* config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_mips_machine_reorg2): ...new pass_data instance and...
      	(make_pass_mips_machine_reorg2): ...new function.
      
      gcc/testsuite/
      
      	Patch autogenerated by refactor_passes.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
      
      	* gcc.dg/plugin/one_time_plugin.c (one_pass): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_one_pass): ...new pass_data instance and...
      	(make_one_pass): ...new function.
      	* gcc.dg/plugin/selfassign.c (pass_warn_self_assign): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_warn_self_assign): ...new pass_data instance and...
      	(make_pass_warn_self_assign): ...new function.
      	* g++.dg/plugin/dumb_plugin.c (pass_dumb_plugin_example): Convert from
      	a global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_dumb_plugin_example): ...new pass_data instance and...
      	(make_pass_dumb_plugin_example): ...new function.
      	* g++.dg/plugin/selfassign.c (pass_warn_self_assign): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_warn_self_assign): ...new pass_data instance and...
      	(make_pass_warn_self_assign): ...new function.
      
      From-SVN: r201508
      David Malcolm committed
    • Zero-initialize pass_manager · 6a389ed5
      gcc/
      
      	* passes.c (pass_manager::operator new): New.
      
      From-SVN: r201506
      David Malcolm committed
    • Handwritten part of conversion of passes to C++ classes · f7695dbf
      gcc/
      	* Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
      	(toplev.o): Add dep on PASS_MANAGER_H.
      	* cgraphunit.c (cgraph_process_new_functions): Rework invocation
      	of early local pases to reflect this moving from a global to a
      	member of gcc::pass_manager.
      	(cgraph_add_new_function): Likewise.
      	* lto-cgraph.c (lto_output_node): Update for conversion of
      	struct ipa_opt_pass_d to a C++ subclass of opt_pass.
      	* passes.c (opt_pass::clone): New.
      	(opt_pass::gate): New.
      	(opt_pass::execute): New.
      	(opt_pass::opt_pass): New.
      	(pass_manager::execute_early_local_passes): New.
      	(pass_manager::execute_pass_mode_switching): new.
      	(finish_optimization_passes): Convert to...
      	(pass_manager::finish_optimization_passes): ...this.
      	(finish_optimization_passes): Update for conversion of passes to
      	C++ classes.
      	(register_dump_files_1): Use has_gate since we cannot portably
      	check a vtable entry against NULL.
      	(dump_one_pass): Likewise.
      	(ipa_write_summaries_2): Likewise.
      	(ipa_write_optimization_summaries_1): Likewise.
      	(ipa_read_summaries_1): Likewise.
      	(ipa_read_optimization_summaries_1): Likewise.
      	(execute_ipa_stmt_fixups): Likewise.
      	(pass_manager::pass_manager): Rewrite pass-creation, invoking
      	pass-creation functions rather than wiring up globals, and
      	storing the results in fields of pass_manager generated using
      	pass-instances.def.
      	(pass_manager::dump_profile_report): Update for conversion of
      	passes to C++ classes.
      	(pass_manager::execute_ipa_summary_passes): Likewise.
      	(execute_one_ipa_transform_pass): Likewise.
      	(execute_one_pass): Use has_gate and has_execute since we cannot
      	portably check a vtable entry against NULL.
      	* pass_manager.h (pass_manager::finish_optimization_passes): New.
      	(pass_manager): Use pass-instances.def to add fields for the
      	various pass instances.
      	* toplev.c (finalize): Update for move of
      	finish_optimization_passes to a method of gcc::pass_manager.
      	* toplev.h (finish_optimization_passes): Move to method of class
      	pass_manager.
      	* tree-pass.h (struct pass_data): New.
      	(opt_pass): Convert to C++ class, make it a subclass of
      	pass_data.
      	(opt_pass::gate): Convert to virtual function.
      	(opt_pass::~opt_pass): New.
      	(opt_pass::clone): New.
      	(opt_pass::execute): Convert to virtual function.
      	(opt_pass::opt_pass): New.
      	(opt_pass::ctxt_): new.
      	(gimple_opt_pass): Convert to subclass of opt_pass.
      	(gimple_opt_pass::gimple_opt_pass): New.
      	(rtl_opt_pass): Convert to subclass of opt_pass.
      	(rtl_opt_pass::rtl_opt_pass): New.
      	(ipa_opt_pass_d): Convert to subclass of opt_pass.
      	(ipa_opt_pass_d::ipa_opt_pass_d): New.
      	(simple_ipa_opt_pass): Convert to subclass of opt_pass.
      	(simple_ipa_opt_pass::simple_ipa_opt_pass): New.
      	* config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
      	invocation of pass_mode_switching to reflect this moving from a
      	global to a member of gcc::pass_manager.
      	(ix86_option_override): Rework how pass_insert_vzeroupper is
      	added to the pass_manager to reflect autogenerated changes.
      	* config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and
      	PASS_MANAGER_H.
      
      gcc/testsuite/
      	* g++.dg/plugin/dumb_plugin.c (plugin_init): Rework how the pass
      	is created and added to the pass_manager to reflect
      	autogenerated changes.
      	* g++.dg/plugin/selfassign.c (plugin_init): Likewise.
      	* gcc.dg/plugin/one_time_plugin.c (plugin_init): Likewise.
      	* gcc.dg/plugin/selfassign.c (plugin_init): Likewise.
      
      From-SVN: r201505
      David Malcolm committed
    • re PR rtl-optimization/57708 (function clobbers callee saved register on ARM) · d0b2f831
      	PR rtl-optimization/57708
      	* recog.c (peep2_find_free_register): Validate all regs in a
      	multi-reg mode.
      
      From-SVN: r201501
      Richard Earnshaw committed
    • re PR target/57792 (toplevel configure should enable "--with-sysroot="`xcrun… · 4b7dff77
      re PR target/57792 (toplevel configure should enable "--with-sysroot="`xcrun --show-sdk-path`"" for darwin13 and later)
      
      Remove:
      2013-07-10  Jack Howarth  <howarth@bromo.med.uc.edu>
      
             PR target/57792
             * configure.ac: Use --with-sysroot=\"`xcrun --show-sdk-path`\" on darwin13 and later.
             * configure: Regenerated.
      
      From-SVN: r201494
      Mike Stump committed
    • re PR lto/57602 (Runfails for several C/C++ benchmarks from spec2000 for i686… · 51a5c0c2
      re PR lto/57602 (Runfails for several C/C++ benchmarks from spec2000 for i686 with -flto after r199422)
      
      	PR lto/57602
      	* cgraph.c (verify_cgraph_node): Accept local flags from other partitions.
      	* ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
      	(function_and_variable_visibility): Likewise.
      	* trans-mem.c (ipa_tm_create_version): TM versions are not local.
      
      From-SVN: r201492
      Jan Hubicka committed
    • graph.c (init_graph_slim_pretty_print): Remove. · 65f0a120
      	* graph.c (init_graph_slim_pretty_print): Remove.
      	(print_graph_cfg): Do not call it.  Use local pretty printer.
      	(start_graph_dump): Likewise.
      
      From-SVN: r201483
      Gabriel Dos Reis committed
    • gimple-pretty-print.c (buffer): Remove. · b3f80694
      	* gimple-pretty-print.c (buffer): Remove.
      	(initialized): Likewise.
      	(maybe_init_pretty_print): Likewise.
      	(print_gimple_stmt): Do not call it.  Use non-static local
      	pretty_printer variable.
      	(print_gimple_expr): Likewise.
      	(print_gimple_seq): Likewise.
      	(gimple_dump_bb): Likewise.
      
      From-SVN: r201482
      Gabriel Dos Reis committed
    • c-pretty-print.c (print_c_tree): Simplify. · e0aec1e9
      	* c-pretty-print.c (print_c_tree): Simplify.  Use non-static local
      	c_pretty_printer variable.
      
      From-SVN: r201481
      Gabriel Dos Reis committed
    • asan.c (asan_pp): Remove. · 11a877b3
      	* asan.c (asan_pp): Remove.
      	(asan_pp_initialized): Likewise.
      	(asan_pp_initialize): Likewise.
      	(asan_pp_string): Take a pretty_printer parameter.  Adjust callers.
      	(asan_emit_stack_protection): Tidy.  Use local pretty printer.
      	(asan_add_global): Likewise.
      
      From-SVN: r201480
      Gabriel Dos Reis committed
    • pretty-print.h (pp_base): Remove. · b066401f
      	* pretty-print.h (pp_base): Remove.  Adjust dependent macros.
      	* diagnostic.h (diagnostic_flush_buffer): Adjust.
      	* pretty-print.c (pp_formatted_text_data): Likewise.
      	(pp_indent): Rename from pp_base_indent.
      	(pp_format): Rename from pp_base_format.
      	(pp_output_formatted_text): Rename from pp_base_output_formatted_text.
      	(pp_format_verbatim): Rename from pp_base_format_verbatim.
      	(pp_flush): Rename from pp_base_flush.
      	(pp_set_line_maximum_length): Rename from
      	pp_base_set_line_maximum_length.
      	(pp_clear_output_area): Rename from pp_base_clear_output_area.
      	(pp_set_prefix): Rename from pp_base_set_prefix.
      	(pp_destroy_prefix): Rename from pp_base_destroy_prefix.
      	(pp_emit_prefix): Rename from pp_base_emit_prefix.
      	(pp_append_text): Rename from pp_base_append_text.
      	(pp_formatted_text): Rename from pp_base_formatted_text.
      	(pp_last_position_in_text): Rename from pp_base_last_position_in_text.
      	(pp_remaining_character_count_for_line): Rename from
      	pp_base_remaining_character_count_for_line.
      	(pp_newline): Rename from pp_base_newline.
      	(pp_character): Rename from pp_base_character.
      	(pp_string): Rename from pp_base_string.
      	(pp_maybe_space): Rename from pp_base_maybe_space.
      	* asan.c (asan_pp_string): Adjust.
      	(asan_emit_stack_protection): Likewise.
      	(asan_add_global): Likewise.
      	* sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
      	* tree-mudflap.c (mf_varname_tree): Likewise.
      	* tree-pretty-print.c (pp_tree_identifier): Rename from
      	pp_base_tree_identifier.
      	* tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
      	Declare as function.
      
      c/
      	* c-objc-common.c (c_initialize_diagnostics): Don't call pp_base.
      
      c-family/
      	* c-pretty-print.h (c_pretty_printer): Derive from pretty_printer.
      	(pp_base): Remove.
      	(pp_c_base): Likewise.  Adjust users.
      	* c-pretty-print.c (pp_c_maybe_whitespace): Adjust.
      	(pp_c_whitespace): Do not call pp_base.
      	(pp_c_left_paren): Likewise.
      	(pp_c_right_paren): Likewise.
      	(pp_c_left_brace): Likewise.
      	(pp_c_right_brace): Likewise.
      	(pp_c_left_bracket): Likewise.
      	(pp_c_right_bracket): Likewise.
      	(pp_c_dot): Likewise.
      	(pp_c_ampersand): Likewise.
      	(pp_c_star): Likewise.
      	(pp_c_arrow): Likewise.
      	(pp_c_semicolon): Likewise.
      	(pp_c_complement): Likewise.
      	(pp_c_exclamation): Likewise.
      	(pp_c_direct_declarator): Likewise.
      	(pp_c_ws_string): Likewise.
      	(pp_c_identifier): Likewise.
      	(pp_c_statement): Likewise.
      	(print_c_tree): Likewise.
      
      cp/
      	* cxx-pretty-print.h (pp_c_base): Remove.
      	(cxx_pretty_printer): Derive from c_pretty_printer.
      	Adjust macros using pp_c_base.
      	* cp-objcp-common.c (cxx_initialize_diagnostics): Do not call pp_base.
      	* cxx-pretty-print.c (pp_cxx_nonconsecutive_character): Likewise.
      	(pp_cxx_colon_colon): Likewise.
      	(pp_cxx_separate_with): Likewise.
      	(pp_cxx_storage_class_specifier): Do not call pp_c_base.
      	(pp_cxx_expression_list): Likewise.
      	(pp_cxx_space_for_pointer_operator): Likewise.
      	(pp_cxx_init_declarator): Likewise.
      	(pp_cxx_call_argument_list): Likewise.
      	(pp_cxx_constant): Likewise.
      	(pp_cxx_postfix_expression): Likewise.
      	(pp_cxx_new_expression): Likewise.
      	(pp_cxx_unary_expression): Likewise.
      	(pp_cxx_cast_expression): Likewise.
      	(pp_cxx_conditional_expression): Likewise.
      	(pp_cxx_assignment_expression): Likewise.
      	(pp_cxx_expression): Likewise.
      	(pp_cxx_function_specifier): Likewise.
      	(pp_cxx_decl_specifier_seq): Likewise.
      	(pp_cxx_simple_type_specifier): Likewise.
      	(pp_cxx_type_specifier_seq): Likewise.
      	(pp_cxx_ptr_operator): Likewise.
      	(pp_cxx_parameter_declaration_clause): Likewise.
      	(pp_cxx_direct_declarator): Likewise.
      	(pp_cxx_direct_abstract_declarator): Likewise.
      	(pp_cxx_type_id): Likewise.
      	(pp_cxx_statement): Likewise.
      	(pp_cxx_pretty_printer_init): Tidy.
      	* error.c (init_error): Do not use pp_base.
      	(dump_aggr_type): Likewise.
      	(dump_type_prefix): Likewise.
      	(dump_type_suffix): Likewise.
      	(dump_global_iord): Likewise.
      	(dump_decl): Likewise.
      	(dump_function_decl): Likewise.
      	(dump_ref_qualifier): Likewise.
      	(reinit_cxx_pp): Likewise.
      	(decl_as_dwarf_string): Likewise.
      	(lang_decl_dwarf_name): Likewise.
      	(type_to_string): Likewise.
      	(cv_to_string): Likewise.
      	(cxx_print_error_function): Likewise.
      	(cp_diagnostic_starter): Likewise.
      	(cp_diagnostic_finalizer): Likewise.
      	(cp_print_error_function): Likewise.
      	(print_instantiation_context): Likewise.
      	(cp_printer): Likewise.
      
      From-SVN: r201479
      Gabriel Dos Reis committed
    • Daily bump. · 5edf2c60
      From-SVN: r201478
      GCC Administrator committed
  4. 04 Aug, 2013 3 commits
    • re PR c++/58072 ([C++11] Error messages involving user-defined literals are poor (refer to tokens)) · 65e5a578
      gcc/c-family:
      
      2013-08-04  Ed Smith-Rowland  <3dw4rd@verizon.net>
      
      	PR c++/58072
      	* c-common.c (c_parse_error): Catch user-defined literal tokens and
      	provide useful error strings.
      
      
      gcc/testsuite:
      
      2013-08-04  Ed Smith-Rowland  <3dw4rd@verizon.net>
      
      	PR c++/58072
      	* g++.dg/cpp0x/pr58072.C: New.
      
      From-SVN: r201475
      Ed Smith-Rowland committed
    • pretty-print.h (pp_bar_bar): New. · 137a1a27
      	* pretty-print.h (pp_bar_bar): New.
      	(pp_ampersand_ampersand): Likewise.
      	(pp_less_equal): Likewise.
      	(pp_greater_equal): Likewise.
      	* gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
      	printer functions instead of pp_string or operators and punctuators.
      	(dump_gimple_call): Likewise.
      	(dump_gimple_omp_for): Likewise.
      	(dump_gimple_transaction): Likewise.
      	(dump_gimple_phi): Likewise.
      	(pp_gimple_stmt_1): Likewise.
      	* sched-vis.c (print_insn): Likewise.
      	* tree-mudflap.c (mf_varname_tree): Likewise.
      	* tree-pretty-print.c (dump_block_node): Likewise.
      	(dump_generic_node): Likewise.
      
      c-family/ 
      	* c-ada-spec.c (pp_ada_tree_identifier): Use specialized pretty
      	printer functions instead of pp_string or operators and punctuators.
      	(dump_generic_ada_node): Likewise.
      	* c-pretty-print.c (pp_c_type_specifier): Likewise.
      	(pp_c_relational_expression): Likewise.
      	(pp_c_logical_or_expression): Likewise.
      
      cp/
      	* error.c (dump_type_prefix): Use specialized pretty printer
      	functions instead of pp_string or operators and punctuators.
      	(dump_decl): Likewise.
      	(dump_expr): Likewise.
      
      From-SVN: r201474
      Gabriel Dos Reis committed
    • Daily bump. · 8ee9fbe1
      From-SVN: r201473
      GCC Administrator committed