| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-core.h (tree_code_name): Remove.
* tree.h (get_tree_code_name): New prototype.
* tree.c (tree_code_name): Make static.
(get_tree_code_name): New function.
(dump_tree_statistics, tree_check_failed, tree_not_check_failed,
tree_class_check_failed, tree_range_check_failed,
tree_not_class_check_failed, omp_clause_check_failed,
tree_contains_struct_check_failed, tree_operand_check_failed): Use new
wrapper get_tree_code_name instead of calling tree_code_name directly.
* tree-vrp.c (dump_asserts_for): Likewise.
* tree-dump.c (dequeue_and_dump): Likewise.
* tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
* tree-pretty-print.h (pp_unsupported_tree): Likewise.
* lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
* tree-ssa-dom.c (print_expr_hash_elt): Likewise.
* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
dump_gimple_omp_for): Likewise.
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
* tree-ssa-pre.c (print_pre_expr): Likewise.
* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
* print-tree.c (print_node_brief, print_node): Likewise.
* gimple.c (gimple_check_failed): Likewise.
* lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
* config/frv/frv.c (frv_init_cumulative_args): Likewise.
* config/mep/mep.c (mep_validate_vliw): Likewise.
* config/iq2000/iq2000.c (init_cumulative_args): Likewise.
* config/rs6000/rs6000.c (init_cumulative_args): Likewise.
gcc/cp/
* error.c (code_to_string): Use new wrapper get_tree_code_name.
* cxx-pretty-print.c (pp_cxx_assignment_operator): Likewise.
* pt.c (tsubst): Likewise.
* semantics.c (cxx_eval_constant_expression,
potential_constant_expression_1): Likewise.
* mangle.c (MANGLE_TRACE_TREE, dump_substitution_candidates,
add_substitution, find_substitution): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203695 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
gimple.h, godump.c, graphite-clast-to-gimple.c,
graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
whitespace before "(".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203004 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tree-flow-inline.h.
* tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
Move prototypes belonging to tree-ssa.c.
* tree-flow-inline.h (redirect_edge_var_map_def,
redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
tree-ssa.h.
* gimple.h: Adjust prototypes.
* tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move to...
* gimple.c (useless_type_conversion_p, types_compatible_p): Here.
* tree.h: Move prototype to tree-ssa.h.
* gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
* Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
* alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
graphite-blocking.c, graphite-clast-to-gimple.c, graphite-dependences.c,
graphite-interchange.c, graphite-optimize-isl.c, graphite-poly.c,
graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c,
ipa-cp.c, ipa-inline-analysis.c, ipa-inline-transform.c, ipa-inline.c,
ipa-prop.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa-utils.c,
loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
value-prof.c, var-tracking.c,
varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202523 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* lto-streamer-out.c: Stream thunks, too.
* lto-streamer-in.c (input_function): Pop cfun here
(lto_read_body): Instead of here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202352 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ipa-devirt.c: Include diganostic.h
(odr_type_d): Add types and types_set.
(hash_type_name): Work for types with vtables during LTO.
(odr_hasher::remove): Fix comment; destroy types_set.
(add_type_duplicate): New function,
(get_odr_type): Use it.
(dump_type_inheritance_graph): Dump type duplicates.
* ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
graph.
* tree.c (types_same_for_odr): Give exact answers on types with
virtual tables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202258 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
TYPE_FINAL_P.
* lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P.
DECL_CXX_CONSTRUCTOR_P. DECL_CXX_DESTRUCTOR_P.
TYPE_FINAL_P.
* lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields):
DECL_FINAL_P. DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
(unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
* tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P
(pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202079 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
(unify_scc): Do checking assert.
* lto-streamer-out.c (DFS_write_tree_body): Drop
BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
(hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields):
Do not read DECL_ERROR_ISSUED.
(unpack_ts_decl_with_vis_value_fields): Do not read
DECL_DEFER_OUTPUT.
(lto_input_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
write DECL_ERROR_ISSUED..
(pack_ts_decl_with_vis_value_fields): Do not write
DECL_DEFER_OUTPUT.
(write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
* print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
* tree.h (tree_decl_common): Update comment.
(DECL_ERROR_ISSUED): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202052 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* lto-streamer-in.c (input_function): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201627 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201508 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
boundaries.
* lto-streamer-out.c (tree_is_indexable): Results decls and
parm decls are not indexable.
(DFS_write_tree_body): Do not follow args and results.
(hash_tree): Likewise.
(output_functions): Rearrange so struct function is needed
only when real body is output; be able to also ouptut abstract
functions; output DECL_ARGUMENTS and DECL_RESULT.
(lto_output): When not in WPA, ale store abstract functions.
(write_symbol): Do not care about RESULT_DECL.
(output_symbol_p): Handle correctly sbtract decls.
* lto-streamer-in.c (input_function): Rearrange so struct
function can be NULL at entry; allow streaming of
functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
* ipa.c (symtab_remove_unreachable_nodes): Silence confused
sanity check during LTO.
* tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
RESULT_DECl and DECL_ARGUMENTS.
* tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
Likewise.
* lto.c (lto_materialize_function): Do not push struct function.
* lto-partition.c (get_symbol_class): Handle abstracts correctly.
(may_need_named_section_p): Even abstract origins may need
named section.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201468 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201109 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
* lto-streamer.h: Include pointer-set.h.
(struct lto_decl_slot): Remove.
(struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
Remove next_index entry.
(lto_hash_decl_slot_node, lto_eq_decl_slot_node,
lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
(lto_init_tree_ref_encoder): Adjust.
(lto_destroy_tree_ref_encoder): Likewise.
* lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
(lto_output_decl_index): Adjust.
(lto_new_out_decl_state): Likewise.
(lto_record_function_out_decl_state): Likewise.
* lto-streamer-out.c (copy_function): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200171 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
* tree-streamer.c (streamer_tree_cache_create): Make maintaining
the map from cache entry to cache index optional.
(streamer_tree_cache_replace_tree): Adjust accordingly.
(streamer_tree_cache_append): Likewise.
(streamer_tree_cache_delete): Likewise.
* lto-streamer-in.c (lto_data_in_create): Do not maintain the
streamer cache map from cache entry to cache index.
* lto-streamer-out.c (create_output_block): Adjust.
lto/
* lto.c (lto_register_var_decl_in_symtab): Pass in cache index
and use it.
(lto_register_function_decl_in_symtab): Likewise.
(cmp_tree): New function.
(unify_scc): Instead of using the streamer cache map from entry
to cache index match up the two maps we have by sorting them.
Adjust calls to lto_register_var_decl_in_symtab and
lto_register_function_decl_in_symtab.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200168 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
(lto_input_scc): Declare.
(lto_input_tree_1): Likewise.
(struct lto_stats_d): Add num_tree_bodies_output and
num_pickle_refs_output.
* lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
(lto_read_tree_1): Split out from ...
(lto_read_tree): ... this.
(lto_input_scc): New function.
(lto_input_tree_1): Split out from ...
(lto_input_tree): ... this. Handle LTO_tree_scc.
(lto_data_in_create): Create the streamer cache without hashes.
* lto-streamer-out.c (create_output_block): Create the streamer
cache with hashes when not doing WPA.
(lto_write_tree_1): Split out from ...
(lto_write_tree): ... this.
(get_symbol_initial_value): New function.
(lto_output_tree_1): Split out from ...
(lto_output_tree): ... this. Write trees as series of SCCs
using a DFS walk via DFS_write_tree.
(struct sccs, struct scc_entry): New types.
(next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
(DFS_write_tree_body): New function.
(DFS_write_tree): Likewise.
(hash_tree): Likewise.
(scc_entry_compare): Likewise.
(hash_scc): Likewise.
(tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
* tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
TREE_CHAIN as regular reference.
(streamer_read_integer_cst): Remove.
(streamer_get_pickled_tree): Adjust.
* tree-streamer-out.c (streamer_write_chain): Disable streaming
of DECL_EXTERNALs in BLOCK_VARS for now.
(write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
reference.
* tree-streamer.c (streamer_tree_cache_add_to_node_array):
Add hash value argument and record that if hashes are recorded
in the cache.
(streamer_tree_cache_insert_1): Adjust.
(streamer_tree_cache_insert): Likewise.
(streamer_tree_cache_insert_at): Rename to ...
(streamer_tree_cache_replace_tree): ... this and adjust.
(streamer_tree_cache_append): Adjust.
(record_common_node): Likewise.
(streamer_tree_cache_create): Add argument whether to
record hash values together with trees.
(streamer_tree_cache_delete): Adjust.
* tree-streamer.h (struct streamer_tree_cache_d): Add
vector of hashes.
(streamer_read_integer_cst): Remove.
(streamer_tree_cache_insert): Adjust.
(streamer_tree_cache_append): Likewise.
(streamer_tree_cache_insert_at): Rename to ...
(streamer_tree_cache_replace_tree): ... this and adjust.
(streamer_tree_cache_create): Add argument whether to record hashes.
(streamer_tree_cache_get): Rename to ...
(streamer_tree_cache_get_tree): ... this.
(streamer_tree_cache_get_hash): New function.
* tree.c (cache_integer_cst): New function.
* tree.h (cache_integer_cst): Declare.
(ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
* lto-symtab.c (lto_varpool_replace_node): Only release
DECL_INITIAL of non-prevailing decls.
* varpool.c (varpool_remove_initializer): Do not release
DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
cp/
* cp-tree.h (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move to tree.h.
lto/
* Make-lang.in (lto.o): Add $(DATA_STREAMER_H) dependency.
* lto.c: Include data-streamer.h.
(lto_read_in_decl_state): Use streamer_tree_cache_get_tree.
(gimple_type_leader_entry_s, gimple_type_leader,
gimple_lookup_type_leader): Remove.
(gtc_visit): Simplify.
(gimple_types_compatible_p): Likewise.
(gimple_register_type_1): Likewise. Merge into ...
(gimple_register_type): ... this. Keep it as legacy for
statistics purposes for now.
(fixup_integer_cst): Remove.
(LTO_FIXUP_TREE, lto_fixup_types, lto_ft_*): Simplify and
rename to ...
(MAYBE_REMEMBER_WITH_VARS, maybe_remember_with_vars,
maybe_remember_with_vars_*): ... these.
(uniquify_nodes): Remove.
(lto_fixup_prevailing_type): New function.
(struct tree_scc, struct tree_scc_hasher): New type and hasher.
(tree_scc_hash, tree_scc_hash_obstack): New globals.
(num_merged_types, num_prevailing_types, num_not_merged_types,
num_not_merged_types_in_same_scc, total_scc_size, num_sccs_read,
total_scc_size_merged, num_sccs_merged, num_scc_compares,
num_scc_compare_collisions): New global counters.
(compare_tree_sccs_1): New function.
(compare_tree_sccs): Likewise.
(unify_scc): Likewise.
(lto_read_decls): Stream in tree SCCs and unify them on the
way in. Finalize prevailing SCC tree members.
(read_cgraph_and_symbols): Do not initialize or free gimple_type_leader.
Allocate and free tree_scc_hash_obstack and tree_scc_hash, do not bother
to ggc-collect during merging.
(print_lto_report_1): Adjust for new merging code.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200151 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
flags; reorder rest of fields in more consistent way.
(varpool_node): Remove analyzed, finalized and alias.
(cgraph_ndoe): Likewise.
(symtab_alias_ultimate_target): New function.
(cgraph_function_node): Move offline.
(cgraph_reset_node): Declare.
(cgraph_comdat_can_be_unshared_p): Remove.
(varpool_remove_initializer): Declare.
(varpool_first_defined_variable, varpool_next_defined_variable
cgraph_first_defined_function, cgraph_next_defined_function): Update.
(cgraph_function_with_gimple_body_p): Update.
(varpool_all_refs_explicit_p): Update.
(symtab_alias_target): New function.
(cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
(cgraph_alias_target, varpool_alias_target): .. this one; simplify.
(cgraph_function_or_thunk_node): Simplify using symtab_alias_ultimate_target.
(varpool_variable_node): Likewise.
* cgraph.c (cgraph_create_function_alias): Update.
(cgraph_add_thunk): Update.
(cgraph_remove_node): Update.
(dump_cgraph_node): Do not dump removed flags.
(cgraph_function_body_availability): Update.
(cgraph_propagate_frequency): Update.
(verify_cgraph_node): Check sanity of local flag.
(cgraph_function_node): Move here from cgraph.h; revamp for
cgraph_function_or_thunk_node.
* lto-symtab.c (lto_varpool_replace_node): Update.
(lto_symtab_resolve_can_prevail_p): Update.
(lto_symtab_merge_cgraph_nodes): Update.
* ipa-cp.c (determine_versionability, initialize_node_lattices,
propagate_constants_accross_call, devirtualization_time_bonus,
ipcp_propagate_stage): Update.
* tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
* ipa-inline-transform.c (clone_inlined_nodes, preserve_function_body_p): Update.
* ipa-reference.c (propagate): Update.
(write_node_summary_p): Update.
* toplev.c (wrapup_global_declaration_2): Update.
* cgraphunit.c (cgraph_analyze_function): Rename to ...
(analyze_function) ... this one.
(cgraph_process_new_functions): Update.
(cgraph_reset_node): Export.
(cgraph_finalize_function): Update.
(cgraph_add_new_function): Update.
(process_function_and_variable_attributes): Update.
(varpool_finalize_decl): Update.
(symbol_finalized): Remove.
(symbol_finalized_and_needed): Rename to ...
(symbol_defined_and_needed): ... update.
(cgraph_analyze_functions): Update.
(handle_alias_pairs): Update.
(mark_functions_to_output): Update.
(assemble_thunk): Update.
(output_in_order): Update.
(output_weakrefs): Update.
(finalize_compilation_unit): Update.
* lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
input_node, input_varpool_node): Update.
* dbxout.c (dbxout_expand_expr): Update.
* cgraphclones.c (cgraph_clone_node): Update.
(cgraph_copy_node_for_versioning): Update.
(cgraph_materialize_clone): Update.
(cgraph_materialize_all_clones): Update.
* ipa-pure-const.c (analyze_function, pure_const_write_summary,
propagate_pure_const, propagate_nothrow): Update.
* lto-streamer-out.c (lto_output, write_symbol): Update.
* ipa-utils.c (ipa_reverse_postorder): Update.
* ipa-inline.c (can_inline_edge_p): Update.
(update_caller_keys, ipa_inline): Update.
* dwarf2out.c (reference_to_unused,
premark_types_used_by_global_vars_helper): Update.
* tree-eh.c (tree_could_trap_p): Update.
* ipa-split.c (consider_split, execute_split_functions): Update.
* ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
has_addr_references_p): Update;
move ahead in file for better readability.
(process_references): Simplify.
(symtab_remove_unreachable_nodes): Update; cleanup way function/var
bodies are removed.
(cgraph_comdat_can_be_unshared_p): Make static.
(cgraph_externally_visible_p): Update.
(varpool_externally_visible_p): Update.
(function_and_variable_visibility): Update.
* trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
ipa_tm_mark_force_output_node): Update.
* ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
estimate_edge_devirt_benefit, inline_generate_summary,
inline_write_summary): Update.
* gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
* ipa-prop.c (ipa_compute_jump_functions): Update.
(ipa_print_node_params, ipa_prop_read_section, ipa_update_after_lto_read,
read_replacements_section): Update.
* varasm.c (mark_decl_referenced): Update.
(assemble_alias, dump_tm_clone_pairs): Update.
* tree-inline.c (copy_bb): Update.
(estimate_num_insns, optimize_inline_calls, tree_function_versioning):
Update.
* symtab.c (dump_symtab_base): Print new flags.
(verify_symtab_base): Verify new flags.
(symtab_alias_ultimate_target): New function.
* tree-ssa-structalias.c (get_constraint_for_ssa_var,
create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
Update.
* passes.c (ipa_write_summaries, ipa_write_optimization_summaries): Update.
* i386.c (ix86_get_function_versions_dispatcher,
ix86_generate_version_dispatcher_body): Update.
(fold_builtin_cpu): Use varpool_add_new_variable.
* varpool.c (varpool_remove_initializer): Break out from ...
(varpool_remove_node): ... this one.
(dump_varpool_node, varpool_node_for_asm,
cgraph_variable_initializer_availability, varpool_analyze_node,
varpool_assemble_decl, varpool_remove_unreferenced_decls,
varpool_finalize_named_section_flags, varpool_create_variable_alias): Update
* decl.c (java_mark_decl_local): Update for new symtab flags.
* tree.c (cp_fix_function_decl_p): Update for new symtab flags.
* decl2.c )var_finalized_p, cp_write_global_declarations): Likewise.
* lto.c (has_analyzed_clone_p, lto_materialize_function): Update for new symtab
flags.
* lto-partition.c (get_symbol_class, lto_balanced_map): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199422 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* function.h (loops_for_fn): New inline function.
(set_loops_for_fn): Likewise.
* cfgloop.h (place_new_loop): Add struct function parameter.
(get_loop): Likewise.
(get_loops): Likewise.
(number_of_loops): Likewise.
(fel_next): Adjust.
(fel_init): Likewise.
* cfg.c (get_loop_copy): Adjust.
* cfgloop.c (flow_loops_dump): Likewise.
(record_loop_exits): Likewise.
(verify_loop_structure): Likewise.
* cfgloopanal.c (mark_irreducible_loops): Likewise.
(estimate_reg_pressure_cost): Likewise.
(mark_loop_exit_edges): Likewise.
* cfgloopmanip.c (place_new_loop): Likewise.
(add_loop): Likewise.
(duplicate_loop): Likewise.
* graph.c (draw_cfg_nodes): Likewise.
* graphite-clast-to-gimple.c (translate_clast_user): Likewise.
* graphite-sese-to-poly.c (build_scop_scattering): Likewise.
(extract_affine_chrec): Likewise.
(build_scop_iteration_domain): Likewise.
* graphite.c (graphite_initialize): Likewise.
* ira-build.c (create_loop_tree_nodes): Likewise.
(more_one_region_p): Likewise.
(rebuild_regno_allocno_maps): Likewise.
(mark_loops_for_removal): Likewise.
(mark_all_loops_for_removal): Likewise.
(remove_unnecessary_regions): Likewise.
(ira_build): Likewise.
* ira-emit.c (setup_entered_from_non_parent_p): Likewise.
* loop-init.c (fix_loop_structure): Likewise.
(gate_rtl_move_loop_invariants): Likewise.
(gate_rtl_unswitch): Likewise.
(gate_rtl_unroll_and_peel_loops): Likewise.
(rtl_doloop): Likewise.
* lto-streamer-in.c (input_cfg): Likewise.
* lto-streamer-out.c (output_cfg): Likewise.
* modulo-sched.c (sms_schedule): Likewise.
* predict.c (tree_estimate_probability): Likewise.
(tree_estimate_probability_driver): Likewise.
(estimate_loops): Likewise.
* tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
(move_sese_region_to_fn): Likewise.
(debug_loop_num): Likewise.
* tree-chrec.c (chrec_evaluate): Likewise.
(hide_evolution_in_other_loops_than_loop): Likewise.
(chrec_component_in_loop_num): Likewise.
(reset_evolution_in_loop): Likewise.
(evolution_function_is_invariant_rec_p): Likewise.
* tree-if-conv.c (main_tree_if_conversion): Likewise.
* tree-inline.c (copy_loops): Likewise.
(copy_cfg_body): Likewise.
(tree_function_versioning): Likewise.
* tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
Likewise.
(add_to_evolution_1): Likewise.
(scev_const_prop): Likewise.
* tree-scalar-evolution.h (get_chrec_loop): Likewise.
* tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
* tree-ssa-loop-im.c (analyze_memory_references): Likewise.
(tree_ssa_lim_initialize): Likewise.
* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
(verify_loop_closed_ssa): Likewise.
* tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
(tree_ssa_loop_im): Likewise.
(tree_ssa_loop_unswitch): Likewise.
(tree_vectorize): Likewise.
(check_data_deps): Likewise.
(tree_ssa_loop_ivcanon): Likewise.
(tree_ssa_loop_bounds): Likewise.
(tree_complete_unroll): Likewise.
(tree_complete_unroll_inner): Likewise.
(tree_parallelize_loops): Likewise.
(tree_ssa_loop_prefetch): Likewise.
(tree_ssa_loop_ivopts): Likewise.
* tree-ssa.c (execute_update_addresses_taken): Liekwise.
* tree-vectorizer.c (vectorize_loops): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198441 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
(lto-streamer-out.o): Likewise.
* cfgloop.c (init_loops_structure): Export, add struct function
argument and adjust.
(flow_loops_find): Adjust.
* cfgloop.h (enum loop_estimation): Add EST_LAST.
(init_loops_structure): Declare.
* lto-streamer-in.c: Include cfgloop.h.
(input_cfg): Input the loop tree.
* lto-streamer-out.c: Include cfgloop.h.
(output_cfg): Output the loop tree.
(output_struct_function_base): Do not drop PROP_loops.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198334 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-cfg.c (execute_build_cfg): Build the loop tree.
(pass_build_cfg): Provide PROP_loops.
(move_sese_region_to_fn): Remove loops that are outlined into fn
for now.
* tree-inline.c: Include cfgloop.h.
(initialize_cfun): Do not drop PROP_loops.
(copy_loops): New function.
(copy_cfg_body): Copy loop structure.
(tree_function_versioning): Initialize destination loop tree.
* tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
(pass_parallelize_loops): Do IL verification.
* loop-init.c (loop_optimizer_init): Fixup loops if required.
* tree-optimize.c (execute_fixup_cfg): If we need to cleanup
the CFG make sure we fixup loops as well.
* tree-ssa-tail-merge.c: Include cfgloop.h.
(replace_block_by): When merging loop latches mark loops for fixup.
* lto-streamer-out.c (output_struct_function_base): Drop
PROP_loops for now.
* tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
(tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
* ipa-split.c: Include cfgloop.h.
(split_function): Add the new return block to the loop tree root.
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
whether we have removed the forwarder block.
(merge_phi_nodes): If we removed a forwarder mark loops for fixup.
* cfgloop.h (place_new_loop): Declare.
* cfgloopmanip.c (place_new_loop): Export.
* Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
(tree-switch-conversion.o): Likewise.
(tree-complex.o): Likewise.
(tree-inline.o): Likewise.
(tree-ssa-tailmerge.o): Likewise.
(ipa-split.o): Likewise.
(tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
(tree-ssa-copy.o): Likewise.
* tree-switch-conversion.c: Include cfgloop.h
(process_switch): If we emit a bit-test cascade, schedule loops
for fixup.
* tree-complex.c: Include cfgloop.h.
(expand_complex_div_wide): Properly add new basic-blocks to loops.
* asan.c: Include cfgloop.h.
(create_cond_insert_point): Properly add new basic-blocks to
loops, schedule loop fixup.
* cfgloop.c (verify_loop_structure): Check that looks are not
marked for fixup.
* omp-low.c (expand_parallel_call): Properly add new basic-blocks
to loops.
(expand_omp_for_generic): Likewise.
(expand_omp_sections): Likewise.
(expand_omp_atomic_pipeline): Schedule loops for fixup.
* tree-ssa-copy.c: Include tree-scalar-evolution.h.
(fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
is initialized, not when loops are present.
* tree-parloops.c (parallelize_loops): Remove checking here.
* passes.c (init_optimization_passes): Schedule a copy-propagation
pass before complete unrolling of inner loops.
* gcc.dg/tree-prof/update-loopch.c: Revert last change.
* gcc.dg/graphite/pr33766.c: Fix undefined behavior.
* gcc.dg/pr53265.c: Remove XFAILs.
* gcc.dg/tree-ssa/loop-38.c: Remove unreliable dump scanning.
* gcc.dg/tree-ssa/pr21559.c: Change back to two expected jump threads.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198333 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
patches to the cxx-conversion branch for files not under gcc/config.
Update various hash tables from htab_t to hash_table.
Modify types and calls to match.
* tree-parloops.c'reduction
* tree-parloops.c'name_to_copy
Fold reduction_info_hash and reduction_info_eq into new struct
reduction_hasher. Fold name_to_copy_elt_eq and name_to_copy_elt_hash
into new struct name_to_copy_hasher.
* trans-mem.c'tm_log
Fold tm_log_hash, tm_log_eq, tm_log_free into new struct log_entry_hasher.
* trans-mem.c'tm_memopt_value_numbers
Fold tm_memop_hash, tm_memop_eq into new struct tm_memop_hasher.
* tree-ssa-strlen.c'decl_to_stridxlist_htab
Fold decl_to_stridxlist_hash into new struct stridxlist_hasher.
* tree-ssa-loop-ivopts.c'ivopts_data::inv_expr_tab
Fold htab_inv_expr_hash and htab_inv_expr_eq into new struct
iv_inv_expr_hasher.
* tree-ssa-uncprop.c'equiv
Equiv renamed to val_ssa_equiv because of name ambiguity with local variables.
Fold equiv_hash, equiv_eq and equiv_free into new struct val_ssa_equiv_hasher.
Renamed variables equiv_hash_elt to an_equiv_elt because of name ambiguity
with struct type. Changed equiv_hash_elt_p to an_equiv_elt_p to match.
* tree-ssa-phiopt.c'seen_ssa_names
Fold name_to_bb_hash and name_to_bb_eq into new struct ssa_names_hasher.
* tree-ssa-structalias.c'pointer_equiv_class_table
* tree-ssa-structalias.c'location_equiv_class_table
Fold equiv_class_label_hash and equiv_class_label_eq into new
struct equiv_class_hasher.
* tree-ssa-structalias.c'shared_bitmap_table
Fold shared_bitmap_hash and shared_bitmap_eq into new struct
shared_bitmap_hasher.
* tree-ssa-live.c'var_map_base_init::tree_to_index
New struct tree_int_map_hasher.
* tree-sra.c'candidates
Fold uid_decl_map_hash and uid_decl_map_eq into new struct
uid_decl_hasher. This change moves the definitions from tree-ssa.c
into tree-sra.c and removes the declarations from tree-flow.h
tree-browser.c
Remove stale declaration of removed TB_parent_eq.
Fix template parameter for base class to match value_type.
gimple.h
Use gimplify_hasher::hash rather than gimple_tree_hash in the
assertion check.
Change return values to match return type. (I.e. no conversions.)
* graphite-clast-to-gimple.c'ivs_params::newivs_index
* graphite-clast-to-gimple.c'ivs_params::params_index
* graphite-clast-to-gimple.c'print_generated_program::params_index
* graphite-clast-to-gimple.c'gloog::newivs_index
* graphite-clast-to-gimple.c'gloog::params_index
* graphite.c graphite_transform_loops::bb_pbb_mapping
* sese.c copy_bb_and_scalar_dependences::rename_map
Move hash table declarations to a new graphite-htab.h, because they
are used in few places.
Remove unused:
htab_t scop::original_pddrs
SCOP_ORIGINAL_PDDRS
Remove unused:
insert_loop_close_phis
insert_guard_phis
debug_ivtype_map
ivtype_map_elt_info
new_ivtype_map_elt
* gimplify.c'gimplify_ctx::temp_htab
Move struct gimple_temp_hash_elt and struct gimplify_ctx to a new
gimplify-ctx.h, because they are used few places.
* cselib.c'cselib_hash_table
* gcse.c'pre_ldst_table
* gimple-ssa-strength-reduction.c'base_cand_map
* haifa-sched.c'delay_htab
* haifa-sched.c'delay_htab_i2
* ira-color.c'allocno_hard_regs_htab
* ira-costs.c'cost_classes_htab
* loop-invariant.c'merge_identical_invariants::eq
* loop-iv.c'bivs
* loop-unroll.c'opt_info::insns_to_split
* loop-unroll.c'opt_info::insns_with_var_to_expand
* passes.c'name_to_pass_map
* plugin.c'event_tab
* postreload-gcse.c'expr_table
* store-motion.c'store_motion_mems_table
* tree-cfg.c'discriminator_per_locus
* tree-scalar-evolution.c'resolve_mixers::cache
* tree-ssa-dom.c'avail_exprs
Remove unused:
dse.c bitmap clear_alias_sets
dse.c bitmap disqualified_clear_alias_sets
dse.c alloc_pool clear_alias_mode_pool
dse.c dse_step2_spill
dse.c dse_step5_spill
graphds.h htab_t graph::indices
* attribs.c'scoped_attributes::attribute_hash
* bitmap.c'bitmap_desc_hash
* dwarf2cfi.c'trace_index
* dwarf2out.c'break_out_includes::cu_hash_table
* dwarf2out.c'copy_decls_for_unworthy_types::decl_table
* dwarf2out.c'optimize_external_refs::map
* dwarf2out.c'output_comp_unit::extern_map
* dwarf2out.c'output_comdat_type_unit::extern_map
* dwarf2out.c'output_macinfo::macinfo_htab
* dwarf2out.c'optimize_location_lists::htab
* dwarf2out.c'dwarf2out_finish::comdat_type_table
* except.c'ehspec_hash_type
* except.c'assign_filter_values::ttypes
* except.c'assign_filter_values::ehspec
* except.c'sjlj_assign_call_site_values::ar_hash
* except.c'convert_to_eh_region_ranges::ar_hash
* trans-mem.c'tm_new_mem_hash
* tree-browser.c'TB_up_ht
* tree-eh.c'finally_tree
Move the declaration of hash_table <alloc_pool_hasher> alloc_pool_hash
in alloc-pool.c to after the method definitions for its parameter
class.
* ggc-common.c'loc_hash
* ggc-common.c'ptr_hash
Add a new hash_table method elements_with_deleted to meet the needs of
gcc-common.c.
Correct many methods with parameter types compare_type to the correct
value_type. (Correct code was unlikely to notice the change, but
incorrect code will.)
* tree-complex.c'complex_variable_components
* tree-parloops.c'eliminate_local_variables_stmt::decl_address
* tree-parloops.c'separate_decls_in_region::decl_copies
Move hash table declarations to a new tree-hasher.h, to resolve
compilation dependences and because they are used in few places.
* lto-streamer.h'output_block::string_hash_table
* lto-streamer-in.c'file_name_hash_table
* lto-streamer.c'tree_htab
The struct string_slot moves from data-streamer.h to lto-streamer.h to
resolve compilation dependences.
Tested on x86_64.
Index: gcc/ChangeLog
2013-04-25 Lawrence Crowl <crowl@google.com>
* Makefile.in: Update as needed below.
* alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
Move declaration to after the type's method definitons.
* attribs.c (htab_t scoped_attributes::attribute_hash):
Change type to hash_table. Update dependent calls and types.
* bitmap.c (htab_t bitmap_desc_hash):
Change type to hash_table. Update dependent calls and types.
* cselib.c (htab_t cselib_hash_table):
Change type to hash_table. Update dependent calls and types.
* data-streamer.h (struct string_slot): Move to lto-streamer.h.
(hash_string_slot_node): Move implementation into lto-streamer.h
struct string_slot_hasher.
(eq_string_slot_node): Likewise.
* data-streamer-out.c: Update output_block::string_hash_table
dependent calls and types.
* dwarf2cfi.c (htab_t trace_index):
Change type to hash_table. Update dependent calls and types.
* dwarf2out.c (htab_t break_out_includes::cu_hash_table):
Change type to hash_table. Update dependent calls and types.
(htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
(htab_t optimize_external_refs::map): Likewise.
(htab_t output_comp_unit::extern_map): Likewise.
(htab_t output_comdat_type_unit::extern_map): Likewise.
(htab_t output_macinfo::macinfo_htab): Likewise.
(htab_t optimize_location_lists::htab): Likewise.
(htab_t dwarf2out_finish::comdat_type_table): Likewise.
* except.c (htab_t ehspec_hash_type):
Change type to hash_table. Update dependent calls and types.
(assign_filter_values::ttypes): Likewise.
(assign_filter_values::ehspec): Likewise.
(sjlj_assign_call_site_values::ar_hash): Likewise.
(convert_to_eh_region_ranges::ar_hash): Likewise.
* gcse.c (htab_t pre_ldst_table):
Change type to hash_table. Update dependent calls and types.
* ggc-common.c (htab_t saving_htab):
Change type to hash_table. Update dependent calls and types.
(htab_t loc_hash): Likewise.
(htab_t ptr_hash): Likewise.
(call_count): Rename ggc_call_count.
(call_alloc): Rename ggc_call_alloc.
(loc_descriptor): Rename make_loc_descriptor.
(add_statistics): Rename ggc_add_statistics.
* ggc-common.c (saving_htab):
Change type to hash_table. Update dependent calls and types.
* gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
(push_gimplify_context): Likewise.
(pop_gimplify_context): Likewise.
(struct gimple_temp_hash_elt): Added.
(struct gimplify_hasher): Likewise.
(struct gimplify_ctx.temp_htab):
Change type to hash_table. Update dependent calls and types.
* gimple-fold.c: Include gimplify-ctx.h.
* gimple-ssa-strength-reduction.c (htab_t base_cand_map):
Change type to hash_table. Update dependent calls and types.
(base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
avoid potential global name collision.
* gimplify.c: Include gimplify-ctx.h.
(struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
(htab_t gimplify_ctx::temp_htab):
Update dependent calls and types for new type hash_table.
(gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
(gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
* gimplify-ctx.h: New.
(struct gimple_temp_hash_elt): Move from gimplify.c.
(class gimplify_hasher): New.
(struct gimplify_ctx): Move from gimple.h.
(htab_t gimplify_ctx::temp_htab):
Change type to hash_table. Update dependent calls and types.
* graphite-clast-to-gimple.c: Include graphite-htab.h.
(htab_t ivs_params::newivs_index):
Change type to hash_table. Update dependent calls and types.
(htab_t ivs_params::params_index): Likewise.
(htab_t print_generated_program::params_index): Likewise.
(htab_t gloog::newivs_index): Likewise.
(htab_t gloog::params_index): Likewise.
* graphite.c: Include graphite-htab.h.
4htab_t graphite_transform_loops::bb_pbb_mapping):
Change type to hash_table. Update dependent calls and types.
* graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
(bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
(eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
* graphite-dependences.c: Include graphite-htab.h.
(loop_is_parallel_p): Change hash table type of parameter.
* graphite-htab.h: New.
(typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
(extern find_pbb_via_hash): Move from graphite-poly.h.
(extern loop_is_parallel_p): Move from graphite-poly.h.
(extern get_loop_body_pbbs): Move from graphite-poly.h.
* graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
(extern loop_is_parallel_p): Move to graphite-htab.h.
(extern get_loop_body_pbbs): Move to graphite-htab.h.
* haifa-sched.c (htab_t delay_htab):
Change type to hash_table. Update dependent calls and types.
(htab_t delay_htab_i2): Likewise.
* ira-color.c (htab_t allocno_hard_regs_htab):
Change type to hash_table. Update dependent calls and types.
* ira-costs.c (htab_t cost_classes_htab):
Change type to hash_table. Update dependent calls and types.
* loop-invariant.c (htab_t merge_identical_invariants::eq):
Change type to hash_table. Update dependent calls and types.
* loop-iv.c (htab_t bivs):
Change type to hash_table. Update dependent calls and types.
* loop-unroll.c (htab_t opt_info::insns_to_split):
Change type to hash_table. Update dependent calls and types.
(htab_t opt_info::insns_with_var_to_expand): Likewise.
* lto-streamer.h (struct string_slot): Move from data-streamer.h
(struct string_slot_hasher): New.
(htab_t output_block::string_hash_table):
Change type to hash_table. Update dependent calls and types.
* lto-streamer-in.c (freeing_string_slot_hasher): New.
(htab_t file_name_hash_table):
Change type to hash_table. Update dependent calls and types.
* lto-streamer-out.c: Update output_block::string_hash_table dependent
calls and types.
* lto-streamer.c (htab_t tree_htab):
Change type to hash_table. Update dependent calls and types.
* omp-low.c: Include gimplify-ctx.h.
* passes.c (htab_t name_to_pass_map):
Change type to hash_table. Update dependent calls and types.
(pass_traverse): Rename to passes_pass_traverse.
* plugin.c (htab_t event_tab):
Change type to hash_table. Update dependent calls and types.
* postreload-gcse.c (htab_t expr_table):
Change type to hash_table. Update dependent calls and types.
(dump_hash_table_entry): Rename dump_expr_hash_table_entry.
* sese.c (debug_rename_map_1): Make extern.
(htab_t copy_bb_and_scalar_dependences::rename_map):
Change type to hash_table. Update dependent calls and types.
* sese.h (extern debug_rename_map): Move to .c file.
* store-motion.c (htab_t store_motion_mems_table):
Change type to hash_table. Update dependent calls and types.
* trans-mem.c (htab_t tm_new_mem_hash):
Change type to hash_table. Update dependent calls and types.
* tree-browser.c (htab_t TB_up_ht):
Change type to hash_table. Update dependent calls and types.
* tree-cfg.c (htab_t discriminator_per_locus):
Change type to hash_table. Update dependent calls and types.
* tree-complex.c: Include tree-hasher.h
(htab_t complex_variable_components):
Change type to hash_table. Update dependent calls and types.
* tree-eh.c (htab_t finally_tree):
Change type to hash_table. Update dependent calls and types.
* tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
struct int_tree_hasher.
(extern int_tree_map_eq): Likewise.
(uid_decl_map_hash): Removed.
(extern decl_tree_map_eq): Likewise.
* tree-hasher.h: New.
(struct int_tree_hasher): New.
(typedef int_tree_htab_type): New.
* tree-inline.c: Include gimplify-ctx.h.
* tree-mudflap.c: Include gimplify-ctx.h.
* tree-parloops.c: Include tree-hasher.h.
(htab_t eliminate_local_variables_stmt::decl_address):
Change type to hash_table. Update dependent calls and types.
(htab_t separate_decls_in_region::decl_copies): Likewise.
* tree-scalar-evolution.c (htab_t resolve_mixers::cache):
Change type to hash_table. Update dependent calls and types.
* tree-sra.c (candidates):
Change type to hash_table. Update dependent calls and types.
* tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
in tree-flow.h.
(int_tree_map_hash): Likewise.
* tree-ssa-dom.c (htab_t avail_exprs):
Change type to hash_table. Update dependent calls and types.
* tree-ssa-live.c (var_map_base_init::tree_to_index):
Change type to hash_table. Update dependent calls and types.
* tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
Change type to hash_table. Update dependent calls and types.
* tree-ssa-phiopt.c (seen_ssa_names):
Change type to hash_table. Update dependent calls and types.
* tree-ssa-strlen.c (decl_to_stridxlist_htab):
Change type to hash_table. Update dependent calls and types.
* tree-ssa-uncprop.c (equiv):
Change type to hash_table. Update dependent calls and types.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198329 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gimple-streamer-out.c: Include value-prof.h.
(output_gimple_stmt): Output histogram.
(output_bb): Use streamer_write_gcov_count.
* value-prof.c: Include data-streamer.h
(dump_histogram_value): Add HIST_TYPE_MAX.
(stream_out_histogram_value): New function.
(stream_in_histogram_value): New function.
* value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
(stream_out_histogram_value, stream_in_histogram_value): Declare.
* data-streamer-out.c (streamer_write_gcov_count): New function.
(streamer_write_gcov_count_stream): New function.
* lto-cgraph.c (lto_output_edge): Update counter streaming.
(lto_output_node): Likewise.
(input_node, input_edge): Likewise.
* lto-streamer-out.c (output_cfg): Update streaming.
* lto-streamer-in.c (input_cfg): Likewise.
* data-streamer.h (streamer_write_gcov_count,
streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
* gimple-streamer-in.c: Include value-prof.h
(input_gimple_stmt): Input histograms.
(input_bb): Update profile streaming.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197205 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* lto-streamer-out.c (output_symbol_p): Skip references from
constructors of external variables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196613 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR lto/56297
* lto-streamer-out.c (write_symbol): Do not output symbols
for hard register variables.
* gcc.dg/lto/pr56297_0.c: New testcase.
* gcc.dg/lto/pr56297_0.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195979 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR lto/56231
* lto-streamer.h (struct data_in): Remove current_file, current_line
and current_col members.
* lto-streamer-out.c (lto_output_location): Stream changed bits
en-block for efficiency.
* lto-streamer-in.c (clear_line_info): Remove.
(lto_input_location): Cache current file, line and column
globally via local statics. Read changed bits en-block.
(input_function): Do not call clear_line_info.
(lto_read_body): Likewise.
(lto_input_toplevel_asms): Likewise.
lto/
* lto-lang.c (lto_init): Do not enter a dummy file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195884 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195098 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194903 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* cgraph.h (symtab_real_symbol_p): Drop code looking for external functions.
* lto-streamer-out.c (output_symbol_p): New function.
(produce_symtab) Use it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194700 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
variables in the global contant pool.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194324 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
based on the template class 'vec'. The user-visible changes are
described in http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec.
I have tested the patch pretty extensively:
- Regular bootstraps on x86_64, ppc, ia64, sparc and hppa.
- Bootstraps with --enable-checking=release
- Bootstraps with --enable-checking=gc,gcac
- Basic builds on all targets (using contrib/config-list.mk).
We no longer access the vectors via VEC_* macros. The pattern is
"VEC_operation (T, A, V, args)" becomes "V.operation (args)".
The only thing I could not do is create proper ctors and dtors for the
vec class. Since these vectors are stored in unions, we
have to keep them as PODs (C++03 does not allow non-PODs in unions).
This means that creation and destruction must be explicit. There is a
new method vec<type, allocation, layout>::create() and another vec<type,
allocation, layout>::destroy() to allocate the internal vector.
For vectors that must be pointers, there is a family of free functions
that implement the operations that need to tolerate NULL vectors.
These functions all start with the prefix 'vec_safe_'. See the wiki
page for details.
The gengtype change removes the special handling for VEC() that used
to exist in gengtype. Additionally, it allows gengtype to recognize
templates of more than one argument and introduces the concept of an
undefined type (useful for template arguments that may or may not be
types).
When a TYPE_UNDEFINED is reached, gengtype will ignore it if it
happens inside a type marked with GTY((user)). Otherwise, it will
emit an error.
Finally, gengtype rejects root types marked GTY((user)) that are not
first class pointers.
2012-11-16 Diego Novillo <dnovillo@google.com>
VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
* vec.c (register_overhead): Convert it into
member function of vec_prefix.
(release_overhead): Likewise.
(calculate_allocation): Likewise.
(vec_heap_free): Remove.
(vec_gc_o_reserve_1): Remove.
(vec_heap_o_reserve_1): Remove.
(vec_stack_o_reserve_1): Remove.
(vec_stack_o_reserve_exact): Remove.
(register_stack_vec): New.
(stack_vec_register_index): New.
(unregister_stack_vec): New.
(vec_assert_fail): Remove.
* vec.h: Conditionally include ggc.h. Document conditional
hackery.
Update top-level documentation.
(ALONE_VEC_CHECK_INFO): Remove.
(VEC_CHECK_INFO): Remove.
(ALONE_VEC_CHECK_DECL): Remove.
(VEC_CHECK_DECL): Remove.
(ALONE_VEC_CHECK_PASS): Remove.
(VEC_CHECK_PASS): Remove.
(VEC_ASSERT): Remove.
(vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and
va_stack.
Mark fields alloc_ and num_ as protected.
(struct vec_t): Remove. Remove all function members.
(struct vl_embed): Declare.
(struct vl_ptr): Declare.
(free): Remove.
(reserve_exact): Remove.
(reserve): Remove.
(safe_splice): Remove.
(safe_push): Remove.
(safe_grow): Remove.
(safe_grow_cleared): Remove.
(safe_insert): Remove.
(DEF_VEC_I): Remove.
(DEF_VEC_ALLOC_I): Remove.
(DEF_VEC_P): Remove.
(DEF_VEC_ALLOC_P): Remove.
(DEF_VEC_O): Remove.
(DEF_VEC_ALLOC_O): Remove.
(DEF_VEC_ALLOC_P_STACK): Remove.
(DEF_VEC_ALLOC_O_STACK): Remove.
(DEF_VEC_ALLOC_I_STACK): Remove.
(DEF_VEC_A): Remove.
(DEF_VEC_ALLOC_A): Remove.
(vec_stack_p_reserve_exact_1): Remove.
(vec_stack_o_reserve): Remove.
(vec_stack_o_reserve_exact): Remove.
(VEC_length): Remove.
(VEC_empty): Remove.
(VEC_address): Remove.
(vec_address): Remove.
(VEC_last): Remove.
(VEC_index): Remove.
(VEC_iterate): Remove.
(VEC_embedded_size): Remove.
(VEC_embedded_init): Remove.
(VEC_free): Remove.
(VEC_copy): Remove.
(VEC_space): Remove.
(VEC_reserve): Remove.
(VEC_reserve_exact): Remove.
(VEC_splice): Remove.
(VEC_safe_splice): Remove.
(VEC_quick_push): Remove.
(VEC_safe_push): Remove.
(VEC_pop): Remove.
(VEC_truncate): Remove.
(VEC_safe_grow): Remove.
(VEC_replace): Remove.
(VEC_quick_insert): Remove.
(VEC_safe_insert): Remove.
(VEC_ordered_remove): Remove.
(VEC_unordered_remove): Remove.
(VEC_block_remove): Remove.
(VEC_lower_bound): Remove.
(VEC_alloc): Remove.
(VEC_qsort): Remove.
(va_heap): Declare.
(va_heap::default_layout): New typedef to vl_ptr.
(va_heap::reserve): New.
(va_heap::release): New.
(va_gc): Declare.
(va_gc::default_layout): New typedef to vl_embed.
(va_gc::reserve): New.
(va_gc::release): New.
(va_gc_atomic): Declare. Inherit from va_gc.
(va_stack): Declare.
(va_stack::default_layout): New typedef to vl_ptr.
(va_stack::alloc): New.
(va_stack::reserve): New.
(va_stack::release): New.
(register_stack_vec): Declare.
(stack_vec_register_index): Declare.
(unregister_stack_vec): Declare.
(vec<T, A = va_heap, L = typename A::default_layout>): Declare
empty vec template.
(vec<T, A, vl_embed>): Partial specialization for embedded
layout.
(vec<T, A, vl_embed>::allocated): New.
(vec<T, A, vl_embed>::length): New.
(vec<T, A, vl_embed>::is_empty): New.
(vec<T, A, vl_embed>::address): New.
(vec<T, A, vl_embed>::operator[]): New.
(vec<T, A, vl_embed>::last New.
(vec<T, A, vl_embed>::space): New.
(vec<T, A, vl_embed>::iterate): New.
(vec<T, A, vl_embed>::iterate): New.
(vec<T, A, vl_embed>::copy): New.
(vec<T, A, vl_embed>::splice): New.
(vec<T, A, vl_embed>::quick_push New.
(vec<T, A, vl_embed>::pop New.
(vec<T, A, vl_embed>::truncate): New.
(vec<T, A, vl_embed>::quick_insert): New.
(vec<T, A, vl_embed>::ordered_remove): New.
(vec<T, A, vl_embed>::unordered_remove): New.
(vec<T, A, vl_embed>::block_remove): New.
(vec<T, A, vl_embed>::qsort): New.
(vec<T, A, vl_embed>::lower_bound): New.
(vec<T, A, vl_embed>::embedded_size): New.
(vec<T, A, vl_embed>::embedded_init): New.
(vec<T, A, vl_embed>::quick_grow): New.
(vec<T, A, vl_embed>::quick_grow_cleared): New.
(vec_safe_space): New.
(vec_safe_length): New.
(vec_safe_address): New.
(vec_safe_is_empty): New.
(vec_safe_reserve): New.
(vec_safe_reserve_exact): New.
(vec_alloc): New.
(vec_free): New.
(vec_safe_grow): New.
(vec_safe_grow_cleared): New.
(vec_safe_iterate): New.
(vec_safe_push): New.
(vec_safe_insert): New.
(vec_safe_truncate): New.
(vec_safe_copy): New.
(vec_safe_splice): New.
(vec<T, A, vl_ptr>): New partial specialization for the space
efficient layout.
(vec<T, A, vl_ptr>::exists): New.
(vec<T, A, vl_ptr>::is_empty): New.
(vec<T, A, vl_ptr>::length): New.
(vec<T, A, vl_ptr>::address): New.
(vec<T, A, vl_ptr>::operator[]): New.
(vec<T, A, vl_ptr>::operator!=): New.
(vec<T, A, vl_ptr>::operator==): New.
(vec<T, A, vl_ptr>::last): New.
(vec<T, A, vl_ptr>::space): New.
(vec<T, A, vl_ptr>::iterate): New.
(vec<T, A, vl_ptr>::copy): New.
(vec<T, A, vl_ptr>::reserve): New.
(vec<T, A, vl_ptr>::reserve_exact): New.
(vec<T, A, vl_ptr>::splice): New.
(vec<T, A, vl_ptr>::safe_splice): New.
(vec<T, A, vl_ptr>::quick_push): New.
(vec<T, A, vl_ptr>::safe_push): New.
(vec<T, A, vl_ptr>::pop): New.
(vec<T, A, vl_ptr>::truncate): New.
(vec<T, A, vl_ptr>::safe_grow): New.
(vec<T, A, vl_ptr>::safe_grow_cleared): New.
(vec<T, A, vl_ptr>::quick_grow): New.
(vec<T, A, vl_ptr>::quick_grow_cleared): New.
(vec<T, A, vl_ptr>::quick_insert): New.
(vec<T, A, vl_ptr>::safe_insert): New.
(vec<T, A, vl_ptr>::ordered_remove): New.
(vec<T, A, vl_ptr>::unordered_remove): New.
(vec<T, A, vl_ptr>::block_remove): New.
(vec<T, A, vl_ptr>::qsort): New.
(vec<T, A, vl_ptr>::lower_bound): New.
(vec_stack_alloc): Define.
(FOR_EACH_VEC_SAFE_ELT): Define.
* vecir.h: Remove. Update all users.
* vecprim.h: Remove. Update all users.
Move uchar to coretypes.h.
* Makefile.in (VEC_H): Add $(GGC_H).
Remove vecir.h and vecprim.h dependencies everywhere.
2012-11-16 Diego Novillo <dnovillo@google.com>
* gengtype-lex.l (VEC): Remove.
Add characters in the set [\!\>\.-].
* gengtype-parse.c (token_names): Remove "VEC".
(require_template_declaration): Remove handling of VEC_TOKEN.
(type): Likewise.
Call create_user_defined_type when parsing GTY((user)).
* gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED.
(write_state_undefined_type): New.
(write_state_type): Call write_state_undefined_type for
TYPE_UNDEFINED.
(read_state_type): Call read_state_undefined_type for
TYPE_UNDEFINED.
* gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED.
(create_user_defined_type): Make extern.
(type_for_name): Factor out of resolve_typedef.
(create_undefined_type): New
(resolve_typedef): Call it when we cannot find a previous
typedef and the type is not a template.
(find_structure): Accept TYPE_UNDEFINED.
(set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES,
default to false.
Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or
ALLOWED_UNDEFINED_TYPES is set.
Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT.
(filter_type_name): Accept templates with more than one
argument.
(output_mangled_typename): Handle TYPE_UNDEFINED
(walk_type): Likewise.
(write_types_process_field): Likewise.
(write_func_for_structure): If CHAIN_NEXT is set, ORIG_S
should not be a user-defined type.
(write_types_local_user_process_field): Handle TYPE_ARRAY,
TYPE_NONE and TYPE_UNDEFINED.
(write_types_local_process_field): Likewise.
(contains_scalar_p): Return 0 for TYPE_USER_STRUCT.
(write_root): Reject user-defined types that are not pointers.
Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT
and TYPE_PARAM_STRUCT.
(output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and
TYPE_ARRAY.
(dump_typekind): Handle TYPE_UNDEFINED.
* gengtype.h (enum typekind): Add TYPE_UNDEFINED.
(create_user_defined_type): Declare.
(enum gty_token): Remove VEC_TOKEN.
2012-11-16 Diego Novillo <dnovillo@google.com>
Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
* coretypes.h (uchar): Define.
* alias.c: Use new vec API in vec.h.
* asan.c: Likewise.
* attribs.c: Likewise.
* basic-block.h: Likewise.
* bb-reorder.c: Likewise.
* builtins.c: Likewise.
* calls.c: Likewise.
* cfg.c: Likewise.
* cfganal.c: Likewise.
* cfgcleanup.c: Likewise.
* cfgexpand.c: Likewise.
* cfghooks.c: Likewise.
* cfghooks.h: Likewise.
* cfgloop.c: Likewise.
* cfgloop.h: Likewise.
* cfgloopanal.c: Likewise.
* cfgloopmanip.c: Likewise.
* cfgrtl.c: Likewise.
* cgraph.c: Likewise.
* cgraph.h: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* compare-elim.c: Likewise.
* coverage.c: Likewise.
* cprop.c: Likewise.
* data-streamer.h: Likewise.
* dbxout.c: Likewise.
* dce.c: Likewise.
* df-core.c: Likewise.
* df-problems.c: Likewise.
* df-scan.c: Likewise.
* dominance.c: Likewise.
* domwalk.c: Likewise.
* domwalk.h: Likewise.
* dse.c: Likewise.
* dwarf2cfi.c: Likewise.
* dwarf2out.c: Likewise.
* dwarf2out.h: Likewise.
* emit-rtl.c: Likewise.
* except.c: Likewise.
* except.h: Likewise.
* expr.c: Likewise.
* expr.h: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* function.h: Likewise.
* fwprop.c: Likewise.
* gcc.c: Likewise.
* gcse.c: Likewise.
* genattr.c: Likewise.
* genattrtab.c: Likewise.
* genautomata.c: Likewise.
* genextract.c: Likewise.
* genopinit.c: Likewise
* ggc-common.c: Likewise.
* ggc.h: Likewise.
* gimple-low.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple.c: Likewise.
* gimple.h: Likewise.
* gimplify.c: Likewise.
* graph.c: Likewise.
* graphds.c: Likewise.
* graphds.h: Likewise.
* graphite-blocking.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-poly.h: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-scop-detection.h: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* godump.c: Likewise.
* haifa-sched.c: Likewise.
* hw-doloop.c: Likewise.
* hw-doloop.h: Likewise.
* ifcvt.c: Likewise.
* insn-addr.h: Likewise.
* ipa-cp.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-inline-transform.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-inline.h: Likewise.
* ipa-prop.c: Likewise.
* ipa-prop.h: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-ref-inline.h: Likewise.
* ipa-ref.c: Likewise.
* ipa-ref.h: Likewise.
* ipa-reference.c: Likewise.
* ipa-split.c: Likewise.
* ipa-utils.c: Likewise.
* ipa-utils.h: Likewise.
* ipa.c: Likewise.
* ira-build.c: Likewise.
* ira-color.c: Likewise.
* ira-emit.c: Likewise.
* ira-int.h: Likewise.
* ira.c: Likewise.
* loop-invariant.c: Likewise.
* loop-unroll.c: Likewise.
* lower-subreg.c: Likewise.
* lra-lives.c: Likewise.
* lra.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-section-out.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* lto-streamer.h: Likewise.
* lto-symtab.c: Likewise.
* mcf.c: Likewise.
* modulo-sched.c: Likewise.
* omp-low.c: Likewise.
* opts-common.c: Likewise.
* opts-global.c: Likewise.
* opts.c: Likewise.
* opts.h: Likewise.
* passes.c: Likewise.
* predict.c: Likewise.
* print-tree.c: Likewise.
* profile.c: Likewise.
* profile.h: Likewise.
* read-rtl.c: Likewise.
* ree.c: Likewise.
* reg-stack.c: Likewise.
* regrename.c: Likewise.
* regrename.h: Likewise.
* reload.c: Likewise.
* reload.h: Likewise.
* reload1.c: Likewise.
* rtl.h: Likewise.
* sched-deps.c: Likewise.
* sched-int.h: Likewise.
* sdbout.c: Likewise.
* sel-sched-dump.c: Likewise.
* sel-sched-ir.c: Likewise.
* sel-sched-ir.h: Likewise.
* sel-sched.c: Likewise.
* sese.c: Likewise.
* sese.h: Likewise.
* statistics.h: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* store-motion.c: Likewise.
* tlink.c: Likewise.
* toplev.c: Likewise.
* trans-mem.c: Likewise.
* tree-browser.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-chrec.c: Likewise.
* tree-chrec.h: Likewise.
* tree-complex.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-data-ref.h: Likewise.
* tree-dfa.c: Likewise.
* tree-diagnostic.c: Likewise.
* tree-dump.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-flow.h: Likewise.
* tree-if-conv.c: Likewise.
* tree-inline.c: Likewise.
* tree-inline.h: Likewise.
* tree-into-ssa.c: Likewise.
* tree-iterator.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-mudflap.c: Likewise.
* tree-optimize.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-phinodes.c: Likewise.
* tree-predcom.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-address.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-live.h: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-operands.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-sccvn.h: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* tree-ssanames.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-streamer-in.c: Likewise.
* tree-streamer-out.c: Likewise.
* tree-streamer.c: Likewise.
* tree-streamer.h: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vectorizer.h: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* tree.h: Likewise.
* value-prof.c: Likewise.
* value-prof.h: Likewise.
* var-tracking.c: Likewise.
* varasm.c: Likewise.
* varpool.c: Likewise.
* vmsdbgout.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/c6x/c6x.c: Likewise.
* config/darwin.c: Likewise.
* config/i386/i386.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/mep/mep.c: Likewise.
* config/mips/mips.c: Likewise.
* config/pa/pa.c: Likewise.
* config/rs6000/rs6000-c.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rx/rx.c: Likewise.
* config/spu/spu-c.c: Likewise.
* config/vms/vms.c: Likewise.
* config/vxworks.c: Likewise.
* config/epiphany/resolve-sw-modes.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193595 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/invoke.texi: Update -fopt-info documentation.
* dumpfile.c: Move dump_flags here from passes.c.
Rename opt_info_options to optinfo_verbosity_options.
Add optgroup_options.
(dump_files): Add field for optinfo_flags in the static initializer.
(dump_register): Handle additional parameter for optgroup_flags.
(opt_info_enable_passes): Renamed opt_info_enable_all. Handle
optgroup_flags. Fix documentation.
(opt_info_switch_p_1): Handle optgroup options.
(opt_info_switch_p): Handle optgroup_flags. Warn on multiple files.
* dumpfile.h (dump_register): Additional argument for optgroup_flags.
All callers updated.
(struct dump_file_info): Add field for optgroup_flags.
Define OPTGROUP_* flags.
* tree-pass.h (struct opt_pass): Add addtional field for optinfo_flags.
All opt_pass static initializers updated.
* opts-global.c (dump_remap_tree_vectorizer_verbose): Use 'all'
instead of 'optall'.
(handle_common_deferred_options): Fix typo in error message.
* passes.c (register_one_dump_file): Add argument for optgroup_flags.
Turn on OPTGROUP_IPA for IPA passes.
Move dump_flags from here to dumpfile.c.
* statistics.c (statistics_early_init): Use OPTGROUP_NONE in call to
dump_register.
testsuite/ChangeLog
* testsuite/gcc.dg/plugin/selfassign.c: Add opgtroup_flags initializer.
* testsuite/gcc.dg/plugin/one_time_plugin.c: Likewise.
* testsuite/g++.dg/plugin/selfassign.c: Likewise.
* testsuite/g++.dg/plugin/dumb_plugin.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193061 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and applies them to the use of cgraph_node, varpool_node, and symtab_node.
The functions are:
bool is_a <TYPE> (pointer)
Tests whether the pointer actually points to a more derived TYPE.
TYPE *as_a <TYPE> (pointer)
Converts pointer to a TYPE*.
TYPE *dyn_cast <TYPE> (pointer)
Converts pointer to TYPE* if and only if "is_a <TYPE> pointer".
Otherwise, returns NULL.
This function is essentially a checked down cast.
These functions reduce compile time and increase type safety when treating a
generic item as a more specific item. In essence, the code change is from
if (symtab_function_p (node))
{
struct cgraph_node *cnode = cgraph (node);
....
}
to
if (cgraph_node *cnode = dyn_cast <cgraph_node> (node))
{
....
}
The necessary conditional test defines a variable that holds a known good
pointer to the specific item and avoids subsequent conversion calls and
the assertion checks that may come with them.
When, the property test is embedded within a larger condition, the variable
declaration gets pulled out of the condition. (This leaves some room for
using the variable inappropriately.)
if (symtab_variable_p (node)
&& varpool (node)->finalized)
varpool_analyze_node (varpool (node));
becomes
varpool_node *vnode = dyn_cast <varpool_node> (node);
if (vnode && vnode->finalized)
varpool_analyze_node (vnode);
Note that we have converted two sets of assertions in the calls to varpool
into safe and efficient use of a variable.
There are remaining calls to symtab_function_p and symtab_variable_p that
do not involve a pointer to a more specific type. These have been converted
to calls to a functions is_a <cgraph_node> and is_a <varpool_node>. The
original predicate functions have been removed.
The cgraph.h header defined both a struct and a function with the name
varpool_node. This name overloading can cause some unintuitive error messages
when, as is common in C++, one omits the struct keyword when using the type.
I have renamed the function to varpool_node_for_decl.
Tested on x86_64.
Index: gcc/ChangeLog
2012-10-31 Lawrence Crowl <crowl@google.com>
* is-a.h: New.
(is_a <T> (U*)): New. Test for is-a relationship.
(as_a <T> (U*)): New. Treat as a derived type.
(dyn_cast <T> (U*)): New. Conditionally cast based on is_a.
* cgraph.h (varpool_node): Rename to varpool_node_for_decl.
Adjust callers to match.
(is_a_helper <cgraph_node>::test (symtab_node_def *)): New.
(is_a_helper <varpool_node>::test (symtab_node_def *)): New.
(symtab_node_def::try_function): New. Change most calls to
symtab_function_p with calls to dyn_cast <cgraph_node> (p).
(symtab_node_def::try_variable): New. Change most calls to
symtab_variable_p with calls to dyn_cast <varpool_node> (p).
(symtab_function_p): Remove. Change callers to use
is_a <cgraph_node> (p) instead.
(symtab_variable_p): Remove. Change callers to use
is_a <varpool_node> (p) instead.
* cgraph.c (cgraph_node_for_asm): Remove redundant call to
symtab_node_for_asm.
* cgraphunit.c (symbol_finalized_and_needed): New.
(symbol_finalized): New.
(cgraph_analyze_functions): Split complicated conditionals out into
above new functions.
* Makefile.in (CGRAPH_H): Add is-a.h as used by cgraph.h.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193051 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lto-streamer.h (enum LTO_tags): Add LTO_integer_cst.
* lto-streamer-in.c (lto_input_tree): Use it.
* lto-streamer-out.c (lto_output_tree): Likewise, for
!TREE_OVERFLOW integer constants only.
* tree-streamer-in.c (unpack_ts_int_cst_value_fields): New function.
(unpack_value_fields): Call it.
(streamer_read_integer_cst): Simplify.
* tree-streamer-out.c (pack_ts_int_cst_value_fields): New function.
(streamer_pack_tree_bitfields): Call it.
(streamer_write_integer_cst): Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192559 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lto-streamer-in.c (lto_input_location_bitpack): Rename to ...
(lto_input_location): ... this. Kill original.
(input_eh_region): Adjust.
(input_struct_function_base): Likewise.
(lto_read_tree): Likewise.
* lto-streamer-out.c (lto_output_location_bitpack): Rename to ...
(lto_output_location): ... this. Kill original.
(lto_write_tree): Adjust.
(output_eh_region): Likewise.
(output_struct_function_base): Likewise.
* lto-streamer.c (lto_streamer_hooks_init): Initialize location
hooks.
* lto-streamer.h (lto_input_location): Adjust prototype.
(lto_output_location): Likewise.
* streamer-hooks.h (struct streamer_hooks): Adjust prototype
of input_location and output_location hooks.
(stream_input_location): New define.
(stream_output_location): Likewise.
* tree-streamer-in.c (unpack_ts_block_value_fields): Adjust.
(unpack_value_fields): Likewise.
(streamer_read_tree_bitfields): Likewise.
(lto_input_ts_decl_minimal_tree_pointers): Likewise.
(lto_input_ts_exp_tree_pointers): Likewise.
(lto_input_ts_block_tree_pointers): Likewise.
* tree-streamer-out.c (pack_ts_block_value_fields): Adjust.
(streamer_pack_tree_bitfields): Likewise.
(write_ts_decl_minimal_tree_pointers): Likewise.
(write_ts_exp_tree_pointers): Likewise.
(write_ts_block_tree_pointers): Likewise.
* gimple-streamer-in.c (input_phi): Adjust.
(input_gimple_stmt): Likewise.
* gimple-streamer-out.c (output_phi): Adjust.
(output_gimple_stmt): Likewise.
* tree-streamer.h (streamer_read_tree_bitfields): Adjust prototype.
(streamer_pack_tree_bitfields): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192317 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
PR lto/54776
* lto-streamer-out.c (produce_symtab): Cleanup; drop v1 API hack.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192166 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR lto/47799
* lto-streamer-out.c (tree_is_indexable): Make PARM_DECLs global.
(lto_output_tree_ref): Handle references to them.
(output_function): Do not output function arguments again.
* lto-streamer-in.c (input_function): Do not input arguments
again, nor overwrite them.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191824 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* function.c (push_cfun): Check old current_function_decl matches
old cfun, set new current_function_decl to the decl of the new
cfun.
(push_struct_function): Likewise.
(pop_cfun): Likewise.
(allocate_struct_function): Move call to
invoke_set_current_function_hook to the end of the function.
* cfgexpand.c (estimated_stack_frame_size): Do not set and restore
current_function_decl.
* cgraph.c (cgraph_release_function_body): Likewise.
* cgraphunit.c (cgraph_process_new_functions): Likewise.
(cgraph_add_new_function): Likewise.
(cgraph_analyze_function): Likewise.
(assemble_thunk): Set cfun to NULL at the end.
(expand_function): Move call to set_cfun downwards.
* gimple-low.c (record_vars_into): Only check current_function_decl
before possibly doing push_cfun.
* gimplify.c (gimplify_function_tree): Do not set and restore
current_function_decl.
* ipa-inline-analysis.c (compute_inline_parameters): Likewise.
(inline_analyze_function): Likewise.
* ipa-prop.c (ipa_analyze_node): Likewise.
* ipa-pure-const.c (analyze_function): Likewise.
* lto-streamer-in.c (lto_input_function_body): Do not set
current_function_decl.
* lto-streamer-out.c (output_function): Do not set and restore
current_function_decl.
* omp-low.c (finalize_task_copyfn): Likewise.
(expand_omp_taskreg): Likewise.
(create_task_copyfn): Likewise, move push_cfun up quite a bit.
* passes.c (dump_passes): Do not set and restore current_function_decl.
(do_per_function): Likewise.
(do_per_function_toporder): Likewise.
* trans-mem.c (ipa_tm_scan_irr_function): Likewise.
(ipa_tm_transform_transaction): Likewise.
(ipa_tm_transform_clone): Likewise.
(ipa_tm_execute): Likewise.
* tree-emutls.c (lower_emutls_function_body): Likewise.
* tree-inline.c (initialize_cfun): Do not call pop_cfun.
(tree_function_versioning): Do not call push_cfun, do not set and
restore current_function_decl. Remove assert checking consistency of
cfun and current_function_decl.
* tree-profile.c (tree_profiling): Do not set and restore
current_function_decl.
* tree-sra.c (convert_callers_for_node): Do not set
current_function_decl.
(convert_callers): Do not restore current_function_decl.
(modify_function): Do not set current_function_decl.
* tree-ssa-structalias.c (ipa_pta_execute): Do not set and restore
current_function_decl.
fortran/
* trans-decl.c (gfc_get_extern_function_decl): Push NULL cfun. Do not
set and restore current_function_decl.
(gfc_init_coarray_decl): Do not set and restore current_function_decl.
lto/
* lto.c (lto_materialize_function): Call push_struct_function and
pop_cfun.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191577 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gcc:
2012-09-19 Dehao Chen <dehao@google.com>
* toplev.c (general_init): Init block_locations.
* tree.c (tree_set_block): New.
(tree_block): Change to use LOCATION_BLOCK.
* tree.h (TREE_SET_BLOCK): New.
* final.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK.
(final_start_function): Likewise.
* input.c (expand_location_1): Likewise.
* input.h (LOCATION_LOCUS): New.
(LOCATION_BLOCK): New.
(IS_UNKNOWN_LOCATION): New.
* fold-const.c (expr_location_or): Change to use new location.
* reorg.c (emit_delay_sequence): Likewise.
(try_merge_delay_insns): Likewise.
* modulo-sched.c (dump_insn_location): Likewise.
* lto-streamer-out.c (lto_output_location_bitpack): Likewise.
* lto-cgraph.c (output_node_opt_summary): Likewise.
* jump.c (rtx_renumbered_equal_p): Likewise.
* ifcvt.c (noce_try_move): Likewise.
(noce_try_store_flag): Likewise.
(noce_try_store_flag_constants): Likewise.
(noce_try_addcc): Likewise.
(noce_try_store_flag_mask): Likewise.
(noce_try_cmove): Likewise.
(noce_try_cmove_arith): Likewise.
(noce_try_minmax): Likewise.
(noce_try_abs): Likewise.
(noce_try_sign_mask): Likewise.
(noce_try_bitop): Likewise.
(noce_process_if_block): Likewise.
(cond_move_process_if_block): Likewise.
(find_cond_trap): Likewise.
* ipa-prop.c (ipa_set_jf_constant): Likewise.
(ipa_write_jump_function): Likewise.
* dwarf2out.c (add_src_coords_attributes): Likewise.
* expr.c (expand_expr_real): Likewise.
* tree-parloops.c (create_loop_fn): Likewise.
* recog.c (peep2_attempt): Likewise.
* function.c (free_after_compilation): Likewise.
(expand_function_end): Likewise.
(set_insn_locations): Likewise.
(thread_prologue_and_epilogue_insns): Likewise.
* print-rtl.c (print_rtx): Likewise.
* profile.c (branch_prob): Likewise.
* trans-mem.c (ipa_tm_scan_irr_block): Likewise.
* gimplify.c (gimplify_call_expr): Likewise.
* except.c (duplicate_eh_regions_1): Likewise.
* emit-rtl.c (try_split): Likewise.
(make_insn_raw): Likewise.
(make_debug_insn_raw): Likewise.
(make_jump_insn_raw): Likewise.
(make_call_insn_raw): Likewise.
(emit_pattern_after_setloc): Likewise.
(emit_pattern_after): Likewise.
(emit_debug_insn_after): Likewise.
(emit_pattern_before): Likewise.
(emit_insn_before_setloc): Likewise.
(emit_jump_insn_before): Likewise.
(emit_call_insn_before_setloc): Likewise.
(emit_call_insn_before): Likeise.
(emit_debug_insn_before_setloc): Likewise.
(emit_copy_of_insn_after): Likewise.
(insn_locators_alloc): Remove.
(insn_locators_finalize): Remove.
(insn_locators_free): Remove.
(set_curr_insn_source_location): Remove.
(get_curr_insn_source_location): Remove.
(set_curr_insn_block): Remove.
(get_curr_insn_block): Remove.
(locator_scope): Remove.
(insn_scope): Change to use new location.
(locator_location): Remove.
(insn_line): Change to use new location.
(locator_file): Remove.
(insn_file): Change to use new location.
(locator_eq): Remove.
(insn_locations_init): New.
(insn_locations_finalize): New.
(set_curr_insn_location): New.
(curr_insn_location): New.
* cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location.
(expand_gimple_cond): Likewise.
(expand_call_stmt): Likewise.
(expand_gimple_stmt_1): Likewise.
(expand_gimple_basic_block): Likewise.
(construct_exit_block): Likewise.
(gimple_expand_cfg): Likewise.
* cfgcleanup.c (try_forward_edges): Likewise.
* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
(dump_scope_block): Likewise.
(remove_unused_locals): Likewise.
* rtl.c (rtx_equal_p_cb): Likewise.
(rtx_equal_p): Likewise.
* rtl.h (XUINT): New.
(INSN_LOCATOR): Remove.
(CURR_INSN_LOCATION): Remove.
(INSN_LOCATION): New.
(INSN_HAS_LOCATION): New.
* tree-inline.c (remap_gimple_op_r): Change to use new location.
(copy_tree_body_r): Likewise.
(copy_phis_for_bb): Likewise.
(expand_call_inline): Likewise.
* tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise.
* tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
* gimple-streamer-out.c (output_gimple_stmt): Likewise.
* combine.c (try_combine): Likewise.
* tree-outof-ssa.c (set_location_for_edge): Likewise.
(insert_partition_copy_on_edge): Likewise.
(insert_value_copy_on_edge): Likewise.
(insert_rtx_to_part_on_edge): Likewise.
(insert_part_to_rtx_on_edge): Likewise.
* basic-block.h (edge_def): Remove field.
* gimple.h (gimple_statement_base): Remove field.
(gimple_bb): Change to use new location.
(gimple_set_block): Likewise.
(gimple_has_location): Likewise.
* tree-cfg.c (make_cond_expr_edges): Likewise.
(make_goto_expr_edges): Likewise.
(gimple_can_merge_blocks_p): Likewise.
(move_stmt_op): Likewise.
(move_block_to_fn): Likewise.
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* config/i386/i386.c (x86_output_mi_thunk): Likewise.
* config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
* config/sh/sh.c (sh_output_mi_thunk): Likewise.
* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
* config/score/score.c (score_output_mi_thunk): Likewise.
* config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
* config/mips/mips.c (mips_output_mi_thunk): Likewise.
* cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
(unique_locus_on_edge_between_p): Likewise.
(emit_nop_for_unique_locus_between): Likewise.
(force_nonfallthru_and_redirect): Likewise.
(fixup_reorder_chain): Likewise.
(cfg_layout_merge_blocks): Likewise.
* stmt.c (emit_case_nodes): Likewise.
gcc/lto:
2012-09-19 Dehao Chen <dehao@google.com>
* lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.
libcpp:
2012-09-19 Dehao Chen <dehao@google.com>
* include/line-map.h (MAX_SOURCE_LOCATION): New value.
(location_adhoc_data_fini): New.
(get_combined_adhoc_loc): New.
(get_data_from_adhoc_loc): New.
(get_location_from_adhoc_loc): New.
(location_adhoc_data_map): New.
(COMBINE_LOCATION_DATA): New.
(IS_ADHOC_LOC): New.
(expanded_location): New field.
(line_maps): New field.
* line-map.c (location_adhoc_data): New.
(location_adhoc_data_hash): New.
(location_adhoc_data_eq): New.
(location_adhoc_data_update): New.
(get_combined_adhoc_loc): New.
(get_data_from_adhoc_loc): New.
(get_location_from_adhoc_loc): New.
(location_adhoc_data_init): New.
(location_adhoc_data_fini): New.
(linemap_init): Initialize location_adhoc_data.
(linemap_lookup): Change to use new location.
(linemap_ordinary_map_lookup): Likewise.
(linemap_macro_map_lookup): Likewise.
(linemap_macro_map_loc_to_def_point): Likewise.
(linemap_macro_map_loc_unwind_toward_spel): Likewise.
(linemap_get_expansion_line): Likewise.
(linemap_get_expansion_filename): Likewise.
(linemap_location_in_system_header_p): Likewise.
(linemap_location_from_macro_expansion_p): Likewise.
(linemap_macro_loc_to_spelling_point): Likewise.
(linemap_macro_loc_to_def_point): Likewise.
(linemap_macro_loc_to_exp_point): Likewise.
(linemap_resolve_location): Likewise.
(linemap_unwind_toward_expansion): Likewise.
(linemap_unwind_to_first_non_reserved_loc): Likewise.
(linemap_expand_location): Likewise.
(linemap_dump_location): Likewise.
(linemap_line_start): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191494 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cfgexpand.c (expand_used_vars): Use virtual_operand_p.
* gimple-pretty-print.c (dump_phi_nodes): Likewise.
* gimple-streamer-out.c (output_bb): Likewise.
* graphite-sese-to-poly.c (scalar_close_phi_node_p): Likewise.
(rewrite_reductions_out_of_ssa): Likewise.
(rewrite_commutative_reductions_out_of_ss): Likewise.
* ipa-split.c (verify_non_ssa_vars): Likewise.
(consider_split): Likewise.
(visit_bb): Likewise.
(split_function): Likewise.
* lto-streamer-out.c (output_ssa_names): Likewise.
* sese.c (rename_uses): Likewise.
* tree-cfg.c (replace_uses_by): Likewise.
(gimple_merge_blocks): Likewise.
(gimple_cfg2dot): Likewise.
(verify_gimple_phi): Likewise.
(replace_ssa_name): Likewise.
(move_block_to_fn): Likewise.
* tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
* tree-if-conv.c (if_convertible_phi_p): Likewise.
(predicate_scalar_phi): Likewise.
* tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
(copy_phis_for_bb): Likewise.
* tree-loop-distribution.c (generate_loops_for_partition): Likewise.
(destroy_loop): Likewise.
* tree-outof-ssa.c (eliminate_useless_phis): Likewise.
(insert_backedge_copies): Likewise.
* tree-parloops.c (transform_to_exit_first_loop): Likewise.
(gather_scalar_reductions): Likewise.
(try_create_reduction_list): Likewise.
* tree-scalar-evolution.c (analyze_scalar_evolution_for_all_loop_ph):
Likewise.
(scev_const_prop): Likewise.
* tree-ssa-ccp.c (debug_lattice_value): Likewise.
(get_default_value): Likewise.
(ccp_initialize): Likewise.
* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
* tree-ssa-copy.c (may_propagate_copy): Likewise.
(init_copy_prop): Likewise.
* tree-ssa-dce.c (propagate_necessity): Likewise.
(remove_dead_phis): Likewise.
(forward_edge_to_pdom): Likewise.
(eliminate_unnecessary_stmts): Likewise.
* tree-ssa-live.c (partition_view_init): Likewise.
(remove_unused_locals): Likewise.
(register_ssa_partition_check): Likewise.
* tree-ssa-loop-im.c (movement_possibility): Likewise.
(move_computations_stmt): Likewise.
* tree-ssa-loop-ivopts.c (determine_biv_step): Likewise.
(record_invariant): Likewise.
(find_interesting_uses_outside): Likewise.
(determine_set_costs): Likewise.
* tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
(find_uses_to_rename_use): Likewise.
(check_loop_closed_ssa_use): Likewise.
(rewrite_phi_with_iv): Likewise.
(canonicalize_loop_ivs): Likewise.
* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
* tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
* tree-ssa-pre.c (make_values_for_phi): Likewise.
(compute_avail): Likewise.
(eliminate): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Likewise.
* tree-ssa-reassoc.c (phi_rank): Likewise.
* tree-ssa-strlen.c (strlen_enter_block): Likewise.
* tree-ssa-structalias.c (compute_points_to_sets): Likewise.
(ipa_pta_execute): Likewise.
* tree-ssa-tail-merge.c (same_succ_hash): Likewise.
(release_last_vdef): Likewise.
(same_phi_alternatives_1): Likewise.
(bb_has_non_vop_phi): Likewise.
(vop_phi): Likewise.
* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
Likewise.
* tree-ssa-uninit.c (warn_uninitialized_phi): Likewise.
(execute_late_warn_uninitialized): Likewise.
* tree-ssa.c (verify_ssa_name): Likewise.
(verify_phi_args): Likewise.
(verify_ssa): Likewise.
* tree-stdarg.c (execute_optimize_stdarg): Likewise.
* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Likewise.
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_can_advance_ivs_p): Likewise.
(vect_update_ivs_after_vectorizer): Likewise.
* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
* tree-vrp.c (remove_range_assertions): Likewise.
* value-prof.c (gimple_divmod_values_to_profile): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190385 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
set and vset arguments.
* ipa-cp.c (ipcp_write_summary): Remove set and vset arugments.
(write_node_summary_p): Likewise; use the encoder.
(ipa_reference_write_optimization_summary): Likewise.
* lto-cgraph.c (output_cgraph_opt_summary): Use encoder.
(lto_symtab_encoder_new): Initialize in_partition field.
(lto_symtab_encoder_delete): Destroy in_partition field.
(LCC_NOT_FOUND): Move to lto-streamer.h
(lto_symtab_encoder_deref): Likewise.
(lto_symtab_encoder_in_partition_p,
lto_set_symtab_encoder_in_partition): New functions.
(referenced_from_other_partition_p): Rewrite to use encoder.
(reachable_from_other_partition_p): Likewise.
(referenced_from_this_partition_p): Likewise.
(reachable_from_this_partition_p): Likewise.
(lto_output_node): Likewise.
(lto_output_varpool_node): Likewise.
(output_refs): Likewise.
(compute_ltrans_boundary): Initialize in_partition fileds of
the encoder.
(output_symtab): Likewise.
(input_refs): Match the changes in output_refs.
(output_cgraph_opt_summary_p): Remove set argument.
(output_node_opt_summary): Replace set by encoder.
(output_cgraph_opt_summary): Remove set argument; use
the encoder.
* ipa-pure-const.c (pure_const_write_summary): Remove set and vset
arguments; use the encoder.
* lto-streamer-out.c (lto_output): Remove set and vset argument; use
the encoder.
(produce_symtab): Likewise.
* ipa-inline.h (inline_write_summary): Remove set and vset arguments.
* ipa-inline-analysis.c (inline_write_summary): Likewise.
* ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument;
use encoder.
* ipa-prop.h (ipa_prop_write_jump_functions): Likewise.
* passes.c (ipa_write_summaries_2): Remove set and vset arguments.
(ipa_write_summaries_1): Update.
(ipa_write_optimization_summaries_1): Likewise.
(ipa_write_optimization_summaries): Likewise.
* lto-streamer.h (lto_symtab_encoder_t): Add in_partition.
(lto_symtab_encoder_iterator): New type.
(lto_symtab_encoder_deref): Make inline.
(output_symtab, referenced_from_other_partition_p,
reachable_from_other_partition_p, referenced_from_this_partition_p,
reachable_from_this_partition_p): Update.
(lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node, lsei_varpool_node): New
inline functions.
(LCC_NOT_FOUND): New macro.
(lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition,
lsei_start_in_partition, lsei_next_function_in_partition,
lsei_start_function_in_partition, lsei_next_variable_in_partition,
lsei_start_variable_in_partition): New inline functions.
* lto-partition.c (set_referenced_from_other_partition_p,
set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
New functions.
(lto_promote_cross_file_statics): Use them.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190336 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(output_symtab): ... this one. Update for LTO_section_symtab_nodes.
(input_cgraph): Rename to ...
(input_symtab): ... this one. Update for LTO_section_symtab_nodes.
* lto-streamer-out.c (create_output_block): Do not set
section_type.
(produce_asm): Likewise.
(lto_output_toplevel_asms): Likewise.
(produce_asm_for_decls): Likewise.
(lto_output): Use output_symtab.
* lto-section-in.c (lto_section_name): Update.
* lto-section-out.c (lto_destroy_simple_output_block): Remove section_type.
* lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool;
rename LTO_section_cgraph to LTO_section_symtab_nodes.
(struct lto_header): Remove section_type.
* lto.c (read_cgraph_and_symbols): Use input_symtab.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190312 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ipa-reference.c (ipa_reference_write_optimization_summary): Update
for new symtab encoder.
(ipa_reference_read_optimization_summary): Likewise.
* lto-cgraph.c (output_varpool): Remove.
(input_cgraph_opt_summary): Take symtab nodes vector as argument.
(LTO_cgraph_tags): Rename to ...
(LTO_symtab_tags): ... this one; add LTO_symtab_variable.
(lto_cgraph_encoder_new): Rename to ...
(lto_symtab_encoder_new): ... this on.
(lto_cgraph_encoder_encode): Rename to ...
(lto_symtab_encoder_encode): ... this one.
(lto_cgraph_encoder_delete): Rename to ...
(lto_symtab_encoder_delete): ... this one.
(lto_cgraph_encoder_deref): Rename to ...
(lto_symtab_encoder_deref): ... this one.
(lto_cgraph_encoder_encode_body_p): Rename to ...
(lto_symtab_encoder_encode_body_p): ... this one.
(lto_varpool_encoder_new, lto_varpool_encoder_delete,
lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
lto_varpool_encoder_deref): Remove.
(lto_varpool_encoder_encode_initializer_p): Rename to ...
(lto_symtab_encoder_encode_initializer_p): ... this one.
(lto_set_varpool_encoder_encode_initializer): Rename to ...
(lto_set_symtab_encoder_encode_initializer): ... this one.
(lto_output_edge): Update.
(lto_output_node): Update.
(lto_output_varpool_node): Update; stream out LTO_symtab_variable tag.
(lto_output_ref): Drop varpool_encoder; update.
(add_node_to): Update.
(add_references): Update.
(output_outgoing_cgraph_edges): Update.
(output_refs): Update.
(compute_ltrans_boundary): Update.
(output_cgraph): Update; output varpools too.
(input_overwrite_node): Update.
(output_varpool): Remove.
(input_node): Update.
(input_ref): Update.
(input_edge): Update.
(input_cgraph_1): Update; input varpool too; unify fixup code.
(input_varpool_1): Remove.
(input_refs): Update.
(input_cgraph): Update.
(output_node_opt_summary): Update.
(input_cgraph_opt_section): Update.
(input_cgraph_opt_summary): Update.
* ipa-pure-const.c (pure_const_write_summary): Update.
(pure_const_read_summary): Update.
* lto-streamer-out.c (lto_write_tree): Update.
(lto_output): Likewise.
(produce_symtab): Update.
(produce_asm_for_decls): Update.
* ipa-inline-analysis.c (inline_read_section): Update.
(inline_write_summary): Update.
* ipa-prop.c (ipa_write_node_info): Update.
(ipa_prop_read_section): Update.
* lto-streamer.h (lto_cgraph_encoder_d): Rename to ...
(lto_symtab_encoder_d): ... this one; add initializer.
(lto_cgraph_encoder_t): Rename to ...
(lto_symtab_encoder_t): ... this one.
(lto_cgraph_encoder_size): Rename to ...
(lto_symtab_encoder_size): ... this one.
(lto_varpool_encoder_d): ... remove.
(lto_varpool_encoder_t): Remove.
(lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder
add symtab_node_encoder.
(lto_file_decl_data): Likewise.
(lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup,
lto_cgraph_encoder_new, lto_cgraph_encoder_encode, lto_cgraph_encoder_delete,
lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p,
lto_varpool_encoder_deref, lto_varpool_encoder_lookup, lto_varpool_encoder_new,
lto_varpool_encoder_encode, lto_varpool_encoder_delete,
lto_varpool_encoder_encode_initializer_p): Remove.
(lto_symtab_encoder_deref, lto_symtab_encoder_lookup,
lto_symtab_encoder_t, lto_symtab_encoder_encode, lto_symtab_encoder_delete,
lto_symtab_encoder_encode_body_p, lto_symtab_encoder_encode_initializer_p):
New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190309 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE
is recorded as var.
(SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME
or its SSA_NAME_VAR.
(SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter.
* tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous
SSA names by passing a type instead of a variable decl.
(release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
(copy_ssa_name_fn): Handle anonymous SSA names.
(replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
* tree-flow-inline.h (make_temp_ssa_name): New inline function.
* tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER,
dump SSA names without a name as <anon>.
* cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are
going to expand a decl.
(gimple_expand_cfg): Assign all SSA names of a partition the
decl we created for its leader.
* tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs.
(verify_ssa_name): Handle anonymous SSA names.
(verify_def): Likewise.
* tree-predcom.c (eliminate_temp_copies): Likewise.
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
* tree-ssa-live.c (var_map_base_init): Compute conflicts for
anonymous SSA names with the same type.
(mark_all_vars_used_1): Handle anonymous SSA names.
(verify_live_on_entry): Likewise.
* tree-ssa-coalesce.c (abnormal_corrupt): Remove.
(create_outofssa_var_map): Adjust with respect to conflicts we
compute for anonymous SSA names. Do not restrict abnormal
coalescing.
(coalesce_partitions): Do not restrict abnormal coalescing.
Assert we only ever coalesce variables we computed conflicts for.
* tree-ssa-ter.c (process_replaceable): Do not restrict TER
of anonymous names.
* expr.c (expand_expr_real_1): Handle anonymous SSA names
expanded from IVOPTs by creating a raw REG here.
* tree-cfg.c (replace_ssa_name): Handle anonymous SSA names.
(dump_function_to_file): Dump anonymous SSA names alongside
with their types in the variable list.
(verify_gimple_return): Guard use of SSA_NAME_VAR.
* tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol.
(rewrite_into_ssa): Make SSA names anonymous.
* tree-ssa-structalias.c (alias_get_name): Rewrite.
* tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous
SSA names.
(warn_uninitialized_phi): Likewise.
* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding
anonymous SSA names to the expander.
(determine_iv_cost): Anonymous SSA names are artificial.
* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
Handle anonymous SSA names.
* lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR
or if NULL, the type of the SSA name.
* tree-inline.c (remap_ssa_name): Handle anonymous SSA names,
remap names as anonymous where appropriate.
(insert_init_stmt): Pass SSA names down to insert_init_debug_bind.
* tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust
according to what we create conflicts for in out-of-SSA
coalescing.
* tree-parloops.c (separate_decls_in_region_name): Handle
anonymous SSA names.
(add_field_for_name): Likewise.
* tree.c (get_name): Handle SSA names.
* tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for
SSA_NAMEs.
* tree-vect-loop-manip.c (adjust_debug_stmts): Use
virtual_operand_p.
* tree-sra.c (create_access_replacement): Give up generating
a DECL_DEBUG_EXPR for SSA names in the memory reference.
(replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR.
* tree-complex.c (get_component_ssa_name): Handle anonymous
SSA names.
(set_component_ssa_name): Likewise.
* tree-ssa-sccvn.c (visit_reference_op_load): Likewise.
* tree-object-size.c (collect_object_sizes_for): Handle
uninitialized SSA names properly.
* ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of
SSA_NAME_VAR.
* ipa-split.c (test_nonssa_use): Likewise.
(consider_split): Likewise.
(mark_nonssa_use): Likewise.
c-family/
* c-pretty-print.c (pp_c_expression): Handle anonymous SSA names.
cp/
* error.c (dump_expr): Likewise.
* g++.dg/plugin/selfassign.c: Adjust.
* gcc.dg/plugin/selfassign.c: Likewise.
* gcc.dg/strlenopt-11.c: Likewise.
* gcc.dg/strlenopt-13.c: Likewise.
* gcc.dg/no-strict-overflow-4.c: Likewise.
* gcc.dg/strict-overflow-4.c: Likewise.
* gcc.dg/tree-ssa/alias-11.c: Likewise.
* gcc.dg/tree-ssa/alias-6.c: Likewise.
* gcc.dg/tree-ssa/asm-3.c: Likewise.
* gcc.dg/tree-ssa/pr18908.c: Likewise.
* gcc.dg/tree-ssa/pr19431.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-21.c: Likewise.
* gcc.dg/tree-ssa/phi-opt-10.c: Likewise.
* gcc.dg/tree-ssa/phi-opt-7.c: Likewise.
* gcc.dg/tree-ssa/slsr-27.c: Likewise.
* gcc.dg/tree-ssa/slsr-28.c: Likewise.
* gcc.dg/tree-ssa/slsr-29.c: Likewise.
* gcc.dg/pr46309.c: Likewise.
* gcc.dg/tree-ssa/loop-5.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190284 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
flag_value_profile_transformations for -fprofile-generate.
* profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
(BB_TO_GCOV_INDEX): Remove.
(output_location): Don't use it.
(branch_prob): Likewise. Don't fiddle with the index of
ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. Use clear_aux_for_blocks.
(find_spanning_tree):
* gcov.c (struct function_info): Document that blocks 0 and 1
are the entry resp. exit blocks in gcov, too, like in GCC itself.
(solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
blocks identification.
(output_lines): Likewise.
* value-prof.c (gimple_value_profile_transformations): Do not
test flag_value_profile_transformations again.
(gimple_ic_transform): Take a gimple_stmt_iterator like all other
transformation functions.
(gimple_values_to_profile):
Don't test flag_value_profile_transformations
* tree-profile.c (tree_profiling): Assert that the cgraph is in
the CGRAPH_STATE_IPA_SSA state.
Do not set, or look at, after_tree_profile.
* function.h (struct function): Remove after_tree_profile bit.
* omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
* tree-inline.c (initialize_cfun): Don't copy it.
* lto-streamer-out.c (output_struct_function_base): Don't stream it.
* lto-streamer-in.c (input_struct_function_base): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189778 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* common.opt (-fdelete-dead-exceptions): New switch.
* doc/invoke.texi (Code Gen Options): Document it.
* cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
insn_could_throw_p predicate. Do not skip an insn that could throw
if dead exceptions can be deleted.
(insn_live_p): Likewise, do not return true in that case.
* dce.c (can_alter_cfg): New flag.
(deletable_insn_p): Do not return false for an insn that can throw if
the CFG can be altered and dead exceptions can be deleted.
(init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
* dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
predicate. Do not preserve an insn that could throw if dead exceptions
can be deleted.
* function.h (struct function): Add can_delete_dead_exceptions flag.
* function.c (allocate_struct_function): Set it.
* lto-streamer-in.c (input_struct_function_base): Stream it.
* lto-streamer-out.c (input_struct_function_base): Likewise.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
statement that could throw as necessary if dead exceptions can be
deleted.
ada/
* gcc-interface/misc.c (gnat_init_options_struct): Set
opts->x_flag_delete_dead_exceptions to 1.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188651 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(cgraph_process_new_functions): Process also aliases.
* lto-streamer-out.c (struct sets): Remove.
(trivally_defined_alias): Remove.
(output_alias_pair_p): Remove.
(output_unreferenced_globals): Remove.
(produce_symtab); Do not handle alias pairs.
(produce_asm_for_decls): Likewise.
* lto-streamer-in.c (input_alias_pairs): Remove.
(lto_read_body): Do not input alias pairs.
(lto_input_constructors_and_inits): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187681 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
over decl without.
* cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
* cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
* cgraphunit.c (process_function_and_variable_attributes): Finalize
extrnal decls.
(mark_functions_to_output): Also accept bodies for functions with clones.
(output_in_order): Skip external vars.
* lto-cgraph.c (lto_output_node): External functions are never in other
partition.
(lto_output_varpool_node): Likewise.
* lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
forgotten initializers.
* ipa.c (process_references): Handle external vars.
(symtab_remove_unreachable_nodes): Update to handle external vars.
(varpool_externally_visible_p): External vars are externally visible.
* gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
* varpool.c (varpool_remove_node): Remove constructor.
(decide_is_variable_needed): Handle externals.
(varpool_remove_unreferenced_decls): Likewise.
* lto-partition.c (add_references_to_partition): Handle external vars.
(partition_varpool_node_p): Likewise.
(lto_promote_cross_file_statics): Do not promote externals.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187631 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
(cgraph_add_to_same_comdat_group): Remove.
(cgraph_add_asm_node): Move to cgraphunit.c.
(cgraph_make_decl_local): Move to symtab.c
(cgraph_make_node_local_1): Update.
(cgraph_can_remove_if_no_direct_calls_and): Update.
(used_from_object_file_p): Update.
(resolution_used_from_other_file_p): Move to symtab.c
(cgraph_used_from_object_file_p): move to symtab.c
(verify_cgraph_node): Verify same comdat groups.
* cgraph.h (cgraph_asm_node): Rename to ...
(asm_node): ... this one.
(cgraph_asm_nodes): Rename to ...
(asm_nodes): ... this one.
(symtab_add_to_same_comdat_group): New function.
(symtab_dissolve_same_comdat_group_list): New function.
(symtab_used_from_object_file_p): Declare.
(symtab_make_decl_local): Declare.
(cgraph_add_to_same_comdat_group): Remove.
(cgraph_add_asm_node): Remove.
(cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
Remove.
(cgraph_finalize_compilation_unit): Rename to ...
(finalize_compilation_unit): ... this one.
(cgraph_optimize): Rename to ....
(compile): ... this one.
(add_asm_node): Declare.
(fixup_same_cpp_alias_visibility): Declare.
(cgraph_make_decl_local): Remove.
(varpool_assemble_pending_decls): Rename to ...
(varpool_output_variables): ... this one.
(varpool_remove_unreferenced_decls): Remove.
* ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
(preserve_function_body_p): Make static.
* toplev.c (compile_file): Update comments;
update.
* cgraphunit.c: Update comments.
(cgraph_expand_all_functions): Rename to ...
(expand_all_functions): ... this one; update.
(cgraph_mark_functions_to_output): Rename to ...
(mark_functions_to_output): ... this one; cleanup.
(cgraph_output_pending_asms): Remove prototype.
(asm_nodes, asm_last_node): New static vars.
(cgraph_process_new_functions): Update.
(cgraph_reset_node): Cleanup; add comment.
(cgraph_add_new_function): Update.
(cgraph_output_pending_asms): Rename to ...
(output_asm_statements): ... this one.
(add_asm_node): New function.
(fixup_same_cpp_alias_visibility): New function based on code
in cgraph_analyze_function.
(cgraph_analyze_function): Use it.
(cgraph_order_sort): Update.
(cgraph_output_in_order): Update.
(cgraph_function_versioning): Update.
(cgraph_optimize): Rename to ...
(compile): ... this one; initialize streamer hooks here.
(cgraph_finalize_compilation_unit): Rename to ...
(finalize_compilation_unit): ... this one; do not initialize streamer
hook here.
* lto-streamer-out.c (lto_output_toplevel_asms): Update.
* dwarf2out.c: Update ocmment.
* optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
* method.c (use_thunk): Likewise.
* semantics.c (maybe_add_lambda_conv_op): Likewise.
* decl2.c (maybe_emit_vtables): Likewise.
(cp_write_global_declarations): Use finalize_compilation_unit.
* parser.c (cp_parser_asm_definition): Use add_asm_node.
* lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
* c-decl.c (c_write_global_declarations): Use finalize_compilation_unit.
* langhooks.c (write_global_declarations): Update.
* ipa.c (cgraph_externally_visible_p): Update.
(dissolve_same_comdat_group_list): Remove.
(function_and_variable_visibility): Update.
* symtab.c: Inlcude lto-streamer.h and rtl.h
(ld_plugin_symbol_resolution_names): New.
(symtab_add_to_same_comdat_group): New.
(symtab_dissolve_same_comdat_group_list): New.
(resolution_used_from_other_file_p): Move here from cgraph.c
(symtab_used_from_object_file_p): New.
(symtab_make_decl_local): New.
* passes.c (register_pass): Update comments.
* c-parser.c (c_parser_asm_definition): Update.
* varpool.c (varpool_analyze_node): Use fixup_same_cpp_alias_visibility.
(varpool_remove_unreferenced_decls): Make static.
(varpool_assemble_pending_decls): Rename to ...
(varpool_output_variables): ... this one; call
varpool_remove_unreferenced_decls.
(varpool_used_from_object_file_p): Remove.
* gogo-tree.cc (Gogo::write_globals): Use finalize_compilation_unit.
* gcc-interface/utils.c (rest_of_subprog_body_compilation): Update
comment.
(gnat_write_global_declarations): Use finalize_compilation_unit.
* f95-lang.c (gfc_finish): Update comments.
* lto.c (lto_main): Use compile ().
* lto-partition.c (partition_cgraph_node_p): Use symtab_used_from_object_file_p.
(partition_varpool_node_p): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186998 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
(cgraph_remove_node): Update.
(cgraph_mark_needed_node): Remove.
(cgraph_mark_force_output_node): New.
(dump_cgraph_node): Do not dump needed flag.
(cgraph_node_cannot_be_local_p_1): Update.
(cgraph_can_remove_if_no_direct_calls_and_refs): Update.
* cgraph.h (symtab_node_base): Add force_output flag.
(cgraph_node): Remove needed flag.
(varpool_node): Remove force_output flag.
(cgraph_mark_needed_node): Remove.
(cgraph_mark_force_output_node): New.
(cgraph_only_called_directly_or_aliased_p,
varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
* ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
* cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
(cgraph_add_new_function); Update.
(cgraph_mark_if_needed); Update.
(verify_cgraph_node): Update.
(cgraph_analyze_function): Alias target is reachable.
(process_function_and_variable_attributes): Update: externally_visible
flag makes function reachable.
(cgraph_analyze_functions): Update dumping.
* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
input_overwrite_node, input_varpool_node): Update streaming.
* lto-streamer-out.c (produce_symtab): Use force_output.
* ipa.c (process_references): Weakrefs must be processed.
(cgraph_remove_unreachable_nodes): Likewise; update for new
force_output flag.
(varpool_externally_visible_p); Weakrefs are externally visible
even if they are not.
(function_and_variable_visibility): Update; when processing alias
pair force the targets to be output.
(whole_program_function_and_variable_visility): Use mark_reachable_node.
* trans-mem.c (ipa_tm_mark_needed_node): Remove
(ipa_tm_mark_force_output_node): New function.
(ipa_tm_create_version_alias, ipa_tm_create_version): Update.
* gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about aliases.
* varasm.c (mark_decl_referenced): Update.
(find_decl_and_mark_needed): Remove.
(find_decl): New function.
(weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
alias targets as needed.
(dump_tm_clone_pairs): Update.
* tree-inline.c (copy_bb): Update check.
* symtab.c (dump_symtab_base): Dump force_output.
* tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
* passes.c (execute_todo): Fix dumping.
* varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
(varpool_analyze_pending_decls): Alias target is reachable.
(varpool_create_variable_alias): Finalize weakrefs.
* class.c (make_local_function_alias): Do not mark symbol referenced.
* objc-acct.c (mark_referenced_methods); Use
cgraph_mark_force_output_node.
* gcc-interface/utils.c (gnat_write_global_declarations): Update for new
force_output placement.
* lto/lto-partition.c (partition_cgraph_node_p): Use force_output.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186624 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(symtab_node): Turn to union typedef.
(symtab_node_base): New structure.
(symtab_type): Add SYMTAB_SYMBOL tag.
* cgraph.c: Update references to fields
(cgraph_hash, assembler_name_hash): Turn into symtab_node.
(cgraph_local_info): Remove lto_file_data
and externally_visible.
(cgraph_node): Remove decl; same_comdat_group list;
aux; ref_list; order; address_taken; reachable_from_other_parittion,
in_other_partition; resolution.
(varpool_node): Remove decl; same_comdat_group;
ref_list; lto_file_data; aux; order; resolution; externally_visible;
used_from_other_partition; in_other_partition.
(symtab_node_def); New union.
(cgraph, varpool): Update.
(varpool_first_static_initializer, varpool_next_static_initializer,
cgraph_only_called_directly_or_aliased_p,
varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
field references.
* cgraph.c: Likewise.
* cgraphbuild.c: Likewise.
* lto-symtab.c: Likewise.
* c-gimplify.c: Likewise.
* value-prof.c: Likewise.
* tree.c: Likewise.
* ipa-cp.c: Likewise.
* tree-emutls.c: Likewise.
* ipa-inline-transform.c: Likwise.
* ipa-reference.c: Likewise.
* cgraphunit.c: Likewise.
* ipa-ref.c: Likewise.
* lto-cgraph.c: Likewise.
* ipa-ref-inline.h: Likewise.
* ipa-pure-const.c: Likewise.
* lto-streamer-out.c: Likewise.
* ipa-utils.c: Likewise.
* ipa-inline.c: Likewise.
* matrix-reorg.c: Likewise.
* tree-eh.c: Likewise.
* tree-vectorizer.c: Likewise.
* ipa-split.c: Likewise.
* ipa.c: Likewise.
* trans-mem.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* gimplify.c: Likewise.
* cfgexpand.c: Likewise.
* tree-sra.c: Likewise.
* ipa-prop.c: Likewise.
* varasm.c: Likewise.
* tree-nested.c: Likewise.
* tree-inline.c: Likewise.
* tree-profile.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* passes.c: Likewise.
* varpool.c: Likewise.
* tree.c: Update field referenced for new cgraph/varpool layout.
* decl2.c: Likewise.
* gcc-interface/trans.c (finalize_nrv): Update field referenced for new
cgraph/varpool layout.
* lto.c: Update field referenced for new cgraph/varpool layout.
* lto-partition.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186450 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR lto/50490
* tree-streamer-out.c (write_ts_optimization): New function.
(streamer_write_tree_body): Call it.
* tree-streamer-in.c (lto_input_ts_optimization): New function.
(streamer_read_tree_body): Call it.
* lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182917 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR lto/51573
* streamer-hooks.h (struct streamer_hooks): Add second
ref_p parameter to write_tree.
(stream_write_tree): Adjust.
(stream_write_tree_shallow_non_ref): New define.
* lto-streamer.h (lto_output_tree): Adjust.
* lto-streamer-out.c (lto_output_tree): Likewise.
* tree-streamer-out.c (streamer_write_chain): Only
force the immediate tree to be streamed as non-reference.
* gcc.dg/lto/20111207-2_0.c: Adjust.
* g++.dg/lto/pr51573-1_0.C: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182487 138bc75d-0d04-0410-961f-82ee72b054a4
|