mips.md (prefetch): Use lw instead of ld on loongson in 32bit mode.
2013-08-13 Steve Ellcey <sellcey@mips.com>
* config/mips/mips.md (prefetch): Use lw instead of ld on
loongson in 32bit mode.
From-SVN: r201691
* config.gcc: (avr-linux): Allow for tmake_file not being empty.
From-SVN: r201690
* config.host <mips*-*-linux*>: Remove a stray comment.
From-SVN: r201689
* gcc.dg/pr57980.c: Use vector of two elements, not just one.
From-SVN: r201686
cgraph.c (cgraph_turn_edge_to_speculative): Return newly introduced edge; fix typo in sanity check.
* cgraph.c (cgraph_turn_edge_to_speculative): Return newly
introduced edge; fix typo in sanity check.
(cgraph_resolve_speculation): Export; improve diagnostic.
(cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
speculation at type mismatch.
* cgraph.h (cgraph_turn_edge_to_speculative): Update.
(cgraph_resolve_speculation): Declare.
(symtab_can_be_discarded): New function.
* value-prof.c (gimple_ic_transform): Remove actual transform code.
* ipa-inline-transform.c (speculation_removed): New global var.
(clone_inlined_nodes): See if speculation can be removed.
(inline_call): If speculations was removed, we growths may not match.
* ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
(speculation_useful_p): New function.
(resolve_noninline_speculation): New function.
(inline_small_functions): Resolve useless speculations.
* ipa-inline.h (speculation_useful_p): Declare
* ipa.c (can_replace_by_local_alias): Simplify.
(ipa_profile): Produce speculative calls in non-lto, too;
add simple cost model; produce local aliases.
From-SVN: r201683
utils2.c (build_atomic_load): Do a mere view-conversion to the original type before converting to the result type.
* gcc-interface/utils2.c (build_atomic_load): Do a mere view-conversion
to the original type before converting to the result type.
(build_atomic_store): First do a conversion to the original type before
view-converting to the effective type, but deal with a padded type
specially.
From-SVN: r201682
Example of converting global state to per-pass state.
gcc/testsuite
2013-08-13 David Malcolm <dmalcolm@redhat.com>
Example of converting global state to per-pass state.
* gcc.dg/plugin/one_time_plugin.c (one_pass::execute): Convert
global state "static int counter" to...
(one_pass::counter): ...this instance data.
From-SVN: r201681
one_time_plugin.c: (one_pass_gate): Convert to member function...
gcc/testsuite
2013-08-13 David Malcolm <dmalcolm@redhat.com>
* gcc.dg/plugin/one_time_plugin.c: (one_pass_gate): Convert
to member function...
(one_pass::gate): ...this.
(one_pass_exec): Convert to member function...
(one_pass::impl_execute): ...this.
From-SVN: r201680
Daily bump.
From-SVN: r201678
* pt.c: Grammar fix in comments ("it's" to "its").
From-SVN: r201674
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r201673
re PR c++/57416 (internal compiler error: in gimple_expand_cfg, at cfgexpand.c:4575)
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57416
* g++.dg/cpp0x/pr57416.C: New.
From-SVN: r201672
i386.c (ix86_function_versions): Use error + inform.
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
* config/i386/i386.c (ix86_function_versions): Use error + inform.
/cp
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
* decl.c (warn_extern_redeclared_static, duplicate_decls,
check_elaborated_type_specifier): Use error + inform.
* friend.c (make_friend_class): Likewise.
* semantics.c (finish_id_expression): Likewise.
/testsuite
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp0x/constexpr-function2.C: Adjust for error -> inform
changes.
* g++.dg/cpp0x/constexpr-neg1.C: Likewise.
* g++.dg/cpp0x/defaulted2.C: Likewise.
* g++.dg/cpp0x/defaulted31.C: Likewise.
* g++.dg/cpp0x/error6.C: Likewise.
* g++.dg/cpp0x/gen-attrs-32.C: Likewise.
* g++.dg/cpp0x/override2.C: Likewise.
* g++.dg/cpp0x/parse1.C: Likewise.
* g++.dg/cpp0x/scoped_enum.C: Likewise.
* g++.dg/cpp0x/temp_default4.C: Likewise.
* g++.dg/ext/attrib32.C: Likewise.
* g++.dg/ext/gnu-inline-global-reject.C: Likewise.
* g++.dg/ext/mv13.C: Likewise.
* g++.dg/ext/mv7.C: Likewise.
* g++.dg/ext/mv9.C: Likewise.
* g++.dg/ext/pr57362.C: Likewise.
* g++.dg/ext/typeof10.C: Likewise.
* g++.dg/lookup/anon6.C: Likewise.
* g++.dg/lookup/crash6.C: Likewise.
* g++.dg/lookup/name-clash5.C: Likewise.
* g++.dg/lookup/name-clash6.C: Likewise.
* g++.dg/other/anon4.C: Likewise.
* g++.dg/other/error15.C: Likewise.
* g++.dg/other/error8.C: Likewise.
* g++.dg/other/redecl2.C: Likewise.
* g++.dg/parse/crash16.C: Likewise.
* g++.dg/parse/crash21.C: Likewise.
* g++.dg/parse/crash38.C: Likewise.
* g++.dg/parse/redef2.C: Likewise.
* g++.dg/parse/struct-as-enum1.C: Likewise.
* g++.dg/template/crash39.C: Likewise.
* g++.dg/template/redecl3.C: Likewise.
* g++.dg/tls/diag-3.C: Likewise.
* g++.dg/warn/Wredundant-decls-spec.C: Likewise.
* g++.old-deja/g++.benjamin/typedef01.C: Likewise.
* g++.old-deja/g++.benjamin/warn02.C: Likewise.
* g++.old-deja/g++.brendan/crash16.C: Likewise.
* g++.old-deja/g++.brendan/crash18.C: Likewise.
* g++.old-deja/g++.brendan/err-msg4.C: Likewise.
* g++.old-deja/g++.brendan/redecl1.C: Likewise.
* g++.old-deja/g++.brendan/static3.C: Likewise.
* g++.old-deja/g++.bugs/900127_02.C: Likewise.
* g++.old-deja/g++.jason/binding.C: Likewise.
* g++.old-deja/g++.jason/crash4.C: Likewise.
* g++.old-deja/g++.jason/crash7.C: Likewise.
* g++.old-deja/g++.jason/lineno.C: Likewise.
* g++.old-deja/g++.jason/scoping7.C: Likewise.
* g++.old-deja/g++.mike/misc3.C: Likewise.
* g++.old-deja/g++.mike/net44.C: Likewise.
* g++.old-deja/g++.mike/ns3.C: Likewise.
* g++.old-deja/g++.ns/alias4.C: Likewise.
* g++.old-deja/g++.ns/ns11.C: Likewise.
* g++.old-deja/g++.other/crash23.C: Likewise.
* g++.old-deja/g++.other/decl8.C: Likewise.
* g++.old-deja/g++.other/linkage3.C: Likewise.
* g++.old-deja/g++.other/typeck1.C: Likewise.
* g++.old-deja/g++.other/typedef5.C: Likewise.
* g++.old-deja/g++.pt/explicit34.C: Likewise.
* g++.old-deja/g++.pt/friend36.C: Likewise.
* obj-c++.dg/method-8.mm: Likewise.
* obj-c++.dg/tls/diag-3.mm: Likewise.
From-SVN: r201671
Updating my information in MAINTAINERS.
From-SVN: r201669
* config.gcc (m32r-linux): Allow for tmake_file not being empty.
From-SVN: r201664
i386.md (floatunssi<mode>2 expand): Add new expand for QI/HImode operand to produce more effictive code for...
* config/i386/i386.md (floatunssi<mode>2 expand): Add new
expand for QI/HImode operand to produce more effictive code for
unsigned char(short) --> float(double) conversion.
From-SVN: r201663
* doc/invoke.texi: Mention that -ftls-model does not force the final model.
From-SVN: r201661
re PR tree-optimization/57980 (gcc 4.8.1 -foptimize-sibling-calls -O1 ICE in build_int_cst_wide, at tree.c:1210)
PR tree-optimization/57980
Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r201660
Fix typo.
From-SVN: r201659
re PR fortran/56666 (Suppression flag for " DO loop at (1) will be executed zero times")
2013-08-12 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/56666
* gfortran.h (gfc_option_t): Add warn_zerotrip.
* invoke.texi (-Wzerotrip): Document option.
* lang.opt (Wzerotrip): Add.
* options.c (gfc_init_options): Initialize warn_zerotrip.
(set_Wall): Add handling of warn_zerotrip.
(gfc_handle_option): Handle OPT_Wzerotrip.
* resolve.c (gfc_resolve_iterator): Honor
gfc_option.warn_zerotrip; update error message to show
how to suppress the warning.
2013-08-12 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/56666
* gfortran.dg/do_check_10.f90: New test.
* gfortran.dg/array_constructor_11.f90: Add -Wzerotrip to dg-options.
* gfortran.dg/array_constructor_18.f90: Likewise.
* gfortran.dg/array_constructor_22.f90: Likewise.
* gfortran.dg/coarray_15.f90: Likewise.
* gfortran.dg/do_1.f90: Add -Wall to dg-options.
* gfortran.dg/do_3.F90: Add -Wzerotrip to dg-options.
* gfortran.dg/do_check_5.f90: Add -Wall to gd-options.
From-SVN: r201658
Daily bump.
From-SVN: r201657
re PR c++/53349 (Internal compiler error with constexpr and recursive data type)
2013-08-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53349
* g++.dg/cpp0x/constexpr-ice8.C: New.
From-SVN: r201654
Daily bump.
From-SVN: r201651
* cgraph.c (cgraph_create_edge_1): Clear speculative flag.
From-SVN: r201646
MAINTAINERS (Write After Approval): Update email.
2013-08-09 Carlos O'Donell <carlos@redhat.com>
* MAINTAINERS (Write After Approval): Update email.
From-SVN: r201644
Daily bump.
From-SVN: r201643
* ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
From-SVN: r201640
cgraph.c (cgraph_resolve_speculation): Cut frequency to CGRAPH_FREQ_MAX.
* cgraph.c (cgraph_resolve_speculation): Cut frequency to
CGRAPH_FREQ_MAX.
(dump_cgraph_node): Dump profile-id.
* cgraph.h (cgraph_indirect_call_info): Add common_target_id
and common_target_probability.
* lto-cgraph.c (lto_output_edge): Stream common targets.
(lto_output_node): Stream profile ids.
(input_node): Stream profile ids.
(input_edge): Stream common targets.
* lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
* ipa.c: Include value-prof.h
(ipa_profile_generate_summary): Turn indirect call statement histograms
into common targets.
(ipa_profile): Turn common targets into speculative edges.
* gcc.dg/tree-prof/crossmodule-indircall-1.c: New testcase.
* gcc.dg/tree-prof/crossmodule-indircall-1a.c: New testcase.
From-SVN: r201639
lower-subreg-1.c: Skip aarch64*-*-*.
gcc/testsuite/
* gcc.dg/lower-subreg-1.c: Skip aarch64*-*-*.
From-SVN: r201636
gfortran.h (gfc_get_code): Modified prototype.
2013-08-09 Janus Weil <janus@gcc.gnu.org>
* gfortran.h (gfc_get_code): Modified prototype.
* class.c (finalize_component, finalization_scalarizer,
finalization_get_offset, finalizer_insert_packed_call,
generate_finalization_wrapper, gfc_find_derived_vtab,
gfc_find_intrinsic_vtab): Use 'gfc_get_code'.
* io.c (match_io_iterator, match_io_element, terminate_io, get_io_list,
gfc_match_inquire): Call 'gfc_get_code' with argument.
* match.c (match_simple_forall, gfc_match_forall, gfc_match_goto,
gfc_match_nullify, gfc_match_call, match_simple_where, gfc_match_where):
Ditto.
* parse.c (new_level): Ditto.
(add_statement): Use XCNEW.
* resolve.c (resolve_entries, resolve_allocate_expr,
resolve_select_type, build_assignment, build_init_assign): Call
'gfc_get_code' with argument.
* st.c (gfc_get_code): Add argument 'op'.
* trans-expr.c (gfc_trans_class_array_init_assign): Call 'gfc_get_code'
with argument.
* trans-stmt.c (gfc_trans_allocate): Ditto.
From-SVN: r201635
cgraph.h (cgraph_node): Add profile_id.
* cgraph.h (cgraph_node): Add profile_id.
* value-prof.c (cgraph_node_map): Turn into pointer_map.
(init_node_map): Rewrite to handle hashes increas of incremental
IDs.
(del_node_map): Update.
(find_func_by_funcdef_no): Replace by ...
(find_func_by_profile_id): ... this one.
(gimple_ic_transform): Do not remove useful histograms when
speculation is not done; dump info when indirect call removal
can happen at LTO.
* value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
* gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
(__gcov_indirect_call_profiler_v2): .. this one.
* profile.h (init_node_map): Update.
* coverage.c (coverage_compute_profile_id): New function.
* coverage.h (coverage_compute_profile_id): Declare.
* tree-profile.c (init_ic_make_global_vars): Make
__gcov_indirect_call_callee and __gcov_indirect_call_counters global.
(gimple_init_edge_profiler): Update prototype of
__gcov_indirect_call_profiler.
(gimple_gen_ic_func_profiler): Simplify.
(tree_profiling): Use init_node_map
From-SVN: r201634
cgraphbuild.c (cgraph_rebuild_references): Rebuild only non-speculative refs.
* cgraphbuild.c (cgraph_rebuild_references): Rebuild only non-speculative
refs.
* cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
(cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
(cgraph_set_call_stmt): Likewise.
(cgraph_create_edge_1): Fix release checking compilatoin;
clear lto_stmt_uid.
(cgraph_free_edge): Free indirect info.
(cgraph_turn_edge_to_speculative): New function.
(cgraph_speculative_call_info): New function.
(cgraph_make_edge_direct): Return direct edge; handle speculation.
(cgraph_redirect_edge_call_stmt_to_callee): Expand speculative
edges.
(dump_cgraph_node): Dump speculation.
(verify_edge_count_and_frequency): Accept speculative edges.
(verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
(verify_cgraph_node): Handle speculation.
* cgraph.h (cgraph_edge): Add SPECULATIVE flag.
(cgraph_set_call_stmt): Update prototype.
(cgraph_make_edge_direct): Update prototype.
(cgraph_speculative_call_info): Declare.
* ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
to change; update call of ipa_find_references.
* ipa-ref.c (ipa_record_reference): Fix return value; clear
lto_stmt_uid and speculative flags.
(ipa_dump_references): Dump speculation.
(ipa_clone_references): Clone speculative flag.
(ipa_clone_referring): Likewise.
(ipa_clone_ref): New function.
(ipa_find_reference): Look into lto_stmt_uids
(ipa_clear_stmts_in_references): Do not clear speculative calls.
* ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
(ipa_find_reference): Update declaration.
(ipa_clone_ref): Declare.
* lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
stream speculative flag.
(lto_output_ref): Stream statements uids and speculation.
(input_ref): Likewise.
(input_edge): Stream speuclation.
* cgraphclones.c (cgraph_clone_edge): Clone speculation.
(cgraph_set_call_stmt_including_clones): Handle speculation.
* ipa-inline.c (heap_edge_removal_hook): New function.
(inline_small_functions): Register it.
* lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
also initialize refs.
* ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
edge to change.
(try_make_edge_direct_simple_call): Likewise.
(try_make_edge_direct_simple_call): Likewise.
(update_indirect_edges_after_inlining): Likewise.
(remove_described_reference): Look proper lto_stmt_uid.
(propagate_controlled_uses): Likewise.
(propagate_controlled_uses): Liekwise.
* tree-inline.c (copy_bb): Copy speculative edges.
(redirect_all_calls): New function.
(copy_cfg_body): Do redirection after loop info
is updated.
(delete_unreachable_blocks_update_callgraph): Updadte
speculation.
From-SVN: r201632
revert: re PR c++/46206 (using typedef-name error with typedef name hiding struct name)
/cp
2013-08-09 Paolo Carlini <paolo.carlini@oracle.com>
Revert:
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-09 Paolo Carlini <paolo.carlini@oracle.com>
Revert:
2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/46206
* g++.dg/lookup/typedef2.C: New.
From-SVN: r201629
lto-streamer-out.c (output_function): Renumber PHIs.
* lto-streamer-out.c (output_function): Renumber PHIs.
* lto-streamer-in.c (input_function): Likewise.
From-SVN: r201627
configure.ac: Add GAS check for LEON instructions on SPARC.
* configure.ac: Add GAS check for LEON instructions on SPARC.
* configure: Regenerate.
* config.in: Likewise.
* config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
sparc*-*-* block.
* config/sparc/sparc.opt (LEON, LEON3): New masks.
* config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
for LEON or LEON3.
(ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
(AS_LEON_FLAG): New macro.
* config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
Deal with LEON and LEON3 for the memory model.
* config/sparc/sync.m (atomic_compare_and_swap<mode>): Enable for LEON3
(atomic_compare_and_swap<mode>_1): Likewise.
(*atomic_compare_and_swap<mode>_1): Likewise.
From-SVN: r201622
regex_constants.h: Change syntax_option_type to enum type.
2013-08-09 Tim Shen <timshen91@gmail.com>
* include/bits/regex_constants.h: Change syntax_option_type to enum
type.
From-SVN: r201621
ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.
From-SVN: r201619
neon.md (vcond): Fix floating-point vector comparisons against 0.
ChangeLog:
2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
* config/arm/neon.md (vcond): Fix floating-point vector
comparisons against 0.
testsuite/ChangeLog:
2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
* gcc.target/arm/lp1189445.c: New testcase.
From-SVN: r201618
configure.ac: Adjust to check VTV_SUPPORTED.
2013-08-08 Benjamin Kosnik <bkoz@redhat.com>
* configure.ac: Adjust to check VTV_SUPPORTED.
* configure: Regenerated.
From-SVN: r201617
configure.tgt: Simplify, just use VTV_SUPPORTED.
gcc
2013-08-08 Benjamin Kosnik <bkoz@rehat.com>
Michael Meissner <meissner@linux.vnet.ibm.com>
* configure.tgt : Simplify, just use VTV_SUPPORTED.
gcc/libvtv
2013-08-08 Benjamin Kosnik <bkoz@redhat.com>
* configure.ac: Adjust to check VTV_SUPPORTED.
* configure: Regenerated.
From-SVN: r201616
Daily bump.
From-SVN: r201614
lra-constraints.c (emit_spill_move): Remove assert.
2013-08-08 Vladimir Makarov <vmakarov@redhat.com>
* lra-constraints.c (emit_spill_move): Remove assert.
(process_alt_operands): Add more debugging
output. Increase reject for spilling into memory. Decrease
reject for reloading scratch.
(split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
From-SVN: r201611
mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
2013-08-08 Steve Ellcey <sellcey@mips.com>
* config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
* config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
micromips incompatible. Add nan2008.
(MULTILIB_DIRNAMES): Add nan2008.
(MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
* config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
and micromips incompatible. Add nan2008.
(MULTILIB_DIRNAMES): Add nan2008.
(MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
From-SVN: r201610
re PR rtl-optimization/58079 (internal compiler error: in do_SUBST, at combine.c:711)
gcc/
PR rtl-optimization/58079
* combine.c (combine_simplify_rtx): Avoid using SUBST if
simplify_comparison has widened a comparison with an integer.
gcc/testsuite/
* gcc.dg/torture/pr58079.c: New test.
From-SVN: r201609
Fix ChangeLog formatting errors.
From-SVN: r201606
neon.md (movmisalign<mode>): Disable when we don't allow unaligned accesses.
2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/neon.md (movmisalign<mode>): Disable when we
don't allow unaligned accesses.
(*movmisalign<mode>_neon_store): Likewise.
(*movmisalign<mode>_neon_load): Likewise.
(*movmisalign<mode>_neon_store): Likewise.
(*movmisalign<mode>_neon_load): Likewise.
From-SVN: r201604
Makefile.in (TOOLS_LIBS): Pick C object files from the compiler build and use standard library variables.
* gcc-interface/Makefile.in (TOOLS_LIBS): Pick C object files from the
compiler build and use standard library variables.
(../../vxaddr2line$(exeext): Do not depend on targext.o and adjust.
(gnatmake-re): Do not depend on targext.o.
(gnatlink-re): Do not depend on link.o and targext.o.
(../../gnatmake$(exeext): Likewise.
(../../gnatlink$(exeext): Likewise.
From-SVN: r201602
cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
* cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
(make_pass_rebuild_cgraph_edges): Also clear references.
* cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
* ipa-inline-transform.c (inline_transform): Remove all references
after inlining.
* cgraphunit.c (expand_function): Remove all references after expansion.
* ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
(ipa_find_reference): Rewrite to iterator.
(remove_stmt_references): Likewise.
(ipa_clear_stmts_in_references): New function.
* ipa-ref.h (ipa_clear_stmts_in_references): Declare.
* cgraphclones.c (cgraph_materialize_all_clones): Remove or clear references.
* ipa-split.c (split_function): Remove references in split function.
From-SVN: r201601
re PR target/57431 (ICE in simplify_const_unary_operation vld1_dup_s64/vst1_s64)
PR target/57431
* arm/neon.md (neon_vld1_dupdi): New expand pattern.
(neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
From-SVN: r201599
hashtable_policy.h (_Hashtable_alloc): New.
2013-08-08 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Hashtable_alloc): New.
(_ReuseOrAllocNode, _AllocNode): Adapt to use latter rather than
_Hashtable.
(_Before_begin<>): Remove.
* include/bits/hashtable.h (_Hashtable): Inherit from
_Hashtable_alloc and adapt. Restore _M_before_begin field.
* src/c++11/hashtable_c++0x.cc: Add ext/alloc_traits.h include.
* python/libstdcxx/v6/printers.py (StdHashtableIterator): Adapt
access to hashtable before begin.
* testsuite/23_containers/unordered_set/
not_default_constructible_hash_neg.cc: Adapt dg-error line number.
* testsuite/23_containers/unordered_set/instantiation_neg.cc:
Likewise.
From-SVN: r201592
Daily bump.
From-SVN: r201588
Makefile.am (SUBDIRS): Protect with ENABLE_VTABLE_VERIFY.
2013-08-07 Benjamin Kosnik <bkoz@rehat.com>
* Makefile.am (SUBDIRS): Protect with ENABLE_VTABLE_VERIFY.
* Makefile.in: Regenerate.
* acinclude.m4 (LIBVTV_CONFIGURE): Move parts to..
* configure.ac: ...here. Make configure more verbose, re-order.
* configure: Regenerate.
From-SVN: r201585
Implement -mtune-crl=..
From-SVN: r201582
compiler: Fix "missing return" error for case T1, T2 in type switches.
Also change the "missing return" text and report it at the end
of the function, rather than the start, to match the gc
compiler.
From-SVN: r201579
rtl.h (update_alignments): Declare.
* rtl.h (update_alignments): Declare.
* final.c (grow_label_align): New function extracted from...
(shorten_branches): ...here. Call it.
(update_alignments): New function.
* reorg.c (sibling_labels): New variable.
(get_label_before): Add SIBLING parameter. If it is non-zero, push
the new label along with it onto the sibling_labels vector.
(fill_simple_delay_slots): Adjust call to get_label_before.
(fill_slots_from_thread): Likewise.
(relax_delay_slots): Likewise.
(make_return_insns): Likewise.
(dbr_schedule): Invoke update_alignment on the sibling_labels vector.
From-SVN: r201575
diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and document its semantics.
* diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
document its semantics.
(diagnostic_report_diagnostic): Adjust accordingly.
From-SVN: r201574
Makefile.am: Adjust to new files.
2013-08-07 Tim Shen <timshen91@gmail.com>
* include/Makefile.am: Adjust to new files.
* include/Makefile.in: Regenerate.
* include/bits/regex.h: Adjust to new interfaces.
* include/bits/regex_automaton.h: New.
* include/bits/regex_automaton.tcc: New.
* include/bits/regex_compiler.h: Adjust to new files.
* include/bits/regex_compiler.tcc: New.
* include/bits/regex_constants.h: Tail spaces.
* include/bits/regex_error.h: Likewise.
* include/bits/regex_executor.h: New.
* include/bits/regex_executor.tcc: New.
* include/std/regex: Adjust to new files.
* testsuite/28_regex/algorithms/regex_match/extended/
string_dispatch_01.cc: Adjust to new interfaces.
From-SVN: r201573
sparc.c (insert_pass_work_around_errata): Move into...
2013-08-07 David Malcolm <dmalcolm@redhat.com>
* config/sparc/sparc.c (insert_pass_work_around_errata): Move
into...
(sparc_option_override): ...and port to new C++ pass API.
* config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
From-SVN: r201569
atomicity.h: Add #pragma GCC system_header.
2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
* include/ext/atomicity.h: Add #pragma GCC system_header.
From-SVN: r201567
configure.ac: Set need_64bit_hwint for all arm targets.
* configure.ac: Set need_64bit_hwint for all arm targets.
* configure: Regenerated.
From-SVN: r201566
* config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
From-SVN: r201565
Commit the vtable verification feature.
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
rl78.c (rl78_devirt_pass): Convert from a struct to...
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
plugin-support.exp (plugin-test-execute): Add -fno-rtti to optstr when building plugins on darwin.
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
coretypes.h (rtl_opt_pass): Add.
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
Daily bump.
From-SVN: r201548
mips.c (insert_pass_mips_machine_reorg2): Move into...
2013-08-06 David Malcolm <dmalcolm@redhat.com>
* config/mips/mips.c (insert_pass_mips_machine_reorg2): Move
into...
(mips_option_override): ...here, porting to new C++ API for
passes.
From-SVN: r201542
pr58041.c (foo): Accept z by reference.
2013-08-06 Martin Jambor <mjambor@suse.cz>
Bernd Edlinger <bernd.edlinger@hotmail.de>
testsuite/
* gcc.dg/torture/pr58041.c (foo): Accept z by reference.
(a): Fix constructor.
Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de>
From-SVN: r201538
cgraph.c (cgraph_get_body): New function based on lto.c implementation.
* cgraph.c (cgraph_get_body): New function based on lto.c
implementation.
* cgraph.h (cgraph_get_body): Declare.
* cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and LTO paths.
* cgraphunit.c (expand_function): Get body prior expanding.
* ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
* lto-cgraph.c (lto_output_node): Do not stream bodies we don't really need.
* passes.c (do_per_function_toporder): Get body.
* tree-inline.c (expand_call_inline): Get body prior inlining it.
* tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
* lto.c (lto_materialize_function): Do not read body anymore.
From-SVN: r201537
go-gcc.cc (Gcc_backend::immutable_struct_set_init): Use compute_reloc_for_constant.
* go-gcc.cc (Gcc_backend::immutable_struct_set_init): Use
compute_reloc_for_constant.
From-SVN: r201535
hashtable_policy.h (_Hashtable_alloc): New.
2013-08-06 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Hashtable_alloc): New.
(_ReuseOrAllocNode, _AllocNode): Adapt to use latter rather than
_Hashtable.
(_Before_begin<>): Remove.
* include/bits/hashtable.h (_Hashtable): Inherit from
_Hashtable_alloc and adapt. Restore _M_before_begin field.
* python/libstdcxx/v6/printers.py (StdHashtableIterator): Adapt
access to hashtable before begin.
* testsuite/23_containers/unordered_set/
not_default_constructible_hash_neg.cc: Adapt dg-error line number.
* testsuite/23_containers/unordered_set/instantiation_neg.cc:
Likewise.
From-SVN: r201522
re PR fortran/57306 ([OOP] [F08] ICE on valid with class pointer initialization)
2013-08-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/57306
* class.c (gfc_class_null_initializer): Rename to
'gfc_class_initializer'. Treat non-NULL init-exprs.
* gfortran.h (gfc_class_null_initializer): Update prototype.
* trans-decl.c (gfc_get_symbol_decl): Treat class variables.
* trans-expr.c (gfc_conv_initializer): Ditto.
(gfc_trans_subcomponent_assign): Renamed gfc_class_null_initializer.
2013-08-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/57306
* gfortran.dg/pointer_init_8.f90: New.
From-SVN: r201521
Daily bump.
From-SVN: r201516
re PR c++/58080 (internal compiler error, decltype in function declaration (for SFINAE purposes))
/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
Add -fno-rtti when building plugins.
gcc/testsuite
* lib/plugin-support.exp (plugin-test-execute): Add -fno-rtti
to optstr when building plugins.
From-SVN: r201509
Automated conversion of passes to C++ classes
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