Nathan Sidwell
36f04556d6
tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is removed.
...
* tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is
removed.
* java/java-tree.h (DECL_FUNCTION_LAST_LINE): New.
(struct lang_decl_func): Add last_line field.
* java/parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
DECL_SOURCE_LINE_LAST): Remove.
* java/parse.y (missing_return_error,
finish_method_declaration, lookup_cl, start_artificial_method_body,
source_end_java_method, start_complete_expand_method): Adjust.
From-SVN: r67661
2003-06-09 12:57:15 +00:00
Jason Merrill
68594ce757
tree-inline.c (copy_body_r): Avoid generating &* during inline substitution.
...
* tree-inline.c (copy_body_r): Avoid generating &* during inline
substitution.
From-SVN: r66964
2003-05-19 12:17:32 -04:00
Nathan Sidwell
070588f06e
c-decl.c (pending_invalid_xref_file): Remove.
...
* c-decl.c (pending_invalid_xref_file): Remove.
(pending_invalid_xref_line): Remove.
(pending_invalid_xref_location): New.
(lookup_label): Use location_t and input_location directly.
(lookup_tag): Likewise.
(pending_xref_error): Likewise.
(c_expand_body_1): Likewise.
* c-common.c (x_expand_start_cond): Likewise.
* c-semantics.c (genrtl_for_stmt): Likewise.
(find_reachable_label): Likewise.
* expr.c (expand_expr): Likewise.
* integrate.c (output_inline_function): Likewise.
* tree-inline.c (find_alloca_call): Likewise.
(find_builtin_longjmp_call): Likewise.
* gcc.c (input_filename): Make static.
From-SVN: r66425
2003-05-03 13:28:33 +00:00
Nathan Sidwell
d479d37f5e
input.h (lineno): Rename to ...
...
* input.h (lineno): Rename to ...
(input_line): ... here.
* tree.h (lineno): Rename to ...
(input_line): ... here.
* scan.h (lineno): Rename to ...
(input_line): ... here.
* toplev.c (lineno): Rename to ...
(input_line): ... here.
(push_srcloc, pop_srcloc): Rename lineno to input_line.
* c-common.c (c_expand_start_cond, fname_decl): Likewise.
* c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
store_parm_decls, c_expand_body_1): Likewise.
* c-errors.c (pedwarn_c99): Likewise.
* c-format.c (status_warning): Likewise.
* c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
* c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
* c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
* c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
* coverage.c (create_coverage): Likewise.
* diagnostic.c (pedwarn, sorry, error, fatal_error,
internal_error, warning, diagnostic_report_current_module,
inform): Likewise.
* expr.c (expand_expr): Likewise.
* integrate.c (expand_inline_function,
output_inline_function): Likewise.
* rtl-error.c (file_and_line_for_asm): Likewise.
* tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
walk_tree): Likewise.
* tree.c (make_node): Likewise.
* ada, cp, f, java, objc, treelang: Likewise.
ada
* trans.c (build_unit_elab, set_lineno): Rename lineno to
input_line.
* utils.c (pushdecl, create_label_decl, begin_subprog_body,
end_subprog_body): Likewise.
* utils2.c (build_call_raise): Likewise.
cp
* class.c (finish_struct): Rename lineno to input_line.
* decl.c (push_binding_level, pop_binding_level,
suspend_binding_level, resume_binding_level, make_label_decl,
use_label, start_function): Likewise.
* decl2.c (warn_if_unknown_interface,
start_static_initialization_or_destruction,
generate_ctor_or_dtor_function, finish_file): Likewise.
* error.c (cp_line_of, print_instantiation_full_context,
print_instantiation_context): Likewise.
* except.c (check_handlers_1, check_handlers): Likewise.
* init.c (create_temporary_var): Likewise.
* method.c (use_thunk, synthesize_method): Likewise.
* parser.c (cp_lexer_set_source_position_from_token,
cp_lexer_get_preprocessor_token): Likewise.
* pt.c (push_tinst_level, pop_tinst_level,
tsubst_friend_function, instantiate_class_template, tsubst_decl,
tsubst, tsubst_expr, instantiate_decl): Likewise.
* semantics.c (genrtl_try_block, finish_label_stmt,
begin_class_definition, expand_body,
genrtl_finish_function): Likewise.
* tree.c (build_min_nt, build_min): Likewise.
f
* ansify.c (die_unless): Rename lineno to input_line.
* com.c (ffecom_subscript_check_, ffecom_do_entry_,
ffecom_gen_sfuncdef_, ffecom_start_progunit_,
ffecom_sym_transform_, ffecom_sym_transform_assign_,
bison_rule_pushlevel_, bison_rule_compstmt_, finish_function,
store_parm_decls): Likewise.
* intrin.c (ffeintrin_fulfill_generic): Likewise.
* lex.c (ffelex_hash_, ffelex_include_, ffelex_next_line_,
ffelex_file_fixed, ffelex_file_free): Likewise.
* std.c (ffestd_exec_end): Likewise.
* ste.c (ffeste_emit_line_note_, ffeste_start_block_,
ffeste_start_stmt_): Likewise.
* ste.h (ffeste_filelinenum, ffeste_set_line): Likewise.
java
* lex.h (lineno): Rename to ...
(input_line): ... here
* parse-scan.y (lineno): Rename to ...
(input_line): ... here.
(reset_report): Rename lineno to input_line.
* check-init.c (check_init): Likewise.
* class.c (push_class): Likewise.
* decl.c (complete_start_java_method, end_java_method): Likewise.
* expr.c (expand_byte_code): Likewise.
* jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
* jcf-write.c (generate_bytecode_insns): Likewise.
* lex.c (java_init_lex, java_allocate_new_line,
do_java_lex): Likewise.
* parse.h (YYNOT_TWICE): Likewise.
* parse.y (empty_statement, expression_statement,
java_pop_parser_context, java_parser_context_save_global,
yyerror, register_fields, method_header, safe_layout_class,
find_in_imports_on_demand, create_artificial_method,
source_end_java_method, start_complete_expand_method,
build_thisn_assign, java_complete_lhs,
maybe_absorb_scoping_block): Likewise.
objc
* objc-act.c (objc_init): Rename lineno to input_line.
(build_module_descriptor, build_selector_translation_table,
build_protocol_template, build_method_prototype_list_template,
build_category_template, build_selector_table,
build_class_template, build_super_template, build_ivar_template,
build_ivar_list_template, build_method_list_template,
build_method_template, add_instance_variable): Likewise.
treelang
* tree1.c (treelang_init): Rename lineno to input_line.
From-SVN: r66333
2003-05-01 16:13:36 +00:00
Geoffrey Keating
5d638f7087
tree-inline.c (inlinable_function_p): Back out last change, it's unnecessary.
...
* tree-inline.c (inlinable_function_p): Back out last change, it's
unnecessary.
From-SVN: r66315
2003-05-01 01:21:45 +00:00
Geoffrey Keating
b3d627e251
tree-inline.c (inlinable_function_p): Don't support inlining functions using varargs.
...
* tree-inline.c (inlinable_function_p): Don't support inlining
functions using varargs.
Index: testsuite/ChangeLog
* gcc.c-torture/compile/inline-1.c: New file.
From-SVN: r66269
2003-04-29 23:32:44 +00:00
Mark Mitchell
a833faa599
re PR c++/10180 (gcc fails to warn about non-inlined function)
...
PR c++/10180
* tree-inline.c (expand_call_inline): Call push_srcloc when
encountering EXPR_WITH_FILE_LOCATION. Honor warn_inline.
PR c++/10180
* g++.dg/warn/Winline-1.C: New test.
From-SVN: r66202
2003-04-29 03:24:27 +00:00
Andrew Haley
0bb7378dd6
tree-inline.c (inlinable_function_p): Disable inlining for synchronized methods.
...
2003-04-10 Andrew Haley <aph@redhat.com>
* tree-inline.c (inlinable_function_p): Disable inlining for
synchronized methods.
From-SVN: r65425
2003-04-10 15:00:03 +00:00
Steven Bosscher
009ed91036
c-common.h (lang_statement_code_p): Remove declaration.
...
2003-04-09 Steven Bosscher <steven@gcc.gnu.org>
* c-common.h (lang_statement_code_p): Remove declaration.
(statement_code_p): Ditto.
(c_common_stmt_codes): Define; list of c-common statement codes.
(statement_code_p): New extern declaration.
(STATEMENT_CODE_P): Define.
(INIT_STATEMENT_CODES): Define.
* c-common.c (statement_code_p): Kill the function, declare
as an array of bools instead.
(lang_statement_code_p): Remove.
(walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
(c_safe_from_p): Ditto.
* c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
to initialize the statement_code_p array.
* tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
statement_code_p.
(copy_tree_r): Ditto.
* cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
statement tree codes.
* cp/lex.c (cxx_init): Add missing print line break. Use
INIT_STATEMENT_CODES to initialize the statement_code_p array.
* cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
instead of statement_code_p.
* cp/pt.c (tsubst_expr): Ditto.
* cp/tree.c (verify_stmt_tree_r): Ditto.
(cp_statement_code_p): Remove.
(init_tree): Don't set lang_statement_code_p, it's gone.
From-SVN: r65422
2003-04-10 08:07:13 +00:00
Eric Botcazou
f650843fc3
re PR rtl-optimization/8396 ([sparc] optimizer ICE)
...
PR optimization/8396
* tree-inline.c (initialize_inlined_parameters): Make sure the value
of read-only constant arguments is passed with the right type.
From-SVN: r64358
2003-03-14 14:49:40 +00:00
Nathanael Nerode
54a7b5732a
c-pch.c, [...]: Replace "GNU CC" with "GCC".
...
* c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
"GNU CC" with "GCC".
From-SVN: r64297
2003-03-13 03:48:31 +00:00
Jan Hubicka
18d13f3417
inline-3.c: New test.
...
* gcc.dg/inline-3.c: New test.
* c-decl.c: (finish_function): Update call of tree_inlinable_function_p.
* cgraph.h: (cgraph_local_info): Add can_inline_once
(cgraph_global_info): Add inline_once.
(cgraph_node): Add previous.
(cgraph_remove_node): New.
* cgraphunit.c (cgraph_mark_functions_to_inline_once): New static
function.
(cgraph_optimize): Call it.
(cgraph_finalize_function): Set inlinable flags.
(cgraph_finalize_compilation_unit): Actually remove the reclaimed nodes.
(cgraph_mark_functions_to_output): Use new inlining heuristics flags.
(cgraph_expand_function): Likewise.
* cgraph.c
(cgraph_node): Put nodes into doubly linked chain.
(cgraph_remove_node): New function.
* flags.h (flag_inline_functions_called_once): Declare.
* tree-inline.c: Include cgraph.h
(inlinable_functions_p): Add extra argument to bypass limits.
(expand_call_inline): Obey cgraph flag.
* tree-inline.h (tree_inlinable_function_p): Update prototype.
From-SVN: r63983
2003-03-08 13:26:37 +00:00
Jason Merrill
4c28216d00
tree-inline.c (inlinable_function_p): Revert earlier change pending investigation.
...
* tree-inline.c (inlinable_function_p): Revert earlier change
pending investigation.
From-SVN: r63897
2003-03-06 14:33:44 -05:00
Jason Merrill
d1a74aa7d3
tree-inline.c (find_builtin_longjmp_call): Save and restore lineno and input_filename.
...
* tree-inline.c (find_builtin_longjmp_call): Save and restore
lineno and input_filename.
(find_alloca_call): Likewise.
(inlinable_function_p): Run the langhook earlier.
* calls.c (compute_argument_addresses): Give the new MEMs a
minimum alignment of PARM_BOUNDARY.
cp/
* decl.c (start_function): Clear DECL_NUM_STMTS.
* class.c (get_vtable_decl): Use vtbl_type_node.
(build_primary_vtable): Check for it.
From-SVN: r63733
2003-03-03 16:28:23 -05:00
Kurt Garloff
bc52247263
params.def: Introduce parameter max-inline-insns-rtl for a separate limit for the RTL inliner.
...
2003-03-02 Kurt Garloff <garloff@suse.de>
* params.def: Introduce parameter max-inline-insns-rtl for
a separate limit for the RTL inliner.
* params.h: Likewise.
* integrate.c (function_cannot_inline_p): Use it.
* toplev.c (decode_f_option): Set multiple parameters
controlling inlining with -finline-limit.
* params.def: Fix orthographic and typographic errors.
* doc/invoke.texi: Document parameters controlling inlining
and the way -finline-limit sets multiple of them.
* tree.h (struct tree_decl): Introduce inlined_function_flag,
recording whether the function became eligible for inlining
by a compiler flag rather than the declaration.
Provide DID_INLINE_FUNC macro to access it.
* c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
* cp/decl.c (grokfndecl): Likewise.
* toplev.c (rest_of_compilation): Likewise.
* cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
* print-tree.c (print_node): Report it.
* params.def: Introduce new max-inline-insns-auto limit.
* params.h: Likewise.
* tree-inline.c (inlinable_function_p): Apply it to functions
with DID_INLINE_FUNC set.
* toplev.c (decode_f_option): Initialize it from -finline-limit
value.
* doc/invoke.texi: Document new parameter.
From-SVN: r63688
2003-03-02 21:18:16 +00:00
Jan Hubicka
1c4a429ab0
expmed.c (expand_divmod): Undo sign extensions for unsigned operands
...
* expmed.c (expand_divmod): Undo sign extensions for unsigned operands
* cfgcleanup.c (try_forward_edges): Don't check loop structures
when not optimizing.
(cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
when not expensive.
* toplev.c (rest_of_compilation): Duplicate loop headers only when
optimizing; Delete trivially dead insns early; fix optimize check.
* Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
dependency on cgraph.h
* c-decl.c: Include cgraph.h
(finish_function): Update call of tree_inlinable_function_p.
* c-objc-common.c: Include cgraph.h
* cgraph.h: New file.
* cgraphunit.c: New file.
* cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
(cgraph_nodes, cgraph_n_nodes): Globalize.
(cgraph_finalize_function, cgraph_finalize_compilation_unit
cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
Move into cgraphunit.c
* tree-inline.c: Include cgraph.h
* tree-inline.c: Include cgraph.h
From-SVN: r63281
2003-02-22 10:02:31 +00:00
Jan Hubicka
e72fcfe8e4
Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
...
* Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
(OBJS): Add callgraph.o
(callgraph.o): New.
* c-decl.c (expand_body_1): Break out from ...
(expand_body): This one; change calling convention
(finish_function): Move some of expand_body logic here.
(c_expand_deferred_function): Update call of expand_body
(c_expand_stmt): Use c_expand_body_1.
* c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
* c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
* c-tree.h (c_expand_body): Declare.
* callgraph.c: New file.
* flags.h (flag_unit_at_a_time): Declare.
* langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
* langhooks.h (struct lang_hooks_for_callgraph): New.
(struct lang_hooks): Add callgraph field.
* toplev.c (flag_unit_at_a_time): New.
(lang_independent_options): Add flag_unit_at_a_time.
(process_options): Disable unit-at-a-time mode for frontends not
supporting callgraph.
* tree-inline.c (typedef struct inline_data): Add "decl"
(expand_call_inline): Update callgraph.
(optimize_inline_calls): Set id.decl.
* tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
cgraph_calls_p): Declare.
* invoke.texi (-funit-at-a-time): Document
From-SVN: r62789
2003-02-12 21:48:59 +00:00
Richard Henderson
c35c7e526f
* tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
...
From-SVN: r62151
2003-01-30 10:09:15 -08:00
Andrew Haley
cf0150b995
tree-inline.c (walk_tree): Add CHAR_TYPE.
...
2003-01-29 Andrew Haley <aph@redhat.com>
* tree-inline.c (walk_tree): Add CHAR_TYPE.
From-SVN: r62068
2003-01-29 10:52:08 +00:00
Richard Henderson
84f5e1b11f
re PR rtl-optimization/4382 (__builtin_{set,long}jmp with -O3 can crash the compiler)
...
PR optimization/4382
* tree-inline.c (find_builtin_longjmp_call_1): New.
(find_builtin_longjmp_call): New.
(inlinable_function_p): Use it.
From-SVN: r61732
2003-01-24 13:16:28 -08:00
Kazu Hirata
14b493d64d
regmove.c: Fix comment typos.
...
* regmove.c: Fix comment typos.
* reload.c: Likewise.
* reload1.c: Likewise.
* resource.c: Likewise.
* rtl.def: Likewise.
* rtl.h: Likewise.
* rtlanal.c: Likewise.
* sched-deps.c: Likewise.
* sched-rgn.c: Likewise.
* sibcall.c: Likewise.
* simplify-rtx.c: Likewise.
* ssa-ccp.c: Likewise.
* ssa.c: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* system.h: Likewise.
* tlink.c: Likewise.
* toplev.c: Likewise.
* tracer.c: Likewise.
* tree-inline.c: Likewise.
* tree.c: Likewise.
* tree.h: Likewise.
* unroll.c: Likewise.
* varasm.c: Likewise.
From-SVN: r60473
2002-12-24 08:30:34 +00:00
Zack Weinberg
4977bab6ed
Merge basic-improvements-branch to trunk
...
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Jason Merrill
c246c65d76
PR c++/8461, c++/8625
...
PR c++/8461, c++/8625
* integrate.c (copy_decl_for_inlining): Handle explicit invisible
references.
* tree-inline.c (initialize_inlined_parameters): Likewise.
2002-12-03 Jason Merrill <jason@redhat.com>
PR c++/8461, c++/8625
* call.c (convert_for_arg_passing): Don't mess with error_mark_node.
(cp_convert_parm_for_inlining): Remove.
* cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
Remove.
* cp-tree.h (ADDR_IS_INVISIREF): Remove.
* except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code.
From-SVN: r59827
2002-12-04 15:13:01 -05:00
Andreas Jaeger
50aadcbcd9
tree-inline.c: Move prototpyes of find_alloca_call_1 and find_alloca_call to right place.
...
* tree-inline.c: Move prototpyes of find_alloca_call_1 and
find_alloca_call to right place.
From-SVN: r59247
2002-11-19 08:11:42 +01:00
Jan Hubicka
c986baf631
calls.c (alloca_call_p): New global function.
...
* calls.c (alloca_call_p): New global function.
* tree.h (alloca_call_p): New.
* tree-inline.c (inlinable_function_p): Do not inline when
function calls alloca.
(find_alloca_call, find_alloca_call_1): New functions.
From-SVN: r59228
2002-11-18 19:30:34 +00:00
Zack Weinberg
fa7b533b7b
tree.c (tree_vec_elt_check_failed): New function.
...
* tree.c (tree_vec_elt_check_failed): New function.
* tree.h (TREE_VEC_ELT_CHECK): New checking macro.
(TREE_VEC_ELT): Use it.
* tree-inline.c (optimize_inline_calls): Don't copy a
zero-length vector.
cp:
* search.c (dfs_push_decls): Do not try to reorder elements
3..n of method_vec if method_vec has only two elements.
Reverse order of two tests to avoid accessing unallocated
memory.
From-SVN: r59114
2002-11-14 21:58:38 +00:00
Zack Weinberg
f3763a442e
re PR c++/6994 (ICE in find_function_data)
...
PR middle-end/6994
* c-objc-common.c (inline_forbidden_p): Can not inline
functions containing structures or unions containing VLAs.
* tree-inline.c (walk_tree): For all class 't' nodes, walk
TYPE_SIZE and TYPE_SIZE_UNIT.
(copy_tree_r): Copy types if they are variably modified.
* g++.dg/ext/vla1.C, gcc.dg/vla-2.c: New tests.
From-SVN: r58535
2002-10-25 17:26:52 +00:00
Zack Weinberg
8bcefb43cc
langhooks.h (struct lang_hooks_for_tree_inlining): Add var_mod_type_p.
...
* langhooks.h (struct lang_hooks_for_tree_inlining): Add
var_mod_type_p.
* langhooks-def.h: Default for tree_inlining.var_mod_type_p is
hook_tree_bool_false.
* tree.c (variably_modified_type_p): Moved here from
cp/tree.c. Use lang_hooks.tree_inlining.var_mod_type_p for
language-specific cases. Due to this, must weaken some 'if
and only if' checks to merely 'if'.
* tree.h: Prototype variably_modified_type_p.
* tree-inline.c (walk_tree): #undef WALK_SUBTREE_TAIL at end.
cp:
* cp-lang.c (cp_var_mod_type_p): New: C++ hook for
variably_modified_type_p.
* cp-tree.h: Remove prototype of variably_modified_type_p.
* tree.c (variably_modified_type_p): Remove; now implemented
in language-independent code.
From-SVN: r58460
2002-10-23 17:13:18 +00:00
Andrew Haley
3eb429b2ce
tree-inline.c (remap_block): All local class initialization flags go in the outermost scope.
...
2002-10-14 Andrew Haley <aph@redhat.com>
* tree-inline.c (remap_block): All local class initialization
flags go in the outermost scope.
(expand_call_inline): Call java_inlining_map_static_initializers.
(expand_call_inline): Call java_inlining_merge_static_initializers.
* java/lang.c (merge_init_test_initialization): New.
(java_inlining_merge_static_initializers): New.
(inline_init_test_initialization): New.
(java_inlining_map_static_initializers): New.
* tree-inline.c (expand_call_inline): Convert retvar to expected
type.
From-SVN: r58129
2002-10-14 18:12:12 +00:00
Kazu Hirata
0e9e1e0a42
LANGUAGES: Follow spelling conventions.
...
* LANGUAGES: Follow spelling conventions.
* rtl.def: Likewise.
* sbitmap.c: Likewise.
* sched-int.h: Likewise.
* sched-rgn.c: Likewise.
* sibcall.c: Likewise.
* simplify-rtx.c: Likewise.
* ssa.c: Likewise.
* stab.def: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* target.h: Likewise.
* timevar.c: Likewise.
* toplev.c: Likewise.
* tree-dump.c: Likewise.
* tree-inline.c: Likewise.
* tree.c: Likewise.
* tree.def: Likewise.
* tree.h: Likewise.
* unroll.c: Likewise.
* varasm.c: Likewise.
* vmsdbgout.c: Likewise.
* treelang/treelang.texi: Likewise.
* treelang/treetree.c: Likewise.
From-SVN: r57587
2002-09-27 12:48:07 +00:00
Kazu Hirata
4b7e68e7d2
basic-block.h: Fix comment formatting.
...
* basic-block.h: Fix comment formatting.
* c-common.c: Likewise.
* c-common.h: Likewise.
* c-lex.c: Likewise.
* c-pretty-print.c: Likewise.
* cfglayout.c: Likewise.
* cfgloop.c: Likewise.
* defaults.h: Likewise.
* et-forest.c: Likewise.
* explow.c: Likewise.
* function.h: Likewise.
* gcov.c: Likewise.
* genattrtab.c: Likewise.
* gengtype.c: Likewise.
* ifcvt.c: Likewise.
* libgcc2.c: Likewise.
* loop.c: Likewise.
* profile.c: Likewise.
* ra-build.c: Likewise.
* real.c: Likewise.
* rtl.h: Likewise.
* tracer.c: Likewise.
* tree-inline.c: Likewise.
* varasm.c: Likewise.
From-SVN: r56952
2002-09-08 12:47:27 +00:00
Jason Merrill
d65b1d77fd
c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR.
...
* c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR.
* c-common.def: Adjust.
* c-dump.c (c_dump_tree): Adjust.
* c-semantics.c (genrtl_return_stmt): Adjust.
* c-pretty-print.c (pp_c_statement): Adjust.
* tree-inline.c (copy_body_r): Adjust.
2002-08-22 Jason Merrill <jason@redhat.com>
* pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
* semantics.c (nullify_returns_r): Likewise.
From-SVN: r56523
2002-08-22 19:22:53 -04:00
Kaveh R. Ghazi
9bc146b368
tree-inline.c (initialize_inlined_parameters): Wrap variable in the macro test controlling its use.
...
* tree-inline.c (initialize_inlined_parameters): Wrap variable in
the macro test controlling its use.
From-SVN: r56438
2002-08-19 15:26:35 +00:00
Andrew Haley
d436bff8d6
tree-inline.c: Add includes for Java inliner.
...
2002-07-30 Andrew Haley <aph@redhat.com>
* tree-inline.c: Add includes for Java inliner.
(remap_decl): Don't handle anonymous types for Java.
(remap_block): Add handling for Java trees.
(copy_scope_stmt): Conditionalize for non-Java use only.
(copy_body_r): Handle Java trees. Add handling for
LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, Java blocks.
(initialize_inlined_parameters): Handle Java trees.
(declare_return_variable): Likewise.
(expand_call_inline): Handle Java trees.
(walk_tree): Likewise.
(copy_tree_r): Don't handle SCOPE_STMTs for Java.
(add_stmt_to_compound): New function.
From-SVN: r56376
2002-08-16 10:29:45 +00:00
Gabriel Dos Reis
0d0f605c72
tree-inline.c (expand_call_inline): Don' mess with _DECL fields.
...
* tree-inline.c (expand_call_inline): Don' mess with _DECL
fields.
From-SVN: r54585
2002-06-13 15:32:40 +00:00
Geoffrey Keating
e2500fedef
Merge from pch-branch up to tag pch-commit-20020603.
...
From-SVN: r54232
2002-06-04 07:11:05 +00:00
Daniel Berlin
e2405951a6
tree-inline.c (expand_call_inline): Make the statement expression we generate have a COMPOUND_STMT.
...
2002-06-01 Daniel Berlin <dberlin@dberlin.org>
* tree-inline.c (expand_call_inline): Make the statement
expression we generate have a COMPOUND_STMT.
From-SVN: r54153
2002-06-01 21:09:52 +00:00
Kazu Hirata
d92b44865f
timevar.c: Fix formatting.
...
* timevar.c: Fix formatting.
* tlink.c: Likewise.
* toplev.c: Likewise.
* tree-dump.c: Likewise.
* tree-inline.c: Likewise.
From-SVN: r53591
2002-05-18 15:16:25 +00:00
Kazu Hirata
1eeeb6a437
cpplex.c: Fix comment formatting.
...
* cpplex.c: Fix comment formatting.
* function.c: Likewise.
* integrate.c: Likewise.
* regrename.c: Likewise.
* sibcall.c: Likewise.
* simplify-rtx.c: Likewise.
* tree-inline.c: Likewise.
From-SVN: r52972
2002-04-30 20:48:55 +00:00
Kurt Garloff
a62271540b
tree-inline.c (inlinable_function_p): Improve heuristics by using a smoother function to cut down allowable inlinable...
...
* tree-inline.c (inlinable_function_p): Improve heuristics
by using a smoother function to cut down allowable inlinable size.
* param.def: Add parameters max-inline-insns-single,
max-inline-slope, min-inline-insns that determine the exact
shape of the above function.
* param.h: Likewise.
From-SVN: r52832
2002-04-27 11:59:40 -07:00
Mark Mitchell
b2123dc0d8
c-common.h (STMT_EXPR_NO_SCOPE): New macro.
...
* c-common.h (STMT_EXPR_NO_SCOPE): New macro.
* c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
* tree.h (expand_start_stmt_expr): Update prototype.
* stmt.c (expand_start_stmt_expr): Add has_scope parameter.
* tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
on the STMT_EXPR created for the inline function.
* trans.c (tree_transform): Add has_scope argument to
expand_start_stmt_expr.
* com.c (ffecom_expr_power_integer): Add has_scope argument to
call to expand_start_stmt_expr.
* init.c (begin_init_stmts): Remove commented out code.
(finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
* semantics.c (begin_gobal_stmt_expr): Adjust call to
expand_start_stmt_expr.
From-SVN: r52395
2002-04-17 01:47:36 +00:00
Neil Booth
c88770e9df
c-decl.c (maybe_build_cleanup): Remove.
...
* c-decl.c (maybe_build_cleanup): Remove.
* expr.c (expand_expr): Use langhook.
* langhooks-def.h (lhd_return_null_tree,
LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
(LANGHOOKS_INITIALIZER): Update.
* langhooks.c (lhd_return_null_tree): New.
* langhooks.h (struct lang_hooks): New hook.
* tree-inline.c (initialize_inlined_parameters): Use langhook.
* tree.h (maybe_build_cleanup): Remove.
ada:
* misc.c (maybe_build_cleanup): Remove.
cp:
* cp-tree.h (cxx_maybe_build_cleanup): New.
* decl.c (destroy_local_var, hack_incomplete_structures): Update.
(maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
* tree.c (build_target_expr): Update.
f:
* com.c (maybe_build_cleanup): Remove.
java:
* decl.c (maybe_build_cleanup): Remove.
From-SVN: r51324
2002-03-25 19:11:13 +00:00
Neil Booth
43577e6bd7
Makefile.in (fold-const.o, [...]): Update.
...
* Makefile.in (fold-const.o, stor-layout.o, stmt.o,
sdbout.o, profile.o): Update.
* c-common.c (c_common_nodes_and_builtins): Use pushdecl
langhook.
* c-common.h (gettags): Move here from tree.h.
* c-tree.h (pushdecl, pushlevel, poplevel, set_block,
insert_block, getdecls, kept_level_p, global_bindings_p): New.
* dbxout.c (dbxout_init): Use getdecls langhook.
* expr.c (expand_expr): Use insert_block langhook.
* fold-const.c: Include langhooks.h.
(fold_range_test, fold_binary_op_with_conditional_arg,
fold): Use global_bindings_p langhook.
* integrate.c (expand_inline_function): Use insert_block langhook.
* langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
LANG_HOOKS_GETDECLS): New.
(LANG_HOOKS_INITIALIZER): Update.
* langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
langhook.
* langhooks.h (struct lang_hooks_for_decls): New.
(struct lang_hooks): Update.
* profile.c: Include langhooks.h.
(output_func_start_profiler): Use new langhooks.
* sdbout.c: Include langhooks.h.
(sdbout_init, sdbout_finish): Use getdecls langhook.
* stmt.c: Include langhooks.h.
(expand_fixup, fixup_gotos): Use new langhooks.
* stor-layout.c: Include langhooks.h.
(variable_size): Use global_bindings_p langhook.
* toplev.c (compile_file): Use getdecls langhook.
* tree-inline.c (remap_block): Use insert_block langhook.
* tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
cp:
* cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
insert_block, getdecls, global_bindings_p): New.
java:
* cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
insert_block, getdecls, kept_level_p, global_bindings_p): New.
f:
* cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
insert_block, getdecls, global_bindings_p): New.
From-SVN: r51136
2002-03-21 18:39:29 +00:00
Jakub Jelinek
f735a15348
re PR c/5656 (ICE in emit_move_insn, at expr.c:2748, regression from gcc 3.0)
...
PR c/5656
* langhooks.h (struct lang_hooks_for_tree_inlining): Add
convert_parm_for_inlining.
* c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
Define.
* langhooks-def.h: Likewise.
* objc/objc-lang.c: Likewise.
* langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
function.
* tree-inline.c (initialize_inlined_parameters):
Call convert_parm_for_inlining lang hook if needed.
* c-typeck.c (c_convert_parm_for_inlining): New function.
* c-tree.h (c_convert_parm_for_inlining): Add prototype.
* gcc.c-torture/compile/20020318-1.c: New test.
From-SVN: r51025
2002-03-19 09:47:14 +01:00
Mark Mitchell
6e4ae815bd
c-common.c (statement_code_p): Handle CLEANUP_STMT.
...
* c-common.c (statement_code_p): Handle CLEANUP_STMT.
* c-common.def (CLEANUP_STMT): New tree node.
* c-common.h (CLEANUP_DECL): New macro.
(CLEANUP_EXPR): Likewise.
* c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
* tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
* tree-inline.c (initialize_inlined_parameters): Clean up
new local variables.
* cp-tree.h (CLEANUP_DECL): Remove.
(CLEANUP_EXPR): Likewise.
* decl.c (destroy_local_var): Simplify.
(maybe_build_cleanup): Tidy.
* dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
* semantics.c (cp_expand_stmt): Likewise.
* cp/tree.c (cp_statement_code_p): Likewise.
* g++.dg/opt/dtor1.C: New test.
From-SVN: r50830
2002-03-15 20:08:39 +00:00
Aldy Hernandez
69ef87e2bc
i386.md ("mmx_uavgv8qi3"): Use const_vector.
...
2002-02-19 Aldy Hernandez <aldyh@redhat.com>
* config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
("mmx_uavgv4hi3"): Same.
("pmulhrwv4hi3"): Same.
* tree-inline.c (walk_tree): Handle vectors.
* c-common.c (constant_expression_warning): Handle vectors.
(overflow_warning): Same.
* sched-deps.c (sched_analyze_2): Handle vectors.
* rtlanal.c (rtx_unstable_p): Handle vectors.
(rtx_varies_p): Same.
(count_occurrences): Same.
(regs_set_between_p): Same.
(modified_between_p): Same.
(modified_in_p): Same.
(volatile_insn_p): Same.
(volatile_refs_p): Same.
(side_effects_p): Same.
(may_trap_p): Same.
(inequality_comparisons_p): Same.
(replace_regs): Same.
(computed_jump_p_1): Same.
* rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
argument.
(inner_mode_array): New.
(copy_rtx): Handle vectors.
(copy_most_rtx): Same.
(rtx_equal_p): Same.
(get_mode_alignment): Adjust for vectors.
* resource.c (mark_referenced_resources): Handle vectors.
(mark_set_resources): Same.
* reload1.c (eliminate_regs): Handle vectors.
(elimination_effects): Same.
(scan_paradoxical_subregs): Same.
* reload.c (subst_reg_equivs): Handle vectors.
* regrename.c (scan_rtx): Handle vectors.
* regclass.c (reg_scan_mark_refs): Handle vectors.
* recog.c (find_single_use_1): Handle vectors.
* local-alloc.c (equiv_init_varies_p): Handle vectors.
(contains_replace_regs): Same.
(memref_referenced_p): Same.
* integrate.c (copy_rtx_and_substitute): Handle vectors.
(subst_constants): Same.
* genattrtab.c (attr_copy_rtx): Handle vectors.
(encode_units_mask): Same.
(clear_struct_flag): Same.
(count_sub_rtxs): Same.
* gcse.c (want_to_gcse_p): Handle vectors.
(oprs_unchanged_p): Same.
(hash_expr_1): Same.
(oprs_not_set_p): Same.
(expr_killed_p): Same.
(compute_transp): Same.
(store_ops_ok): Same.
* function.c (purge_addressof_1): Do not allow paradoxical subregs
of vectors.
(fixup_var_refs_1): Same.
(instantiate_virtual_regs_1): Same.
* fold-const.c (operand_equal_p): Handle vectors.
(fold): Same.
(rtl_expr_nonnegative_p): Same.
* flow.c (mark_used_regs): Handle vectors.
* df.c (df_uses_record): Handle vectors.
* cselib.c (cselib_subst_to_values): Handle vectors.
(cselib_mem_conflict_p): Same.
(hash_rtx): Same.
* cse.c (canon_reg): Handle vectors.
(fold_rt): Same.
(cse_process_notes): Same.
(count_reg_usage): Same.
(canon_hash): Same.
* alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
* combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
* emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
(gen_rtx): Handle CONST_VECTOR.
(gen_const_vector_0): New.
(copy_rtx_if_shared): CONST_VECTORs can be shared.
(reset_used_flags): Same.
(copy_insn_1): Same.
(initializer_constant_valid_p): Handle VECTOR_CST.
* doc/c-tree.texi (Expression trees): Document VECTOR_CST.
* doc/rtl.texi (Constants): Document const_vector.
(CONST0_RTX): Update for vectors.
(RTL sharing): Same.
* print-tree.c (print_node): Add case for VECTOR_CST.
* tree.h (TREE_VECTOR_CST_ELTS): New.
(struct tree_vector): New.
(union tree_node): Add vector node.
(build_vector): Add prototype.
* tree.def (VECTOR_CST): New.
* tree.c (build_vector): New.
* expmed.c (make_tree): Handle CONST_VECTOR.
* rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
(CONST_VECTOR_ELT): New.
(CONST_VECTOR_NUNITS): New.
* machmode.h (GET_MODE_INNER): New.
(DEF_MACHMODE): Accept 8th arg.
* machmode.def: Add 8th argument for vector inner mode.
Add inner vector modes for vectors.
* rtl.def (VEC_CONST): Remove.
(CONST_VECTOR): New.
* expr.c (clear_storage): Allow vectors.
(is_zeros_p): Handle VECTOR_CST.
* varasm.c (output_constant_pool): Handle vectors.
(rtx_const): Add veclo and vechi fields.
(kind): Add RTX_VECTOR.
(decode_rtx_const): Add case for vector.
* config/rs6000/rs6000-protos.h: Add zero_constant.
* config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
constants. Force easy vector constants into memory.
(easy_vector_constant): New.
(emit_easy_vector_constant): New.
(rs6000_legitimize_reload_address): Do not generate bad reloads on
darwin.
* config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
instruction does.
("altivec_lvxl"): Same.
(altivec_lvebx): Same.
(altivec_lvehx): Same.
(altivec_lvewx): Same.
("*movv4si_const0"): New.
("*movv4sf_const0"): New.
("*movv8hi_const0"): New.
("*movv16qi_const0"): New.
From-SVN: r49853
2002-02-19 02:53:41 +00:00
Alexandre Oliva
1574ef130f
c-common.h (genrtl_expr_stmt_value): Declare.
...
* c-common.h (genrtl_expr_stmt_value): Declare.
* c-semantics.c (genrtl_goto_stmt): Redirect to...
(genrtl_goto_stmt_value): ... this new function. Pass new
argument down to expand_expr_stmt_value, taking
TREE_ADDRESSABLE into account.
* c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
STMT_EXPR as addressable, i.e., one whose result we want.
* expr.c (expand_expr): Don't save expression statement value
of labeled_blocks or loop_exprs.
* stmt.c (expand_expr_stmt): Redirect to...
(expand_expr_stmt_value): ... this new function. Use new
argument to tell whether to save expression value.
(expand_end_stmt_expr): Reset last_expr_type and
last_expr_value if we don't have either.
* tree-inline.c (declare_return_variable): Mark its use
statement as addressable.
* tree.h: Document new use of TREE_ADDRESSABLE.
(expand_expr_stmt_value): Declare.
From-SVN: r48456
2002-01-02 02:31:58 +00:00
Alexandre Oliva
a1a0fd4e18
tree.c (get_callee_fndecl): Move DECL_ABSTRACT_ORIGIN-following...
...
* tree.c (get_callee_fndecl): Move DECL_ABSTRACT_ORIGIN-following...
* tree-inline.c (expand_call_inline): ... here.
From-SVN: r47725
2001-12-06 17:58:23 +00:00
Jason Merrill
742a37d529
langhooks.h (struct lang_hooks_for_tree_inlining): Add start_inlining, end_inlining.
...
* langhooks.h (struct lang_hooks_for_tree_inlining): Add
start_inlining, end_inlining.
* tree-inline.c (expand_call_inline): Call them.
* langhooks-def.h (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
(LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
(LANG_HOOKS_TREE_INLINING_INITIALIZER): Add them.
* langhooks.c (lhd_tree_inlining_start_inlining): New fn.
(lhd_tree_inlining_end_inlining): New fn.
* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
(LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
* tree.c (cp_start_inlining, cp_end_inlining): New fns.
* pt.c (push_tinst_level): No longer static.
* cp-tree.h: Declare them.
* init.c (resolve_offset_ref): Don't check access for the base
conversion to access a FIELD_DECL.
* cp-tree.h (TYPE_REFFN_P): New macro.
* decl.c (bad_specifiers): Check it, too.
* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
on the __*_type_info type if we haven't seen a definition.
From-SVN: r47703
2001-12-05 18:48:19 -05:00
Alexandre Oliva
23700f6508
c-decl.c (duplicate_decls): Revert rth's patch.
...
* c-decl.c (duplicate_decls): Revert rth's patch. If newdecl
is in a different binding level, get its abstract origin to be
olddecl.
* tree-inline.c (expand_call_inline): Move DECL_INITIAL sanity
check earlier.
* tree.c (get_callee_fndecl): Follow DECL_ABSTRACT_ORIGIN if
DECL_INITIAL is NULL.
From-SVN: r47610
2001-12-04 10:34:40 +00:00
Jan Hubicka
db4a825457
cse.c (true_dependence_in_rtx): New function.
...
* cse.c (true_dependence_in_rtx): New function.
(invalidate): Use it.
* c-common.h (GOTO_FAKE_P): New macro.
* tree-inline.c (GOTO_FAKE_P): Set.
* c-tree.texi (GOTO_FAKE_P): Document.
* varasm.c (assemble_variable): Set reloc to 3 for error_mark
containing pointers.
(output_addressed_constants): Check for local/external relocations.
* elfos.h (SELECT_SECTION): Classify data section.
* tm.texi (SELECT_SECTION): Update documentation.
* cfganal.c (flow_dfs_compute_reverse_add_bb): set visited bit.
(flow_dfs_compute_reverse_execute): Add only unvisited blocks.
From-SVN: r47405
2001-11-28 09:47:25 +00:00
Neil Booth
d23c55c28c
Clean up langhooks
...
* alias.c:: Include langhooks.h.
* emit-rtl.c: Similarly.
* toplev.c: Similarly.
* tree-inline.c: Similarly.
* langhooks-def.h: New, the old langhooks.h. Give the default
hooks a common prefix.
* langhooks.h: Contents extracted from toplev.h.
* toplev.h: Move langhook stuff to langhooks.h.
* langhooks.c: Give default hooks a common prefix.
* c-lang.c: Include langhooks-def.h.
* ada/misc.c: Similarly.
* cp/cp-lang.c: Similarly.
* f/com.c: Similarly.
* java/lang.c: Similarly.
* objc/objc-act.c: Similarly.
* Makefile.in: Update.
* ada/Makefile.in: Similarly.
* cp/Make-lang.in: Similarly.
* f/Make-lang.in: Similarly.
* java/Make-lang.in: Similarly.
* objc/Make-lang.in: Similarly.
From-SVN: r46813
2001-11-06 21:12:14 +00:00
Alexandre Oliva
6c624f7f88
tree-inline.c (WALK_SUBTREE_TAIL): New macro.
...
* tree-inline.c (WALK_SUBTREE_TAIL): New macro.
(walk_tree): Use it for tail calls where appropriate.
From-SVN: r46556
2001-10-26 18:27:13 +00:00
Alexandre Oliva
350ebd5493
tree-inline.c (remap_decl): Don't copy size and size_unit here.
...
* tree-inline.c (remap_decl): Don't copy size and size_unit here.
(remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
From-SVN: r46536
2001-10-26 08:05:08 +00:00
Alexandre Oliva
e95301f52e
tree-inline.c (inlinable_function_p): Leave it up to the front-end to turn -finline-functions into DECL_INLINE set...
...
* tree-inline.c (inlinable_function_p): Leave it up to the
front-end to turn -finline-functions into DECL_INLINE set for all
functions.
From-SVN: r46292
2001-10-16 21:17:59 +00:00
Kazu Hirata
2ba84f36ea
c-common.h: Fix comment formatting.
...
* c-common.h: Fix comment formatting.
* c-dump.c: Likewise.
* cfg.c: Likewise.
* diagnostic.h: Likewise.
* except.c: Likewise.
* gcc.h: Likewise.
* gcov-io.h: Likewise.
* genattrtab.c: Likewise.
* output.h: Likewise.
* predict.h: Likewise.
* reload1.c: Likewise.
* reload.h: Likewise.
* resource.h: Likewise.
* scan.h: Likewise.
* system.h: Likewise.
* tree.h: Likewise.
* tree-inline.c: Likewise.
* tsystem.h: Likewise.
* varasm.c: Likewise.
* xcoffout.h: Likewise.
From-SVN: r46122
2001-10-09 14:03:13 +00:00
Alexandre Oliva
69dcadffba
langhooks.h: New file.
...
* langhooks.h: New file.
* Makefile.in (OBJS): Added langhooks.o.
(c-lang.o): Depend on langhooks.h.
(c-common.o): Don't depend on tree-inline.h.
(tree-inline.o): Depend on toplev.h.
(langhooks.o): New rule.
* c-common.c: Don't include tree-inline.h.
(c_mark_lang_decl): Mark argument c as unused.
(c_common_lang_init): Don't initialize hooks here.
* c-lang.c: Include langhooks.h, then override some macros.
(lang_hooks): Initialize with macros in langhooks.h.
(c_init): Don't initialize hooks here.
* toplev.c (struct lang_hooks_for_tree_inlining): New struct.
(struct lang_hooks): Add tree_inlining. Refer to langhooks.h.
* tree-inline.c: Include toplev.h. Don't define hook variables.
* tree-inline.h: Don't define hook types nor declare hook
variables. Move macros to...
* langhooks.c: ... new file, as functions. Adjust all callers.
From-SVN: r46096
2001-10-08 20:54:07 +00:00
Alexandre Oliva
4838c5ee55
Makefile.in (c-decl.o): Depend on tree-inline.h.
...
* Makefile.in (c-decl.o): Depend on tree-inline.h.
(c-lang.o): Likewise, as well as insn-config.h and integrate.h.
* c-decl.c: Include tree-inline.h.
(c_expand_body): Call optimize_inline_calls. Determine whether
a function is inlinable upfront, and only clear
DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
* c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
(c_disregard_inline_limits): New function.
(inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
(c_post_options): Enable tree inlining if inlining is enabled.
Don't inline trees when instrumenting functions.
(c_init): Initialize lang_disregard_inline_limits and
lang_cannot_inline_tree_fn.
* tree-inline.c (initialize_inlined_parameters): Handle calls
with fewer arguments than declared parameters, and fewer
parameters than passed arguments. Don't assume value is a
DECL.
(declare_return_variable): Convert return value back to the
original type, if it was promoted.
(tree_inlinable_function_p): New function.
(inlinable_function_p): Don't look at DECL_INLINE if we're
inlining all functions. Make it work with a NULL id.
Re-check DECL_UNINLINABLE after language-specific checks.
(varargs_function_p): Move back to cp/tree.c.
* tree-inline.h (tree_inlinable_function_p): Declare it.
(varargs_function_p): Removed declaration.
* integrate.h (function_attribute_inlinable_p): Declare it.
* integrate.c (function_attribute_inlinable_p): Export it.
(save_for_inline): Don't bother to prepare argvec when not
inlining.
* cse.c (check_for_label_ref): Don't check deleted labels.
From-SVN: r46025
2001-10-05 04:20:27 +00:00
Alexandre Oliva
d4e4baa995
Makefile.in (tree-inline.o): Depend on newly-included headers.
...
* Makefile.in (tree-inline.o): Depend on newly-included headers.
* tree-inline.c: Include headers needed for the functions moved in.
(struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
(remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
(copy_body, initialize_inlined_parameters): Likewise.
(declare_return_variable, inlinable_function_p): Likewise.
(expand_call_inline, expand_calls_inline): Likewise.
(optimize_inline_calls, clone_body): Likewise.
(walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
(copy_tree_r, remap_save_expr): Likewise.
From-SVN: r46023
2001-10-05 03:48:18 +00:00
Alexandre Oliva
588d3ade13
Makefile.in (OBJS): Added tree-inline.o.
...
* Makefile.in (OBJS): Added tree-inline.o.
(c-common.o): Depend on tree-inline.h.
(tree-inline.o): New target.
* c-common.c: Include tree-inline.h.
(c_mark_lang_decl): Don't mark saved_tree.
(c_common_lang_init): Set lang_anon_aggr_type_p.
* c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
(struct c_lang_decl): Moved saved_tree to tree_decl.
* ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
* integrate.h (function_attribute_inlinable_p): Declare it.
* integrate.c (function_attribute_inlinable_p): Export it.
* tree-inline.c: New file. Define variables declared in...
* tree-inline.h: New file. Declare functions to be moved to
tree-inline.c. Define macros and declare types and hooks for
language-specific tree inlining.
(flag_inline_trees): Moved definition from cp/decl2.c.
* tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
(struct tree_decl): Moved saved_tree from c_lang_decl and
inlined_fns from C++'s lang_decl.
From-SVN: r46021
2001-10-05 02:49:16 +00:00