aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
AgeCommit message (Collapse)AuthorFilesLines
2005-06-24tree-optimize.c (init_tree_optimization_passes): Fix flags of all_passes and ↵Jan Hubicka1-4/+23
all_ipa_passes. * tree-optimize.c (init_tree_optimization_passes): Fix flags of all_passes and all_ipa_passes. * c-common.c: Include cgraph.h (handle_externally_visible_attribute): New function. (c_common_att): Add "externally_visible" attribute. * cgraph.c (decide_is_variable_needed): Obey externally visible flag. (cgraph_varpool_finalize_decl): Avoid redundant checking. * cgraph.h (struct cgraph_node): New flag externally_visible. (decide_is_function_needed): Obey externally visible flag. (cgraph_finalize_function): Avoid redundant checks. (cgraph_function_and_variable_visibility): Bring symbols local when asked for. * common.opt (fwhole-program): New flag. * doc/invoke.texi (-fwhole-program): Document. From-SVN: r101295
2005-06-12cgraphunit.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* cgraphunit.c, tree-ssa-loop-ivopts.c, tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h, config/sparc/sparc.c: Fix comment typos. From-SVN: r100856
2005-06-09cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize local ↵Jan Hubicka1-18/+19
statics when doing unit-at-a-time. * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize local statics when doing unit-at-a-time. (cgraph_varpool_assemble_pending_decls): Output debug info. * dwarf2out.c (decls_for_scope): Skip local statics. (dwarf2out_decl): Handle local statics. * passes.c (rest_of_decl_compilation): Do not differentiate local and global statics in unit-at-a-time. * tree-inline.c (remap_decls): Put local static into unexpanded_vars_list rather than introducing duplicated VAR_DECL node. From-SVN: r100802
2005-06-04cgraphunit.c (cgraph_reset_node): Break out from ...Jan Hubicka1-51/+64
* cgraphunit.c (cgraph_reset_node): Break out from ... (cgraph_finalize_function): ... here. (cgraph_finalize_compilation_unit): Reset nodes where backend removed the body. From-SVN: r100599
2005-06-03cgraph.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment typos. From-SVN: r100538
2005-06-02cgraphunit.c (cgraph_function_and_variable_visibility): Extern inline ↵Jan Hubicka1-0/+1
functions are not local. * cgraphunit.c (cgraph_function_and_variable_visibility): Extern inline functions are not local. From-SVN: r100514
2005-06-02cgraph.c (cgraph_node): Maintain master clones.Jan Hubicka1-0/+5
* cgraph.c (cgraph_node): Maintain master clones. (cgraph_remove_node): Likewise. (availability_names): New static variable. (dump_cgraph_node): Dump availability. (dump_cgraph_varpool_node): Likewise. (cgraph_is_master_clone, cgraph_master_clone, cgraph_function_body_availability, cgraph_variable_initializer_availability): New functions. * cgraph.h (availability): New enum. (struct cgraph_node): Add master_clone. (cgraph_is_master_clone, cgraph_master_clone, cgraph_function_body_availability, cgraph_variable_initializer_availability): Declare. * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready. (cgraph_remove_unreachable_nodes): Remove unreachable nodes. * ipa-inline.c (cgraph_decide_inlining): Do not call cgraph_remove_unreachable_nodes. From-SVN: r100507
2005-06-02cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in previous ↵Jan Hubicka1-1/+1
patch. * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in previous patch. From-SVN: r100506
2005-06-02cgraph.c (dump_cgraph_node): Print new flags.Jan Hubicka1-19/+52
* cgraph.c (dump_cgraph_node): Print new flags. (dump_cgraph_varpool_node): Likewise. (decide_variable_is_needed): Initialize externally_visible flag. * cgraph.h (cgraph_local_info): Add externally_visible flag. (cgraph_varpool_node): Likewise. (cgraph_function_flags_ready): Declare. * cgraph.c (cgraph_mark_local_functions): Rename to ... (cgraph_function_and_variable_visibility) ... this one; handle externally_visible flags. (decide_is_function_needed): Set externally_visible flag. (cgraph_finalize_function): Deal properly with early cleanups. (cgraph_optimize): Update call of cgraph_function_and_variable_visibility. From-SVN: r100491
2005-05-29cgraphunit.c, [...]: Fix typos and follow spelling conventions in error/dump ↵Kazu Hirata1-1/+1
messages. * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c, opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c, tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and follow spelling conventions in error/dump messages. From-SVN: r100330
2005-05-27cgraph.c: Include tree-gimple.hJan Hubicka1-116/+91
* cgraph.c: Include tree-gimple.h (cgraph_edge): Rename expr to stmt. (cgraph_create_edge): Likewise. (cgraph_clone_node): Likewise. * cgraph.h (cgraph_node): Use call_stmt instead of call_expr. * cgraphunit.c (record_call_1): Rename to ... (record_reference): ... this one; do not build edges. (cgraph_varpool_analyze_pending_decls): Call record_reference directly. (current_basic_block): Kill. (cgraph_create_edges): Rewrite to work on gimple statements nicely. (verify_cgraph_node): Likewise. * tree-inline.c (copy_body_r): Do not mess up with cgraph edges. (copy_bb): Mess up with cgraph edges here; simplify EH handling. (copy_edges_for_bb): Simplify EH handling. (expand_call_inline): Pass statement to cgraph_edge and cgraph_create_edge. From-SVN: r100276
2005-05-26c-common.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h, cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c, ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c, tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c, tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c, tree.c, config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c, config/frv/frv.md, config/i386/i386.c, config/i386/sse.md, config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md, config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md, config/sh/ushmedia.h, config/sparc/sparc.c, config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment typos. Follow spelling conventions. * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos. Follow spelling conventions. From-SVN: r100218
2005-05-20* cgraphunit.c (cgraph_expand_function): Force function being lowered.Jan Hubicka1-0/+2
From-SVN: r100009
2005-05-19basic-block.h (REG_BR_PROB_BASE): Define.Jan Hubicka1-34/+13
* basic-block.h (REG_BR_PROB_BASE): Define. * cgraph.c (cgraph_create_edge): Initialize loop_nest and count. (dump_cgraph_node): Dump count. (cgraph_clone_edge): Rescale counts. (cgraph_clone_node): Likewise. * cgraph.h: Include basic-block.h (cgraph_node): Add count. (cgraph_edge): Add count and loop_nest. (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node): Update prototypes. * cgraphunit.c: Kill now redundant inlining comment. (cgraph_create_edges): Make static, maintain current basic block; fix pasto. (record_call_1): Fill in new fields. * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of cgraph_clone_node. (cgraph_decide_recursive_inlining): Likewise. * rtl.h (REG_BR_PROB_BASE): Kill. * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge. (expand_call_inline): Update call of cgraph_create_edge. * tree-optimize.c (tree_rest_of_compilation): Likewise. From-SVN: r99976
2005-05-17cgraph.h (cgraph_node): Add 'lowered' state.Steven Bosscher1-5/+77
* cgraph.h (cgraph_node): Add 'lowered' state. (cgraph_lower_function): Declare. * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag. (cgraph_lower_function): New function. (cgraph_create_edges): Deal with lowered function bodies. (verify_cgraph_node): Likewise. (cgraph_analyze_function): Do lowering job. (cgraph_build_static_cdtor): Likewise. * function.h (struct function): Add saved_eh and saved_cfg. * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field. * tree-cfg.c (fold_cond_expr_cond): Export. * tree-flow.h (fold_cond_expr_cond): Declare. * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and pointer-set. (struct_inline_data): Kill fnd, first_inlined_fn, ret_label, in_target_cleanup_p, tree_pruner, tsi; add callee, caller and callee_cfun, block, eh_region, eh_region_offset. (inlining_p): New predicate. (remap_decl): Update for new inline_data; declare newly created inline vars in low gimple way. (copy_body_r): Update for new datastructure, simplify some of handling when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK; deal with RESX_EXPRs. (copy_bb): New. (copy_edges_for_bb): Likewise. (remap_decl_1): New. (copy_cfg_body): New. (copy_generic_body): Rewrite to work on low gimple. (copy_body): Turn into simple wrapper around copy_cfg_body. (setup_one_parameter): Insert new statements into given basic block. (initialize_initialized_parameters): Likewise, reorganize way things are gimplified. (declare_return_variable): Update for new inline data datastructure. (inline_forbidden_p): Work on low gimple. (estimate_num_insns): Likewise. (expand_call_inline): Work on CFG. (push_cfun, pop_cfun): New functions. (cfun_stack): New stack. (add_lexical_block): New function. (gimple_expand_calls_inline): Work on basic block. (optimize_inline_calls): Likewise. (clone_body, save_body, unsave_ewpr_now): Update for new datastructures. (declare_inline_vars): Work on block instead of bind_expr. (inlining_p): New predicate. * tree-inline.h (push_cfun, pop_cfun): Declare. * tree-optimize.c: Include except.h (all_lowering_passes): New variable. (execute_fixup_cfg, pass_fixup_cfg): New pass. (init_tree_optimization_passes): Move some to all_lowering_passes. (tree_lowering_passes): New function. (tree_rest_of_compilation): Register cfg hooks; save/unsave eh. Co-Authored-By: Dale Johannesen <dalej@apple.com> Co-Authored-By: Jan Hubicka <jh@suse.cz> Co-Authored-By: Stuart Hastings <stuart@apple.com> From-SVN: r99840
2005-04-22Makefile.in (ipa.o, [...]): New files.Jan Hubicka1-839/+0
* Makefile.in (ipa.o, ipa-inline.o): New files. * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder, cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, cgraph_default_inline_p): Declare. * cgraphunit.c (cgraph_default_inline_p, cgraph_decide_inlining_incrementally, ncalls_inlined, nfunctions_inlined, initial_insns, overall_insns, cgraph_estimate_size_after_inlining, cgraph_estimate_growth, cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, cgraph_mark_inline, cgraph_check_inline_limits, cgraph_default_inline_p, cgraph_recursive_inlining_p, update_callee_keys, lookup_recursive_calls, cgraph_decide_recursive_inlining, cgraph_set_inline_failed, cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining, cgraph_decide_inlining_incrementally, cgraph_gate_inlining, pass_ipa_inline): Move to ipa-inline.c (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c * ipa.c: New file. * ipa-inline.c: New file. From-SVN: r98548
2005-04-21cgraphunit.c: Include tree-pass.h (cgraph_decide_recursive_inlining...Jan Hubicka1-39/+62
* cgraphunit.c: Include tree-pass.h (cgraph_decide_recursive_inlining, cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed, cgraph_decide_inlining): Dump goes to dump_file. (cgraph_optimize): Call ipa passes instead of inliner. (cgraph_gate_inlining, pass_ipa_inline): New. * tree-optimize.c (all_ipa_passes): New static variable. (register_one_dump_file): Dead with IPA passes. (register_dump_files): Likewise. (init_tree_optimization_passes): Initialize IPA passes. (execute_todo): Do cgraph dump when asked to, do not dump function body for IPA pass. * tree-pass.h (TODO_dump_cgraph): New macro. (ipa_passes): Declare. * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h From-SVN: r98501
2005-04-18cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment typo.Tom Tromey1-1/+1
* cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment typo. From-SVN: r98330
2005-04-13* cgraphunit.c (INSNS_PER_CALL): Remove.Kazu Hirata1-2/+0
From-SVN: r98071
2005-04-06Fix numerous IA-64 C++ failures, IA-64 bootstrap trouble.James E Wilson1-0/+1
PR target/20717 * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as ADDR_EXPR. From-SVN: r97773
2005-04-01cgraphunit.c, [...]: Fix comment typos.Kazu Hirata1-5/+5
* cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c, lambda-code.c, loop.c, machmode.def, mips-tfile.c, modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c, tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h, config/frv/frv.md, config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, config/rs6000/predicates.md, config/rs6000/rs6000.c, config/s390/fixdfdi.h, config/s390/s390.c, config/stormy16/stormy16.c, config/stormy16/stormy16.md, config/vax/vax.md: Fix comment typos. From-SVN: r97362
2005-03-30[multiple changes]Jan Hubicka1-9/+117
2005-03-31 Jan Hubicka <jh@suse.cz> 2004-11-02 Jan Hubicka <jh@suse.cz> * cgraph.c (cgraph_varpool_node_name): New function. (dump_cgraph_varpool_node): New function. (dump_varpool): New function. * cgraphunit.c (cgraph_optimize): Dump varpool. 2004-10-16 Jan Hubicka <jh@suse.cz> * cgraph.c (decide_is_variable_needed): New function. (cgraph_varpool_finalize_decl): Use it. * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing unit-at-a-time. * final.c (output_addr_const): Do not call mark_referenced. * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack; always go via cgraph. * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code. (check_global_declarations): Ifdef out code clearing DECL_RTL. * tree-optimize.c (execute_inline): Mark functions called. * i386.c (output_pic_addr_const): Do not call mark_decl_referenced. 2004-10-11 Jan Hubicka <jh@suse.cz> * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable (cgraph_varpool_last_needed_node): New static variable. (enqueue_needed_varpool_node): Break out from ...; add items to the end of queue; update first pointers. (cgraph_varpool_mark_needed_node): ... here. (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node. (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c * cgraph.h (cgraph_varpool_node): Add analyzed field. (cgraph_varpool_first_unanalyzed_node): Declare. * cgraphunit.c: Include output.h. (cgraph_varpool_analyze_pending_decls): New function. (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out for errors, analyze pending decls. (cgraph_finalize_compilation_unit): Only analyze decls. (cgraph_optimize): Assemble the decls after expanding. From-SVN: r97287
2005-03-30cgraph.h (struct cgraph_node): Add alias.Richard Henderson1-1/+3
* cgraph.h (struct cgraph_node): Add alias. * varasm.c (assemble_alias): Set it. * cgraphunit.c (cgraph_assemble_pending_functions): Check it and avoid calling cgraph_expand_function. From-SVN: r97284
2005-03-22cgraphunit.c (cgraph_estimate_size_after_inlining): Compute call cost based ↵Richard Guenther1-2/+8
on argument sizes. * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute call cost based on argument sizes. (cgraph_mark_inline_edge): Avoid inline unit from shringking by inlining. * params.def: (max-inline-inssn-single): Set to 450. (max-inline-insns-auto): Set to 90. (max-inline-insns-recursive): Set to 450 (max-inline-insns-recursive-auto): Set to 450. (large-function-insns): Set to 2700. (inline-call-cost): New parameter. * tree-inline.c (estimate_move_cost): New function. (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size based on arguments. * tree-inline.h (estimate_move_cost): Declare. * invoke.texi: (max-inline-inssn-single): Change default to 450. (max-inline-insns-auto): Change default to 90. (max-inline-insns-recursive): Change default to 450 (max-inline-insns-recursive-auto): Change default to 450. (large-function-insns): Change default to 2700. (inline-call-cost): Document new parameter. * gcc.dg/winline-6.c: Modify so inlined function have nonzero cost. Co-Authored-By: Jan Hubicka <jh@suse.cz> From-SVN: r96892
2005-03-16re PR middle-end/15700 ([unit-at-a-time] Inlining problem leads to ↵Richard Henderson1-0/+2
miscompilation of glibc) PR middle-end/15700 * varasm.c (struct alias_pair): Rename from struct output_def_pair. (alias_pairs): Rename from output_defs. (find_decl_and_mark_needed): Split out from assemble_alias. (do_assemble_alias): New. (assemble_output_def): Remove. (finish_aliases_1, finish_aliases_2): New. (process_pending_assemble_output_defs): Remove. (assemble_alias): Defer aliases for which we don't yet have a non-external decl for the target symbol. * passes.c (rest_of_decl_compilation): Register variables with cgraph. * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1. * toplev.c (compile_file): Use finish_aliases_2 instead of process_pending_assemble_output_defs. * tree.h (finish_aliases_1, finish_aliases_2): Declare. (process_pending_assemble_output_defs): Remove. * gcc.c-torture/compile/20040323-1.c: Don't xfail for solaris. (_rtld_global): New. * gcc.dg/weak/weak-3.c (ffoox1f, ffoox1g): Define. * gcc.dg/weak/weak-9.c (notf1, notf2, notf3, notf4): Define. * gcc.dg/alias-3.c: New. * gcc.dg/alias-4.c: New. * gcc.dg/alias-5.c: New. * gcc.dg/alias-6.c: New. From-SVN: r96564
2005-03-02cgraph.h (struct cgraph_edge): Add prev_caller and prev_callee fields.Richard Guenther1-6/+3
2005-03-02 Richard Guenther <rguenth@gcc.gnu.org> * cgraph.h (struct cgraph_edge): Add prev_caller and prev_callee fields. (cgraph_node_remove_callees): Export. * cgraph.c (cgraph_create_edge): Initialize prev_caller and prev_callee. (cgraph_edge_remove_callee): New function. (cgraph_edge_remove_caller): Likewise. (cgraph_remove_edge): Use. (cgraph_redirect_edge_callee): Likewise. (cgraph_node_remove_callees): New function. (cgraph_node_remove_callers): Likewise. (cgraph_remove_node): Use. * tree-optimize.c (tree_rest_of_compilation): Use cgraph_node_remove_callees instead of manual loop. * cgraphunit.c (cgraph_finalize_function): Likewise. (cgraph_expand_function): Likewise. (cgraph_remove_unreachable_nodes): Likewise. From-SVN: r95777
2005-02-21c-objc-common.h, [...]: Update copyright.Kazu Hirata1-1/+1
* c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c, genautomata.c, langhooks.c, langhooks.h, system.h, config/arm/lib1funcs.asm: Update copyright. From-SVN: r95331
2005-02-18re PR tree-optimization/18947 ([non-UAAT] external inline and normal ↵Jakub Jelinek1-0/+10
function of the same name) PR tree-optimization/18947 * cgraphunit.c (cgraph_finalize_function): When redefining an extern inline, remove all nodes that are inlined into the extern inline being redefined. * gcc.c-torture/compile/20050215-1.c: New test. * gcc.c-torture/compile/20050215-2.c: New test. * gcc.c-torture/compile/20050215-3.c: New test. From-SVN: r95207
2004-12-08re PR middle-end/17982 (stop calling assemble_external before final assembly ↵Zack Weinberg1-0/+3
output time) PR 17982 * varasm.c (pending_assemble_externals): New static. (assemble_external_real): Meat of assemble_external split out to this new function. (process_pending_assemble_externals): New function. (assemble_external): Use gcc_assert. If flag_unit_at_a_time is true and the basic test passes, merely cons the decl onto the pending list to be handled later. * tree.h: Declare process_pending_assemble_externals. * cgraphunit.c (cgraph_optimize): Call it. * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL. From-SVN: r91914
2004-11-18* cgraphunit.c: Replace "it's" with "its" and fix a typo.Ben Elliston1-3/+3
From-SVN: r90838
2004-10-25patch to remove the analysis of module level static variables.Kenneth Zadeck1-1062/+6
From-SVN: r89559
2004-10-22alias.c, [...]: Fix comment formatting.Kazu Hirata1-22/+22
* alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h, final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def, lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c, pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c, tree-scalar-evolution.c, tree-ssa-dom.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c, tree-vectorizer.c, vec.h: Fix comment formatting. From-SVN: r89453
2004-10-14Speed up walk_tree by introducing a special-purpose hash table.Matt Austern1-8/+6
* pointer-set.c: New file, special-purpose hash table. * pointer-set.h: New file. * tree.h (struct pointer_set_t): Declare as opaque type. (tree_walk): Last argument is pointer_set_t* now. * tree-inline.c (WALK_SUBTREE): Convert from htab to pset. (walk_type_fields): (walk_tree): Convert from htab_t to pointer_set_t for keeping track of which nodes have already been visited. (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t. * cgraphunit.c (cgraph_create_edges): Likewise. (cgraph_characterize_statics_local): Likewise. * tree-dfa.c (collect_dfa_stats): Likewise. * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is pointer_set_t* now. * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise. * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type of walk_subtrees is pointer_set_t* now. * Makefile.in (OBJS-common): add pointer-set.o (tree-inline.o): Depends on pointer-set.h (tree-dfa.o): Likewise (cgraphunit.o): Likewise * cp/Make-lang.in (pt.o): depends on pointer-set.h * cp/cp-tree.h (cp_walk_subtrees): Last argument is pointer_set_t* now. * cp/pt.c (struct pair_fn_data): Use pointer_set_t, not htab_t (for_each_template_parm): Convert from htab_t to pointer_set_t. * cp/tree.c (cp_walk_subtrees): Last argument is pointer_set_t* now. * java/lang.c (java_tree_inlining_walk_subtrees): Last arg is struct pointer_set_t* now. From-SVN: r89062
2004-10-01c-decl.c (c_expand_body): Update call tree_rest_of_compilation.Jan Hubicka1-1/+1
* c-decl.c (c_expand_body): Update call tree_rest_of_compilation. * cgraphunit.c (cgraph_build_static_cdtor): Likewise. * toplev.h (tree_rest_of_compilation): Update prototype. * tree-optimize.c (tree_rest_of_compilation): Kill nested_p argument. * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation. * semantics.c (expand_body): Update call of tree_rest_of_compilation. * f95-lang.c (gfc_expand_function): Update call of tree_rest_of_compilation. * trans-decl.c (gfc_generate_constructors): Likewise. * java.c (java_expand_body): Update call of tree_rest_of_compilation. * treetree.c (treeland_expand_function): Update call of tree_rest_of_compilation. From-SVN: r88396
2004-09-26bitmap.h (EXECUTE_IF_SET_IN_BITMAP, [...]): Changed to iterator style.Zdenek Dvorak1-26/+44
* bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style. (bitmap_iterator): New type. (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1, bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init, bmp_iter_and_next): New functions. * basic-block.h (EXECUTE_IF_SET_IN_REG_SET, EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to use iterator-style EXECUTE_IF_IN_BITMAP macros. * bitmap.c (bitmap_print): Ditto. * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range, btr_def_live_range): Ditto. * cfganal.c (compute_dominance_frontiers_1) Ditto. * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics): Ditto. * ddg.c (build_inter_loop_deps): Ditto. * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update): Ditto. * except.c (remove_eh_handler): Ditto. * flow.c (reg_set_to_hard_reg_set): Ditto. * gcse.c (clear_modify_mem_tables): Ditto. * global.c (build_insn_chain): Ditto. * ifcvt.c (dead_or_predicable): Ditto. * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg): Ditto. * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto. * ra-rewrite.c (reloads_to_loads, rewrite_program2, detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto. * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region, tree_purge_all_dead_eh_edges): Ditto. * tree-into-ssa.c (compute_global_livein, insert_phi_nodes, insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags, rewrite_ssa_into_ssa): Ditto. * tree-outof-ssa.c (find_replaceable_exprs): Ditto. * tree-sra.c (scan_function, decide_instantiations, scalarize_parms): Ditto. * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape, compute_flow_sensitive_aliasing, maybe_create_global_var, dump_points_to_info_for): Ditto. * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto. * tree-ssa-dse.c (dse_finalize_block): Ditto. * tree-ssa-live.c (live_worklist, calculate_live_on_entry, calculate_live_on_exit, build_tree_conflict_graph, dump_live_info): Ditto. * tree-ssa-loop-ivopts.c (find_induction_variables, find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map, determine_use_iv_costs, determine_set_costs, find_best_candidate, set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data): Ditto. * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto. * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops, add_call_read_ops): Ditto. * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto. From-SVN: r88145
2004-09-20re PR middle-end/16460 (ICE when compiling glibc (ld-ctype.c))Jan Hubicka1-3/+7
PR middle-end/16460 * cgraph.c (cgraph_unnest_node): New function. (c_finalize): Rename to .... (c_warn_unused_result_recursivly): ... this one; do only the warning (finish_function): Finalize the toplevel function; do not lower nested tree. * cgraph.h (cgraph_unnest_node): Declare. * cgraphunit.c (decide_is_function_needed): Do not use cgraph nestedness datastructure. * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs. * reload1.c (set_label_offsets): Fix call of set_label_offsets. * tree-nested.c (finlize_nesting_tree_1): Use un-nesting code. * utils.c (gnat_finalize): Remove. (end_subprog_body): Directly call cgraph_finalize_function; do not lower the nested functions. * trans-decl.c (build_entry_thunks): Finalize the function; do not lower tree. (gfc_generate_function_code): Likewise. From-SVN: r87770
2004-09-17alias.c (find_base_decl): Remove unreachable case '3' block.Jeffrey D. Oldham1-7/+7
2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com> Zack Weinberg <zack@codesourcery.com> * alias.c (find_base_decl): Remove unreachable case '3' block. * expr.c (safe_from_p): Abort if passed a type. * tree-gimple.c (recalculate_side_effects): Abort if passed anything other than an expression. * tree-ssa-pre.c (phi_translate): Return expr immediately if is_gimple_min_invariant is true for it. Reorder cases for clarity. Abort on un-handled tree classes. (valid_in_set): Likewise. * tree.c (tree_code_class_strings): New static data. * tree.h (enum tree_code_class): New. (tree_code_class_strings): Declare. (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P) (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P) (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros. (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS) (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update. * tree.def, c-common.def, objc/objc-tree.def: Use tree_code_class enumeration constants instead of code letters. * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c Update to match. * LANGUAGES: Add note about change. ada: * ada-tree.def: Use tree_code_class enumeration constants instead of code letters. * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c: Update for new tree-class enumeration constants. cp: * cp-tree.def: Use tree_code_class enumeration constants instead of code letters. * call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c * mangle.c, pt.c, semantics.c, tree.c, typeck.c: Update for new tree-class enumeration constants. fortran: * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class enumeration constants. java: * java-tree.def: Use tree_code_class enumeration constants instead of code letters. * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for new tree-class enumeration constants. treelang: * treetree.c: Update for new tree-class enumeration constants. From-SVN: r87675
2004-09-17basic-block.h, [...]: Fix comment typos.Kazu Hirata1-1/+1
* basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c, gimplify.c, lambda-code.c, optabs.c, predict.c, tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c, tree-ssa.c, vec.h: Fix comment typos. Follow spelling conventions. From-SVN: r87637
2004-09-14cgraph.h, [...]: Fix comment typos.Kazu Hirata1-4/+4
* cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c, lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix comment typos. Follow spelling conventions. From-SVN: r87490
2004-09-13New code to analyze file level static variables and to determine if...Kenneth Zadeck1-16/+1065
New code to analyze file level static variables and to determine if they escape and also code to use this information to prune clobber lists. From-SVN: r87455
2004-09-10cgraphunit.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment typos. From-SVN: r87283
2004-09-10cgraph.h (cgraph_dump_file): Do not declare.Paolo Bonzini1-0/+9
2004-09-10 Paolo Bonzini <bonzini@gnu.org> * cgraph.h (cgraph_dump_file): Do not declare. * cgraphunit.c (cgraph_dump_file): Declare as static. (init_cgraph): New. * toplev.c (cgraph_dump_file): Do not declare. (compile_file): Call init_cgraph. * tree-dump.c (dump_files): Add IPA dump file, remove XML dump of call graph. (get_dump_file_name): Support IPA dump file naming scheme. * tree.h (enum tree_dump_index): Add IPA dump file, remove XML dump of call graph. * doc/invoke.texi (Debugging Options): Document the new options. From-SVN: r87281
2004-09-09cgraphunit.c (cgraph_mark_functions_to_output): Renable node dumping for ↵Nathan Sidwell1-3/+15
development builds. * cgraphunit.c (cgraph_mark_functions_to_output): Renable node dumping for development builds. * emit-rtl.c (verify_rtx_sharing): Give verbose failure for development builds only. * genattrtab.c (write_eligible_delay): Fix typo in previous commit. * tree.c (iterative_hash_expr): Replace gcc_unreachable with gcc_assert. From-SVN: r87241
2004-09-08cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.Jan Hubicka1-2/+8
* cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node. * cgraphunit.c (verify_cgraph): Don't verify on syntax errors. (cgraph_expand_function): Remove stale cgraph edges of currently compiled function; fix non-unit-at-a-time code copying function node for later reuse. From-SVN: r87181
2004-09-07cfganal.c (flow_depth_first_order_compute, [...]): Use gcc_assert or ↵Nathan Sidwell1-42/+33
gcc_unreachable. * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from, cfgbuild.c, inside_basic_block_p, control_flow_insn_p, make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert or gcc_unreachable. * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks, remove_edge, alloc_aux_for_blocks, free_aux_for_blocks, alloc_aux_for_edges, free_aux_for_edges): Likewise. * cfgcleanup.c (try_forward_edges, merge_blocks_move_predecessor_nojumps, merge_blocks_move_successor_nojumps): Likewise. * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Likewise. * cfghooks.c (duplicate_block): Likewise. * cfglayout.c (record_effective_endpoints, insn_locators_initialize, change_scope, fixup_reorder_chain, verify_insn_chain, fixup_fallthru_exit_predecessor, duplicate_insn_chain, cfg_layout_finalize): Likewise. * cfgloopanal.c (check_irred): Likewise. * cfgloop.c (superloop_at_depth, flow_loops_free, flow_loop_entry_edges_find, flow_loops_find, flow_loop_outside_edge_p, get_loop_body, get_loop_body_in_dom_order, get_loop_body_in_bfs_order, get_loop_exit_edges, num_loop_branches, cancel_loop, verify_loop_structure): Likewise. cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge, duplicate_loop_to_header_edge, create_preheader, create_loop_notes): Likewise. * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump, edirect_branch_edge, force_nonfallthru_and_redirect, rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion, commit_edge_insertions, commit_edge_insertions_watch_calls, purge_dead_edges, cfg_layout_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch_force, cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise. * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge, cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info, cgraph_varpool_node): Likewise. * cgraphunit.c (cgraph_finalize_function, cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_remove_unreachable_nodes, cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, cgraph_mark_inline, cgraph_expand_all_functions, cgraph_build_static_cdtor): Likewise. * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx, simplify_logical, distribute_notes, insn_cuid): Likewise. * conflict.c (conflict_graph_add, print_conflict): Likewise. * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref, coverage_checksum_string): Likewise. * cse.c (make_new_qty, make_regs_eqv, insert, invalidate, hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage, cse_cc_succs, cse_condition_code_reg): Likewise. * cselib.c (entry_and_rtx_equal_p, remove_useless_values, rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx, new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno, cselib_record_set): Likewise. From-SVN: r87145
2004-09-06Unify the management of RTL and tree-level dump files.Paolo Bonzini1-2/+2
2004-09-06 Paolo Bonzini <bonzini@gnu.org> Unify the management of RTL and tree-level dump files. * cfgexpand.c (tree_expand_cfg): Fix incorrect comment. Don't print function name to the dump file, the pass manager would do this for us. Add code from the top of rest_of_compilation, up to the initial RTL dump. * passes.c (rest_of_handle_jump): Call fixup_tail_calls and close the DFI_sibling dump file. (rest_of_compilation): Don't do that here. Remove code up to the initial RTL dump. (init_optimization_passes): Remove. (pass_rest_of_compilation): Change pass name to NULL. * toplev.c (lang_dependent_init): Do not use an empty dump file prefix. Do not call init_optimization_passes. * toplev.h (init_optimization_passes): Remove. * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file, finish_graph_dump_file): Remove SUFFIX parameter. * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file, finish_graph_dump_file): Likewise. * tree-pass.h (struct tree_opt_pass): Add `letter' field. * cfgexpand.c (pass_expand): Adjust. * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust. * passes.c (pass_rest_of_compilation): Adjust. * predict.c (pass_profile): Adjust. * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust. * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts, pass_split_crit_edges, pass_warn_function_return): Adjust. * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust. * tree-dfa.c (pass_referenced_vars): Adjust. * tree-eh.c (pass_lower_eh): Adjust. * tree-if-conv.c (pass_build_ssa): Adjust. * tree-into-ssa.c (pass_build_ssa): Adjust. * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust. * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust. * tree-nrv.c (pass_nrv): Adjust. * tree-optimize.c (pass_gimple, pass_all_optimizations, pass_cleanup_cfg_post_optimizing, pass_free_datastructures, pass_init_datastructures): Adjust. * tree-outof-ssa.c (pass_del_ssa): Adjust. * tree-profile.c (pass_tree_profile): Adjust. * tree-sra.c (pass_sra): Adjust. * tree-ssa-alias.c (pass_may_alias): Adjust. * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust. * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust. * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust. * tree-ssa-dom.c (pass_dominator): Adjust. * tree-ssa-dse.c (pass_dse): Adjust. * tree-ssa-forwprop.c (pass_forwprop): Adjust. * tree-ssa-if-conv.c (pass_if_conversion): Adjust. * tree-ssa-loop-ch.c (pass_ch): Adjust. * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim, pass_loop_done, pass_complete_unroll, pass_iv_canon, pass_iv_optimize, pass_vectorize): Adjust. * tree-ssa-phiopt.c (pass_phiopt): Adjust. * tree-ssa-pre.c (pass_pre, pass_fre): Adjust. * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized, pass_late_warn_uninnitialized): Adjust. * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust. * Makefile.in (tree-dump.o): Add new dependencies. * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all. * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize): Likewise. * toplev.c (dump_file_name): New. * tree-dump.c (dump_enable_all): Add LETTER parameter. (struct dump_file_info): Add NUM and LETTER fields. (dump_files): Adjust and add RTL dump files. (dump_register): Add NUM and LETTER fields. (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New. (dump_begin): Use get_dump_file_name. (dump_switch_p_1): Adjust call to dump_enable_all. * tree-dump.h (dump_register): Adjust prototype. * tree-optimize.c (register_one_dump_file): Take dump file index. Support flags for RTL dumps. (register_dump_files): Fill in NUM field of struct dump_file_info. Track properties both when the gate is executed and when it is not. (execute_todo): Dump RTL. Add PROPERTIES parameter. (execute_one_pass): Pass properties to execute_todo. Handle VCG dumps of RTL. * tree-pass.h (dump_file_name): New. * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p): New. * Makefile.in (passes.o): Add new dependencies. * passes.c (struct dump_file_info, enum dump_file_index, dump_file_tbl, init_optimization_passes): Remove. (open_dump_file, close_dump_file): Use tree-dumping infrastructure. (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use dump_enabled_p. (finish_optimization_passes): Update finish_graph_dump_file loop. (enable_rtl_dump_file): Remove. * tree-dump.c (dump_files): Adjust and add RTL dump files. (enable_rtl_dump_file): Add here. * tree.h (enum tree_dump_index): Add RTL dump file indices. * doc/invoke.texi (Debugging options): Document new RTL debugging options. Update. From-SVN: r87113
2004-09-05c-common.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* c-common.c, cfgexpand.c, cgraphunit.c, defaults.h, et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h, hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c, tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c, tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c, tree-ssa-operands.c, tree-ssa-operands.h, tree-ssa-propagate.c, tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c, vec.c, vec.h: Fix comment typos. Follow spelling conventions. From-SVN: r87104
2004-07-29c-common.h (lang_post_pch_load): New variable.Mark Mitchell1-1/+6
* c-common.h (lang_post_pch_load): New variable. * c-pch.c (lang_post_pch_load): Define it. (c_common_read_pch): Use it. * cgraphunit.c (record_call_1): Give the front end a chance to record additional needed entities when a variable is marked as needed. * tlink.c (recompile_files): Robustify. (scan_linker_output): If a symbol is assigned to a file, but after recompilation is not present there, issue an error message. * cp-tree.h (IDENTIFIER_REPO_CHOSEN): Define. (lang_decl_flags): Narrow the width of "languages". Add repo_available_p. (DECL_NEEDED_P): Remove. (FOR_EACH_CLONE): New macro. (DECL_REPO_AVAILABLE_P): Likewise. (DECL_TINFO_P): Likewise. (set_linkage_according_to_type): Declare. (import_export_vtable): Remove. (import_export_tinfo): Likewise. (mark_needed): New function. (decl_needed_p): Likewise. (note_vauge_linkage_fn): Likewise. (init_repo): Change prototype. (repo_template_used): Remove. (repo_template_instantiated): Likewise. (repo_emit_p): New function. (repo_export_class_p): Likewise. (no_linkage_check): Change prototype. * class.c (set_linkage_according_to_type): New function. (build_vtable): Use it. Do not call import_export_vtable. Set DECL_IGNORED_P if appropriate. * decl.c (duplicate_decls): Preserve DECL_REPO_AVAILABLE_P. (make_rtL_for_nonlocal_decls): Check for template instantiations explicitly. (grokfndecl): Adjust call to no_linkage_check. (set_linkage_for_static_data_member): New function. (grokvardecl): Use it. Adjust call to no_linkage_check. (grokdeclarator): Use set_linkage_for_static_data_member. * decl2.c (note_vague_linkage_fn): New function. (note_vague_linkage_var): Likewise. (finish_static_data_member_decl): Use it. (import_export_vtable): Remove. (import_export_class): Use repo_export_class_p. (var_finalized_p): Simplify. (maybe_emit_vtables): Simplify. (mark_needed): New function. (decl_needed_p): Likewise. (import_export_decl): Add documentation and consistency checks. Use repo_emit_p. Handle virtual tables and RTTI information here. (import_export_tinfo): Remove. (write_out_vars): Call import_export_decl. (cxx_callgraph_analyze_expr): Ensure that all vtables are emitted whenever one is. (finish_file): Use decl_needed_p. Do not call import_export_decl for undefined static data members. Do not warn about undefined inlines when using a repository. (mark_used): Use note_vague_linkage_fn. Always defer template instantiations. * lex.c (cxx_init): Adjust call to init_repo. Always set flag_unit_at_a-time. * method.c (synthesize_method): Remove unncessary import_export_decl call. (implicitly_declare_fn): Use set_linkage_according_to_type. * optimize.c (maybe_clone_body): Use FOR_EACH_CLONE. * pt.c (instantiate_class_template): Don't redundantly add classes to keyed_classes. Don't call repo_template_used. (tsubst_decl): Set DECL_INTERFACE_KNOWN for instantiations of templates with internal linkage. (check_instantiated_args): Adjust call to no_linkage_check. (instantiate_template): Use FOR_EACH_CLONE. (mark_definable): New function. (mark_decl_instantiated): Use it. (do_decl_instantiation): Adjust tests for explicit instantiation after "extern template". (instantiate_class_member): Do not use repo_template_instantiated. (do_type_instantiation): Simplify. (instantiate_decl): Use mark_definable. Check repo_emit_p. Simplify. * repo.c (repo_get_id): Remove. (original_repo): Remove. (IDENTIFIER_REPO_USED): Remove. (IDENTIFIER_REPO_CHOSEN): Remove. Remove all #if 0'd code. (repo_template_used): Remove. (repo_template_instantiated): Remove. (temporary_obstack_initialized_p): New variable. (init_repo): Register with lang_post_pch_load. Avoid creating identifiers unnecessarily. Don't use original_repo. Close the file here. (reopen_repo_file_for_write): Not here. (finish_repo): Always write out a new repository file. (repo_emit_p): New function. (repo_export_class_p): Likewise. * rtti.c (get_tinfo_decl): Use set_linkage_according_to_type. (involves_incomplete_p): New function. (tinfo_base_init): Use it. (ptr_initializer): Remove non_public_ptr parameter. (ptm_initializer): Likewise. (get_pseudo_ti_init): Likewise. (unemitted_tinfo_decl_p): Remove. (emit_tinfo_decl): Use import_export_decl. * semantics.c (expand_body): Move updates of static_ctors and static_dtors to ... (expand_or_defer_fn): ... here. * tree.c (no_linkage_check): Add relaxed_p parameter. * g++.dg/abi/inline1.C: New test. * g++.dg/abi/local1-a.cc: Likewise. * g++.dg/abi/local1.C: Likewise. * g++.dg/abi/mangle11.C: Tweak location of warnings. * g++.dg/abi/mangle12.C: Likewise. * g++.dg/abi/mangle17.C: Likewise. * g++.dg/abi/mangle20-2.C: Likewise. * g++.dg/opt/interface1.C: Likewise. * g++.dg/opt/interface1.h: Likewise. * g++.dg/opt/interface1-a.cc: New test. * g++.dg/parse/repo1.C: New test. * g++.dg/template/repo1.C: Likewise. * g++.dg/warn/Winline-1.C: Likewise. * lib/gcc-dg.exp (gcc-dg-test-1): Fix -frepo handling. From-SVN: r85309
2004-07-25Remove obsolete text in comment.Richard Kenner1-2/+1
From-SVN: r85147
2004-07-25c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P on the ↵Richard Henderson1-2/+6
RESULT_DECL. * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P on the RESULT_DECL. * cgraphunit.c (cgraph_build_static_cdtor): Likewise. * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and DECL_IGNORED_P to new decl. ada/ * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P on RESULT_DECL. cp/ * decl.c (start_preparsed_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P on RESULT_DECL. * semantics.c (finalize_nrv): Copy them too. fortran/ * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P on RESULT_DECL. (gfc_generate_constructors): Likewise. java/ * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P. From-SVN: r85145