aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
AgeCommit message (Collapse)AuthorFilesLines
2005-06-06exgettext: Handle gmsgid and cmsgid arguments specially, as ↵Jakub Jelinek1-9/+9
gcc-internal-format and c-format. gcc/po/ * exgettext: Handle gmsgid and cmsgid arguments specially, as gcc-internal-format and c-format. Because of xgettext bug, invoke xgettext once with --language=c, once with --language=GCC-source and then merge together. Fail if xgettext is not 0.14.5 or later. gcc/ * intl.h (G_): New macro. * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid instead of msgid for argument name. * tree-ssa.c (warn_uninit): Likewise. * c-parser.c (c_parser_error): Likewise. * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise. * config/darwin-c.c (BAD): Likewise. * config/c4x/c4x-c.c (BAD): Likewise. * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise. * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise. * c-common.c (c_parse_error): Likewise. * diagnostic.c (diagnostic_set_info, verbatim, inform, warning, warning0, pedwarn, error, sorry, fatal_error, internal_error): Likewise. (fnotice): Use cmsgid instead of msgid for argument name. * gcov.c (fnotice): Likewise. * protoize.c (notice): Likewise. * final.c (output_operand_lossage): Likewise. * gcc.c (fatal, notice): Likewise. (error): Use gmsgid instead of msgid for argument name. * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead of msgid for argument name. (error): Use gmsgid instead of msgid for argument name. * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_() instead of N_(). * c-typeck.c (readonly_error, convert_for_assignment): Likewise. * tree-inline.c (inline_forbidden_p_1): Likewise. * ABOUT-GCC-NLS: Require gettext 0.14.5 or later. Mention the new conventions for marking translations. * doc/install.texi: Mention gettext 0.14.5 or later requirement. gcc/cp/ * error.c (locate_error): Use gmsgid instead of msgid for argument name. (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise. gcc/java/ * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of msgid for argument name. * gjavah.c (error): Likewise. * java-tree.h (parse_error_context): Likewise. * parse.y (parse_error_context, parse_warning_context, issue_warning_error_from_context): Likewise. From-SVN: r100676
2005-06-01tree.h (fold_indirect_ref_1): Export from fold-const.c.Richard Guenther1-7/+11
2005-06-01 Richard Guenther <rguenth@gcc.gnu.org> * tree.h (fold_indirect_ref_1): Export from fold-const.c. * fold-const.c (fold_indirect_ref_1): No longer static. * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for folding, if possible. From-SVN: r100458
2005-05-28tree-inline.c (cfun_stack): Change the type to VEC(function_p,heap).Kazu Hirata1-11/+8
* tree-inline.c (cfun_stack): Change the type to VEC(function_p,heap). (push_cfun, pop_cfun): Use VEC instead of VARRAY. From-SVN: r100294
2005-05-27cgraph.c: Include tree-gimple.hJan Hubicka1-54/+52
* 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-27[multiple changes]Richard Guenther1-1/+11
2005-05-18 Richard Guenther <rguenth@gcc.gnu.org> * tree-inline.c (copy_body_r): Manually fold *& to deal with ADDR_EXPRs with mismatched types for now. 2005-05-17 Richard Guenther <rguenth@gcc.gnu.org> * gimplify.c (fold_indirect_ref_rhs): New function. (gimplify_modify_expr_rhs): Use it instead of pessimistic fold_indirect_ref. 2005-05-15 Richard Guenther <rguenth@gcc.gnu.org> * fold-const.c (fold_indirect_ref_1): Add type argument; make sure the resulting expression is of this type. (build_fold_indirect_ref, fold_indirect_ref): Adjust callers. From-SVN: r100267
2005-05-19basic-block.h (REG_BR_PROB_BASE): Define.Jan Hubicka1-2/+4
* 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-19cfgexpand.c, [...]: Fix comment typos.Kazu Hirata1-10/+10
gcc/ * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c, tree-ssa-forwprop.c: Fix comment typos. * doc/invoke.texi: Fix a typo. cp/ * parser.c: Fix comment typos. From-SVN: r99944
2005-05-17cgraph.h (cgraph_node): Add 'lowered' state.Steven Bosscher1-395/+719
* 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-05-16tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.Paolo Bonzini1-0/+1
2005-05-16 Paolo Bonzini <bonzini@gnu.org> * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR. From-SVN: r99767
2005-05-13builtins-43.c: Use gimple dump instead of generic.Jan Hubicka1-10/+4
* gcc.dg/builtins-43.c: Use gimple dump instead of generic. * gcc.dg/fold-xor-?.c: Likewise. * gcc.dg/pr15784-?.c: Likewise. * gcc.dg/pr20922-?.c: Likewise. * gcc.dg/tree-ssa/20050128-1.c: Likewise. * gcc.dg/tree-ssa/pr17598.c: Likewise. * gcc.dg/tree-ssa/pr20470.c: Likewise. * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs. * tree-optimize.c (pass_gimple): Kill. (init_tree_optimization_passes): Kill pass_gimple. * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple. * tree-dump.c (dump_files): Rename .generic to .gimple.* From-SVN: r99658
2005-04-23diagnostic.c (warning): Accept parameter to classify warning option.DJ Delorie1-4/+4
* diagnostic.c (warning): Accept parameter to classify warning option. (warning0): New, for when a pointer to an error() like function is needed. * errors.c (warning): Likewise. * errors.h (warning, warning0): Adjust prototypes. * toplev.h (warning, warning0): Likewise. * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c, c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c, c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c, fold-const.c, fortran/trans-decl.c, function.c, gcse.c, genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c, tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c, tree-ssa.c, tree.c, varasm.c: Adjust warning() callers. * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c, config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c, config/darwin.c, config/darwin.h, config/h8300/h8300.c, config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c, config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c, config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h, config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h, config/rs6000/aix52.h, config/rs6000/darwin.h, config/rs6000/rs6000-c.c, config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c, config/sh/sh.h, config/sh/symbian.c, config/sol2-c.c, config/sol2.c, config/stormy16/stormy16.c, config/v850/v850-c.c, config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning() callers. * ada/misc.c: Adjust warning() callers. * cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c, cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c, cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c, cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers. * fortran/trans-decl.c: Adjust warning() callers. * java/class.c, java/decl.c, java/expr.c, java/jcf-io.c, java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning() callers. * objc/objc-act.c: Adjust warning() callers. * treelang/parse.y: Adjust warning() callers. From-SVN: r98633
2005-04-21lambda.h (lambda_vector_min_nz): Likewise.Nathan Sidwell1-2/+1
* lambda.h (lambda_vector_min_nz): Likewise. * langhooks.h (struct lang_hooks_for_types, struct lang_hooks): Likewise. * output.h (assemble_integer, this_is_asm_operands): Likewise. * tree.h: Likewise. * vec.h: Likewise. * tree-flow-inline.h (relink_imm_use): Use gcc_assert. * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword comments to avoid 'abort'. Use gcc_assert as necessary. * opts.c (common_handle_option): Likewise. * pretty-print.c (pp_base_format_text): Likewise. * print-rtl.c (print_rtx): Likewise. * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise. * regmove.c (try_auto_increment): Likewise. * reload.c (find_valid_class, find_reloads_toplev, find_equiv_reg): Likewise. * reload1.c (reload, forget_old_reloads_1, function_invariant_p, merge_assigned_reloads): Likewise. * tree-inline.c (inline_forbidden_p_1, estimate_num_insns_1): Likewise. * tree-optimize.c (execute_todo): Likewise. * tree-outof-ssa.c (eliminate_phi): Likewise. * tree-ssa-alias.c (add_pointed_to_expr): Likewise. * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise. * tree-ssa-operands.c (parse_ssa_operands, get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise. * tree-ssa-pre.c (find_or_generate_expression): Likewise. * tree-ssanames.c (release_ssa_name): Likewise. * tree.c (int_bit_position, int_byte_position, tree_low_cst, walk_tree): Likewise. * tree-ssa-operands.c (verify_abort): Fold into .. (verify_imm_links): ... here. From-SVN: r98519
2005-04-13* tree-inline.c (INSNS_PER_STMT): Remove.Kazu Hirata1-5/+0
From-SVN: r98073
2005-04-05re PR tree-optimization/20076 (__builtin_return(__builtin_apply()) inlined ↵Jakub Jelinek1-0/+11
incorrectly) PR tree-optimization/20076 * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions that call __builtin_return or __builtin_apply_args. * gcc.dg/builtin-apply4.c: New test. From-SVN: r97653
2005-04-02re PR debug/19345 (Segmentation fault with VLA and inlining and dwarf2)Alexandre Oliva1-3/+8
gcc/ChangeLog: PR debug/19345 * dwarf2out.c (add_abstract_origin_attribute): Revert accidental change checked in along with 2005-03-03's patch for debug/20253. * tree-inline.c (remap_type): Remap TYPE_STUB_DECL. (remap_decl): Insert type decl in map earlier. gcc/testsuite/ChangeLog: * gcc.dg/pr19345.c: New test. From-SVN: r97449
2005-04-01* tree-inline.c: Fix a typo.Kazu Hirata1-1/+1
From-SVN: r97391
2005-04-01tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where possible.Kazu Hirata1-1/+1
* tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where possible. From-SVN: r97389
2005-03-30tree.def (FILE_TYPE): Removed.Tom Tromey1-1/+0
gcc: * tree.def (FILE_TYPE): Removed. * typeclass.h (enum type_class): Removed file_type_class. * dwarf2out.c (is_base_type): Updated. (gen_type_die): Likewise. * dbxout.c (dbxout_type): Updated. * builtins.c (type_to_class): Updated. * tree.c (type_contains_placeholder_1): Updated. * config/sparc/sparc.c (sparc_type_code): Updated. * config/ia64/ia64.c (hfa_element_mode): Updated. * expr.c (count_type_elements): Updated. * stor-layout.c (layout_type): Updated. * tree-inline.c (remap_type): Updated. * tree-pretty-print.c (dump_generic_node): Updated. gcc/java: * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE. From-SVN: r97282
2005-03-28tree-inline.c (estimate_num_insns_1): Use declaration to discover argument ↵Jan Hubicka1-3/+12
types where possible. * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument types where possible. From-SVN: r97132
2005-03-22cgraphunit.c (cgraph_estimate_size_after_inlining): Compute call cost based ↵Richard Guenther1-17/+62
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-16tree-inline.c (walk_type_fields, [...]): Move from here...Steven Bosscher1-351/+0
* tree-inline.c (walk_type_fields, walk_tree, walk_tree_without_duplicates): Move from here... * tree.c: ...to here. From-SVN: r96550
2005-03-12tree-inline.c (expand_call_inline): Remove local variable decl.Kazu Hirata1-3/+2
* tree-inline.c (expand_call_inline): Remove local variable decl. From-SVN: r96347
2005-01-27re PR middle-end/19583 (Incorrect diagnostic: control may reach end of ↵Ian Lance Taylor1-0/+4
non-void function '...' being inlined) PR middle-end/19583 * gimple-low.c (try_catch_may_fallthru): New static function. (block_may_fallthru): Handle TRY_CATCH_EXPR. * tree-inline.c (expand_call_inline): Don't warn about reaching the end of a non-void function being inlined if the function uses a return slot. From-SVN: r94323
2005-01-26re PR target/19421 (ICE with soft-float on m68k)Jan Hubicka1-0/+1
PR tree-optimization/19421 * tree-inline.c (copy_body_r): Do not walk subtrees after substituting. From-SVN: r94254
2005-01-25re PR tree-optimization/19337 (ada does not compile at -O3 (nested functions ↵Jan Hubicka1-0/+2
related)) PR tree-optimize/19337 * gcc.c-torture/compile/20050119-1.c: New test. PR tree-optimize/19337 * tree-inline.c (initialize_inlined_parameters): Copy saved_static_chain_decl only. From-SVN: r94226
2005-01-21re PR tree-optimization/13000 ([unit-at-a-time] Using -O2 cannot detect ↵Ian Lance Taylor1-1/+15
missing return statement in a function) PR tree-optimization/13000 * tree-inline.c: Include "tree-flow.h". (expand_call_inline): If warn_return_type, warn if non-void inline function falls through. * tree-cfg.c (execute_warn_function_return): Don't warn about control reaching end if TREE_NO_WARNING is set. Set TREE_NO_WARNING. * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR has been lowered. * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else branch if we don't need one. * c-typeck.c: Include "tree-flow.h" (c_finish_bc_stmt): Don't add a goto if the current statement list doesn't fall through to the current point. From-SVN: r94024
2005-01-18calls.c (expand_call): Check DECL_BUILT_IN_CLASS before accessing ↵Eric Botcazou1-1/+1
DECL_FUNCTION_CODE. * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before accessing DECL_FUNCTION_CODE. * dojump.c (do_jump): Likewise. * gimplify.c (gimplify_call_expr): Likewise. * predict.c (expr_expected_value): Likewise. (strip_builtin_expect): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. * tree-ssa-loop-im.c (stmt_cost): Likewise * fold-const.c (fold): Test for BUILT_IN_NORMAL. (tree_expr_nonnegative_p): Likewise. From-SVN: r93864
2005-01-18tree-inline.c (estimate_num_insns_1): Added cases for ALIGN_INDIRECT_REF, ↵Dorit Naishlos1-0/+4
MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR. * tree-inline.c (estimate_num_insns_1): Added cases for ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR. From-SVN: r93823
2005-01-17Update copyright year.Ian Lance Taylor1-1/+1
From-SVN: r93775
2005-01-17re PR middle-end/13127 (Inlining causes spurious "might be used ↵Ian Lance Taylor1-1/+12
uninitialized" warnings) PR middle-end/13127: * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on a variable set to the return value of the inlined function. From-SVN: r93765
2005-01-04Fix PR debug/17924 Fix PR debug/19191Daniel Berlin1-0/+7
2005-01-03 Daniel Berlin <dberlin@dberlin.org> Fix PR debug/17924 Fix PR debug/19191 * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin is a decl. * gimple-low.c (mark_blocks_with_used_vars): New function. (mark_blocks_with_used_subblocks): Ditto. (mark_used_blocks): Ditto. (pass_mark_used_blocks): New pass. * tree-inline.c: Include debug.h. (expand_call_inline): Call outlining_inline_function here. * tree-optimize.c (init_tree_optimization_passes): Add pass_mark_used_blocks. * tree-pass.h (pass_mark_used_blocks): New. * Makefile.in (tree-inline.o): Add debug.h dependency. From-SVN: r92882
2004-12-31re PR middle-end/17799 (Non-optimizing compile loses 'this')Richard Henderson1-0/+1
PR middle-end/17799 * function.c (use_register_for_decl): Check DECL_IGNORED_P instead of DECL_ARTIFICIAL. (assign_parms_augmented_arg_list): Set DECL_IGNORED_P. * c-decl.c (build_compound_literal): Likewise. * dwarf2asm.c (dw2_force_const_mem): Likewise. * gimplify.c (create_artificial_label): Likewise. * tree-inline.c (expand_call_inline): Likewise. * var-tracking.c (vt_initialize): Likewise. * tree-outof-ssa.c (create_temp): Copy DECL_IGNORED_P. cp/ * call.c (make_temporary_var_for_ref_to_temp): Set DECL_IGNORED_P. * class.c (build_vtable): Don't conditionallize setting it based on DWARF2_DEBUG. (layout_class_type): Set DECL_IGNORED_P. * decl2.c (get_guard): Likewise. * rtti.c (get_tinfo_decl, build_lang_decl): Likewise. * tree.c (build_local_temp): Likewise. From-SVN: r92781
2004-12-23tree-inline.c (struct inline_data): Remove inlined_fns.Daniel Berlin1-24/+0
2004-12-22 Daniel Berlin <dberlin@dberlin.org> * tree-inline.c (struct inline_data): Remove inlined_fns. (expand_call_inline): Remove dead code setting inlined_fns. (optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS. * tree.h (struct tree_decl): Remove inlined_fns. From-SVN: r92529
2004-12-18re PR middle-end/16417 (crappy code (gcc.c-torture/compile/20020210-1.c) in ↵Richard Henderson1-1/+1
arguments causes ICE) PR middle-end/16417 * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion comment. * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes checks. * c-tree.h (struct lang_decl): Remove pending_sizes. * function.c: Include tree-gimple.h (assign_parm_setup_reg): Remove callee-copies code. (gimplify_parm_type, gimplify_parameters): New functions. (expand_pending_sizes): Remove. (expand_function_start): Don't call it. * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL. (gimplify_body): Add do_parms argument. Use gimplify_parameters. (gimplify_function_tree): Setup cfun. Update gimplify_body call. * tree-gimple.h (gimplify_body): Update decl. * tree-inline.c (initialize_inlined_parameters): Update gimplify_body call. * tree.h (gimplify_parameters): Declare. * Makefile.in (function.o): Depend on TREE_GIMPLE_H. From-SVN: r92373
2004-12-15re PR c++/17972 (const/pure functions result in bad asm)Eric Botcazou1-2/+5
PR c++/17972 * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS on the STMT_EXPR wrapping up the inlined body. From-SVN: r92210
2004-12-13re PR tree-optimization/16951 (ICE in make_decl_rtl with recursion in C++ ↵Alexandre Oliva1-1/+23
constructor (-O1)) gcc/ChangeLog: PR tree-opt/16951 * tree-inline.c (setup_one_parameter): Don't directly map a parameter to the address of another variable of the same function. gcc/testsuite/ChangeLog: PR tree-opt/16951 * gcc.c-torture/compile/20041211-1.c: New. From-SVN: r92106
2004-12-09tree.def (SET_TYPE): Remove.Nathan Sidwell1-1/+0
* tree.def (SET_TYPE): Remove. (CONSTRUCTOR): Update description. * builtins.c (type_to_class) Remove SET_TYPE case. * dbxout.c (dbxout_type): Likewise. * dwarf2out.c (is_base_type): Likewise. (gen_set_type_die): Remove. (gen_type_die): Remove SET_TYPE case. * expr.c (count_type_elements): Likewise. (mostly_zeroes_p): Likewise. (store_constructor): Likewise. * print_tree.c (print_node): Likewise. * stor-layout.c (layout_type): Likewise. * tree-browser.c (browse_tree): Likewise. * tree-inline.c (remap_type): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. * tree.c (type_contains_plaeholder_1, type_hash_eq, variably_modified_type_p, initializer_zerop): Likewise. * tree.h (SET_OR_ARRAY_CHECK): Remove. (AGGREGATE_TYPE_P): Remove SET_TYPE check. (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK. * typeclass.h (enum type_class): Remove set_type_class. * varasm.c (const_hash_1): Remove SET_TYPE case. (compare_constant, copy_constant, output_constant): Likewise. * config/i386/i386.c (classify_argument): Likewise. * config/ia64/ia64.c (hfa_element_mode): Likewise. * config/sparc/sparc.c (sparc_type_code): Likewise. * ada/decl.c (gnat_substitute_in_type): Remove SET_TYPE case. From-SVN: r91931
2004-12-09re PR c++/16681 (array initialization in struct construct is a memory hog)Nathan Sidwell1-0/+1
PR c++/16681 * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case. From-SVN: r91930
2004-12-07c-common.c, [...]: Replace uses of first_rtl_op with TREE_CODE_LENGTH.Kazu Hirata1-2/+2
gcc/ * c-common.c, expr.c, fold-const.c, print-tree.c, tree-gimple.c, tree-inline.c, tree-pretty-print.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of first_rtl_op with TREE_CODE_LENGTH. * tree.c (first_rtl_op): Remove. Replace uses of first_rtl_op with TREE_CODE_LENGTH. * tree.h: Remove the prototype for first_rtl_op. gcc/cp/ * pt.c: Replace a use of first_rtl_op with TREE_CODE_LENGTH. From-SVN: r91818
2004-11-28* tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.Richard Kenner1-1/+4
From-SVN: r91420
2004-11-24tree-inline.c (copy_body_r): Explicitly copy a constant if the type will be ↵Richard Kenner1-0/+19
remapped. * tree-inline.c (copy_body_r): Explicitly copy a constant if the type will be remapped. From-SVN: r91192
2004-11-24expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR and ↵Steven Bosscher1-26/+1
LABELED_BLOCK_EXPR. gcc/ * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. * gimplify.c (gimplify_labeled_block_expr): Remove. (gimplify_exit_block_expr): Remove. (gimplify_expr): Don't call them. * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. (estimate_num_insns_1): Likewise. (walk_tree): Likewise. * tree-pretty-print.c (dump_generic_node): Don't handle EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def. (LABELED_BLOCK_EXPR): Likewise. * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h. (LABELED_BLOCK_BODY): Likewise. (EXIT_BLOCK_LABELED_BLOCK): Likewise. (EXIT_BLOCK_RETURN): Removed. java/ * java-gimplify.c (java_gimplify_labeled_block_expr): New function. (java_gimplify_exit_block_expr): New function. (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def. (EXIT_BLOCK_EXPR): Likewise. * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h. (LABELED_BLOCK_BODY): Likewise. (EXIT_BLOCK_LABELED_BLOCK): Likewise. * jcf-write.c (generate_bytecode_insns): Don't handle the unused EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR. (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the second operand of EXIT_BLOCK_EXPR. * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of TREE_OPERAND. (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes. From-SVN: r91149
2004-11-08tree-inline.c (remap_save_expr): Make it static.Kazu Hirata1-1/+2
* tree-inline.c (remap_save_expr): Make it static. * tree-inline.h: Remove the corresponding prototype. From-SVN: r90313
2004-11-08re PR middle-end/18299 (ICE in gimple-lower)Andrew Pinski1-1/+1
2004-11-08 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/18299 * gcc.c-torture/pr18299-1.c: New test. 2004-11-08 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/18299 * tree-inline.c (copy_body_r): Change "t = t" to empty statement instead of "t". From-SVN: r90295
2004-10-31re PR middle-end/14521 (Inconsistent quoting in new warning)Roger Sayle1-10/+10
PR middle-end/14521 * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F' for consistent quoting in diagnostic messages. (expand_call_inline): Likewise. * tree-optimize.c (tree_rest_of_compilation): Likewise. * tree-ssa.c (warn_uninitialized_var): Likewise. (warn_uninitialized_phi): Likewise. From-SVN: r89918
2004-10-22alias.c, [...]: Fix comment formatting.Kazu Hirata1-1/+1
* 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-24/+18
* 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-07re PR c++/17115 (-Winline does not respect __attribute__((__noinline__)))Giovanni Bajo1-1/+2
PR c++/17115 * tree-inline.c (expand_call_inline): Do not warn for functions marked with attribute noinline. PR c++/17115 * g++.dg/warn/Winline-4.C: New test. From-SVN: r88678
2004-09-25passes.c (rest_of_handle_cfg): Disable const/pure function detection when ↵Jan Hubicka1-1/+1
doing tree based profiling. * passes.c (rest_of_handle_cfg): Disable const/pure function detection when doing tree based profiling. * tree-inline.c (expand_call_inline): Fix incorrectly reversed conditional. From-SVN: r88092
2004-09-23re PR debug/17389 (ICE in dwarf2out_finish, at dwarf2out.c:13566)Jan Hubicka1-14/+0
PR debug/17389 * dwarf2out.c (dwarf2out_finish): Deal with nested functions of fully inlined functions. * tree-inline.c (inline_forbidden_p_1): Nested functions can be inlined. From-SVN: r87911