Jeffrey A Law
6acdd0fd75
function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL if it has a nonzero DECL_INITIAL.
...
* function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
if it has a nonzero DECL_INITIAL.
From-SVN: r23164
1998-10-18 10:34:41 -06:00
Kaveh R. Ghazi
79c9824ecb
Warning fixes:
...
* Makefile.in (flow.o): Depend on recog.h.
* cpplib.h (directive_table): Add missing initializiers.
(finclude): Change type of variable `bsize' to size_t.
* cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
* dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
* fix-header.c (lookup_std_proto): Cast the result of `strlen' to
`int' when comparing against one.
(cpp_file_line_for_message): Mark parameter `pfile' with
ATTRIBUTE_UNUSED.
(cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
* flow.c: Include recog.h.
(sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
* function.c (thread_prologue_and_epilogue_insns): Mark parameter
`f' with ATTRIBUTE_UNUSED.
(reposition_prologue_and_epilogue_notes): Likewise.
* genopinit.c (gen_insn): Cast argument of ctype functions to
`unsigned char'.
* haifa-sched.c: Include recog.h.
(blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
comparing against one.
* libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
* mips-tfile.c (parse_end): Cast the argument of ctype function to
`unsigned char'.
(parse_ent): Likewise.
(parse_input): Likewise.
* optabs.c (init_libfuncs): Likewise.
* protoize.c (find_rightmost_formals_list): Likewise.
* recog.h (const_double_operand): Fix typo in prototype.
* tlink.c (scan_linker_output): Cast the argument of ctype
function to `unsigned char'.
* toplev.c (check_lang_option): Cast the result of `strlen' to
`int' when comparing against one.
From-SVN: r23155
1998-10-17 20:26:29 +00:00
Andreas Schwab
2fdc44405f
function.c (purge_addressof_1): Force the first argument of a CALL insn to memory.
...
�
* function.c (purge_addressof_1): Force the first argument of a
CALL insn to memory.
From-SVN: r23071
1998-10-13 17:58:34 -06:00
Richard Henderson
470032d72e
function.c (purge_addressof_1): Fix typo in inequality: do bitfield optimization for equal mode sizes.
...
* function.c (purge_addressof_1): Fix typo in inequality: do
bitfield optimization for equal mode sizes.
* expmed.c (store_bit_field): Don't take subregs of subregs in
the movstrict case. Tidy a potential problem in the multi-word case.
(extract_bit_field): Likewise.
From-SVN: r23066
1998-10-13 16:06:47 -07:00
John Wehle
fdb8a883a4
flow.c: Update comment.
...
* flow.c: Update comment.
(notice_stack_pointer_modification): New static function.
(record_volatile_insns): Use it.
(mark_regs_live_at_end): Mark the stack pointer as alive
at the end of the function if current_function_sp_is_unchanging
is set.
(life_analysis_1): Set current_function_sp_is_unchanging.
* function.c: Define it.
(init_function_start): Initialize it.
* output.h: Declare it.
* reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
the stack pointer as alive at the end of the function if
current_function_sp_is_unchanging is set.
* i386.c (ix86_epilogue): Optimize the restoring
of the stack pointer.
From-SVN: r23009
1998-10-12 04:06:49 -06:00
Ken Raeburn
7d384cc0b3
Fine-grained control of -fcheck-memory-usage with new no_check_memory_usage attribute.
...
Fine-grained control of -fcheck-memory-usage with new no_check_memory_usage
attribute. Misc minor bugfixes and tests for it too.
From-SVN: r22983
1998-10-11 02:21:54 +00:00
Richard Henderson
d006aa54ba
expmed.c (store_bit_field): Pun non-integral str_rtx modes.
...
* expmed.c (store_bit_field): Pun non-integral str_rtx modes.
Take extra care for op0 now possibly being a subreg.
(extract_bit_field): Likewise.
* function.c (purge_addressof_1): Revert Oct 4 change. Drop
the reg to memory if there is no equal sized integral mode.
* stor-layout.c (int_mode_for_mode): New function.
* machmode.h: Prototype it.
From-SVN: r22962
1998-10-09 08:50:25 -07:00
David S. Miller
ca2636edcd
function.c (purge_addressof_1): If trying to take a sub-word integral piece of a floating point mode...
...
* function.c (purge_addressof_1): If trying to take a sub-word
integral piece of a floating point mode, put it on the stack.
From-SVN: r22804
1998-10-03 18:29:21 -07:00
David S. Miller
47401c4d4b
function.c (purge_addressof_1): Do not perform endianness corrections on bitpos, who we call will do it for us.
...
* function.c (purge_addressof_1): Do not perform endianness
corrections on bitpos, who we call will do it for us.
From-SVN: r22766
1998-10-02 13:17:50 -07:00
Richard Henderson
b8c08e043a
Typo in last commit.
...
From-SVN: r22687
1998-09-30 11:04:51 -07:00
Richard Henderson
f7b6d10479
function.c (purge_addressof_1): Use bitfield manipulation routines to handle mem mode < reg mode.
...
* function.c (purge_addressof_1): Use bitfield manipulation
routines to handle mem mode < reg mode.
From-SVN: r22686
1998-09-30 11:03:48 -07:00
Mark Mitchell
95ca22f405
function.c (gen_mem_addressof): If the address REG is REG_USERVAR_P make the new REG be so also.
...
* function.c (gen_mem_addressof): If the address REG is
REG_USERVAR_P make the new REG be so also.
* loop.c (scan_loop): Apply DeMorgan's laws and add documentation
in an attempt to clarify slightly.
From-SVN: r22667
1998-09-30 10:10:02 +00:00
Richard Henderson
c93b03c2d8
reload1.c (emit_reload_insns): Accept a new arg for the bb.
...
* reload1.c (emit_reload_insns): Accept a new arg for the bb. Use
it to update bb boundaries. Update caller.
* function.c (reposition_prologue_and_epilogue_notes): Update
bb boundaries wrt the moved note.
From-SVN: r22507
1998-09-20 16:29:09 -07:00
Jeffrey A Law
0d8e55d8cd
combine.c (make_extraction): If no mode is specified for an operand of insv...
...
* combine.c (make_extraction): If no mode is specified for
an operand of insv, extv, or extzv, default it to word_mode.
(simplify_comparison): Similarly.
* expmed.c (store_bit_field): Similarly.
(extract_bit_field): Similarly.
* function.c (fixup_var_regs_1): Similarly.
* recog.c (validate_replace_rtx_1): Similarly.
* mips.md (extv, extzv, insv expanders): Default modes for most
operands. Handle TARGET_64BIT.
(movdi_uld, movdi_usd): New patterns.
From-SVN: r22439
1998-09-15 16:47:10 -06:00
Richard Henderson
710384268d
tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.
...
* tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. Kill.
(BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
(BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
(BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
* c-decl.c (init_decl_processing): Update accordingly.
* expr.c (expand_builtin): Likewise.
* cp/decl.c (init_decl_processing): Likewise.
* rtl.h (global_rtl): Add cfa entry.
(virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
(LAST_VIRTUAL_REGISTER): Update.
* emit-rtl.c (global_rtl): Add cfa entry.
(init_emit): Initialize it.
* function.c (cfa_offset): New.
(instantiate_virtual_regs): Initialize it.
(instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
(expand_function_end): Call expand_eh_return.
* tm.texi (ARG_POINTER_CFA_OFFSET): New.
* except.c (current_function_eh_stub_label): Kill.
(current_function_eh_old_stub_label): Likwise; update all references.
(expand_builtin_set_return_addr_reg): Kill.
(expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
(expand_builtin_set_eh_regs): Kill.
(eh_regs): Produce a third reg for the actual handler address.
(eh_return_context, eh_return_stack_adjust): New.
(eh_return_handler, eh_return_stub_label): New.
(init_eh_for_function): Initialize them.
(expand_builtin_eh_return, expand_eh_return): New.
* except.h: Update prototypes.
* flow.c (find_basic_blocks_1): Update references to the stub label.
* function.h (struct function): Kill stub label elements.
* libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
register number is one that would be in the previous window.
Provide a dummy definition for non-windowed targets.
(get_reg_addr): New function.
(get_reg, put_reg, copy_reg): Use it.
(__throw): Rely on in_reg_window, not INCOMING_REGNO. Kill stub
generating code and use __builtin_eh_return. Use __builtin_dwarf_cfa.
* alpha.c (alpha_eh_epilogue_sp_ofs): New.
(alpha_init_expanders): Initialize it.
(alpha_expand_epilogue): Use it.
* alpha.h: Declare it.
* alpha.md (eh_epilogue): New.
* m68h.h (ARG_POINTER_CFA_OFFSET): New.
* sparc.h (ARG_POINTER_CFA_OFFSET): New.
From-SVN: r22436
1998-09-15 12:19:12 -07:00
Ken Raeburn
07417085a1
Function entry/exit profiling instrumentation:
...
* expr.h (profile_function_entry_libfunc, profile_function_exit_libfunc):
Declare new variables.
* optabs.c: Define them here.
(init_optabs): Initialize them.
* tree.h (struct tree_decl): New flag no_instrument_function_entry_exit.
(DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
* c-decl.c (duplicate_decls): Merge it.
* c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
(init_attributes): Use it for "no_instrument_function".
(decl_attributes): Handle it, for functions that have not yet been compiled.
Set decl flag.
* flags.h (flag_instrument_function_entry_exit): Declare new variable.
* toplev.c (flag_instrument_function_entry_exit): Define it here.
(f_options): New option "instrument-functions".
* function.h (struct function): New field instrument_entry_exit.
* function.c (current_function_instrument_entry_exit): New variable.
(push_function_context_to, pop_function_context_from): Save and restore.
(expand_function_start): Set current_ variable, maybe emit return label and
entry profile call.
(expand_function_end): Maybe emit exit profile call.
Testsuite:
* gcc.c-torture/special/eeprof-1.c: New test, for -finstrument-functions.
* gcc.c-torture/special/special.exp: Run it.
From-SVN: r21495
1998-07-30 10:38:22 +00:00
Jim Wilson
07362cb321
Fix some sparc complex testsuite failures.
...
* function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
From-SVN: r21251
1998-07-17 04:22:40 -07:00
Richard Henderson
aac5cc1620
expr.c (emit_group_load, [...]): Rewrite considering the size and alignment of the structure being manipulated.
...
* expr.c (emit_group_load, emit_group_store): Rewrite considering
the size and alignment of the structure being manipulated.
* expr.c, calls.c, function.c: Update all callers.
* expr.h: Update prototypes.
* cse.c (invalidate): Cope with parallels.
From-SVN: r20867
1998-06-30 22:10:51 -07:00
Jeff Law
9ec36da574
* Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 for
...
details.
From-SVN: r20808
1998-06-29 15:40:49 -06:00
Mark Mitchell
41472af877
invoke.texi (-fstrict-aliasing): Document.
...
* invoke.texi (-fstrict-aliasing): Document.
* rtl.texi (MEM_ALIAS_SET): Document.
* flags.h (flag_strict_aliasing): Declare.
* toplev.c (flag_strict_aliasing): Define.
(f_options): Add -strict-aliasing.
(main): Set flag_strict_aliasing if -O2 or higher.
* tree.h (tree_type): Add alias_set field.
(TYPE_ALIAS_SET): New macro.
(TYPE_ALIAS_SET_KNOWN_P): Likewise.
(get_alias_set): Declare.
* tree.c (lang_get_alias_set): Define.
(make_node): Initialize TYPE_ALIAS_SET.
(get_alias_set): New function.
* print-tree.c (print_node): Dump the alias set for a type.
* c-tree.h (c_get_alias_set): Declare.
* c-common.c (c_get_alias_set): New function.
* c-decl.c (init_decl_processing): Set lang_get_alias_set.
* expr.c (protect_from_queue): Propogage alias sets.
(expand_assignment): Calculate alias set for new MEMs.
(expand_expr): Likewise.
* function.c (put_var_into_stack): Likewise.
(put_reg_into_stack): Likewise.
(gen_mem_addressof): Likewise.
(assign_parms): Likewise.
* stmt.c (expand_decl): Likewise.
* varasm.c (make_decl_rtl): Eliminate redundant clearing of
DECL_RTL. Calculate alias set for new MEMs.
* rtl.def (REG): Add dummy operand.
(MEM): Add extra operand to store the MEM_ALIAS_SET.
* rtl.h (MEM_ALIAS_SET): New macro.
(gen_rtx_MEM): Declare.
* emit-rtl.c (gen_rtx_MEM): New function.
* gengenrtl.c (sepcial_rtx): Make MEMs special.
* alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro.
(DIFFERENT_ALIAS_SETS_P): Likewise.
(canon_rtx): Propogate the alias set to the new MEM.
(true_dependence): Check the alias sets.
(anti_dependence): Likewise.
(output_dependence): Likewise.
* explow.c (stabilize): Progoate alias sets.
* integrate.c (copy_rtx_and_substitute): Likewise.
* final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P
in an unpredictable state. Propogate alias sets.
* reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which
we have no alias information.
From-SVN: r20719
1998-06-25 15:14:41 +00:00
Jason Merrill
aeb302bbec
function.c: Define current_function_cannot_inline.
...
* function.c: Define current_function_cannot_inline.
(push_function_context_to): Save it.
(pop_function_context_from): Restore it.
* function.h (struct function): Provide it a home.
* output.h: Declare it.
* integrate.c (function_cannot_inline_p): Check it.
* decl.c (cp_finish_decl): Disable inlining of extern inlines
with static variables.
From-SVN: r20332
1998-06-08 06:52:37 -04:00
Andreas Schwab
7a87758dfb
m68k.h: Declare more functions used in macros.
...
* m68k.h: Declare more functions used in macros.
(REG_CLASS_CONTENTS): Completely embrace initializer.
* m68k.md (adddi3, subdi3): Add abort call to avoid warning
about returning no value.
* cse.c (find_best_addr): Declare p and found_better only if
needed.
* dbxout.c (dbxout_continue): Define only if DBX_CONTIN_LENGTH > 0.
* dwarfout.c (string_length_attribute): #if 0 away.
* function.c (expand_function_end): Define varible blktramp only
if needed.
* jump.c (find_insert_position): Define only if !HAVE_cc0.
* loop.c (combine_givs_p): Define variable tem only if needed.
* real.c: Comment out unused functions eabs, eround,
e{24,53,64,113}toasc and eiinfin.
From-SVN: r19998
1998-05-23 17:14:57 -06:00
Per Bothner
b274104c47
function.c (init_function_start): Don't call emit_line_note if lineno is 0.
...
8
* function.c (init_function_start): Don't call emit_line_note if
lineno is 0. (Can happen when compiling Java .class files.)
From-SVN: r19930
1998-05-21 05:23:59 -07:00
Kaveh R. Ghazi
487a6e06ce
Warning Fixes:
...
* Makefile.in (print-rtl.o): Depend on bitmap.h.
(dbxout.o): Depend on toplev.h.
($(SCHED_PREFIX)sched.o): Likewise.
($(out_object_file)): Likewise for system.h and toplev.h.
(cppmain.o): Depend on gansidecl.h.
(cpplib.o): Likewise.
(cpperror.o): Likewise.
(cppexp.o): Likewise.
(cpphash.o): Likewise.
(cppalloc.o): Likewise.
(fix-header.o): Depend on cpplib.h and cpphash.h.
(scan-decls.o): Depend on gansidecl.h.
* basic-block.h (free_regset_vector): Add prototype.
* cccp.c (check_precompiled): Mark parameter `fname' with
ATTRIBUTE_UNUSED.
(do_assert): Likewise for `op' and `keyword'.
(do_unassert): Likewise.
(do_line): Likewise for `keyword'.
(do_error): Likewise for `op' and `keyword'.
(do_warning): Likewise.
(do_ident): Likewise for `keyword'.
(do_pragma): Likewise for `limit', `op' and `keyword'.
(do_sccs): Likewise.
(do_if): Likewise for `keyword'.
(do_elif): Likewise.
(do_else): Likewise.
(do_endif): Likewise.
* collect2.c (getenv): Remove redundant prototype.
(collect_exit, collect_execute, dump_file): Likewise.
(dump_list): Wrap prototype and definition in COLLECT_EXPORT_LIST.
(dump_prefix_list): Hide prototype and definition.
* sparc.c: Include toplev.h.
(intreg_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED.
(symbolic_memory_operand): Likewise.
(sp64_medium_pic_operand): Likewise.
(data_segment_operand): Likewise.
(text_segment_operand): Likewise.
(splittable_symbolic_memory_operand): Likewise.
(splittable_immediate_memory_operand): Likewise.
(eq_or_neq): Likewise.
(normal_comp_operator): Likewise.
(noov_compare_op): Likewise.
(v9_regcmp_op): Likewise.
(v8plus_regcmp_op): Likewise.
(extend_op): Likewise.
(cc_arithop): Likewise.
(cc_arithopn): Likewise.
(small_int): Likewise.
(uns_small_int): Likewise.
(clobbered_register): Likewise.
(legitimize_pic_address): Likewise.
(delay_operand): Likewise.
(sparc_builtin_saveregs): Remove unused variable `stdarg'.
* sparc.h (order_regs_for_local_alloc, eligible_for_return_delay,
sparc_issue_rate, v8plus_regcmp_p): Add prototypes.
* sparc.md (cmpdi_v8plus): Add abort for default case in switch.
* cppalloc.c: Include gansidecl.h.
* cpperror.c: Include stdarg.h/varargs.h and gansidecl.h.
(cpp_file_line_for_message): Mark parameter `pfile' with
ATTRIBUTE_UNUSED.
(v_cpp_message): New function.
(cpp_message): Use it. Also convert to variable arguments.
(cpp_fatal): Likewise.
(cpp_pfatal_with_name): Constify parameter `name'.
* cppexp.c: Move gansidecl.h before cpplib.h.
* cpphash.c: Likewise.
* cpphash.h (hashf, delete_macro): Add prototypes.
* cpplib.c: Include stdarg.h/varargs.h and move gansidecl.h before
cpplib.h. Don't include errno.h.
(update_path): Add arguments to prototype.
(cpp_fatal, cpp_file_line_for_message, cpp_message, delete_macro,
cpp_print_containing_files): Remove redundant prototypes.
(cpp_hash_cleanup, add_import, append_include_chain,
make_assertion, path_include, initialize_builtins,
initialize_char_syntax, finclude, validate_else, comp_def_part,
lookup_import, redundant_include_p, is_system_include,
read_name_map, read_filename_string, open_include_file,
check_macro_name, compare_defs, compare_token_lists,
eval_if_expression, change_newlines): Add prototype arguments.
(hashf): Remove redundant prototype.
(read_token_list, free_token_list, safe_read, xcalloc, savestring,
conditional_skip, skip_if_group): Add prototype arguments.
(fdopen): Remove redundant prototype.
(do_define, do_line, do_include, do_undef, do_error, do_pragma,
do_ident, do_if, do_xifdef, do_else, do_elif, do_endif, do_sccs,
do_once, do_assert, do_unassert, do_warning): Add prototype arguments.
(struct directive): Add prototype arguments to function pointer
member `func'.
(handle_directive): Add missing arguments to call to `do_line'.
(do_include): Mark parameters `unused1' and `unused2' with
ATTRIBUTE_UNUSED.
(do_line): Likewise for `keyword' and new parameters `unused1' and
`unused2'.
(do_error): Likewise for `keyword'.
(do_warning): Likewise. Also add missing argument `pfile' in call
to cpp_pedwarn.
(do_once): Mark parameter `keyword', `unused1' and `unused2' with
ATTRIBUTE_UNUSED.
(do_ident): Likewise for `keyword', `buf' and `limit'.
(do_pragma): Likewise. Also add missing arguments in call to do_once.
(do_sccs): Mark parameter `keyword', `buf' and `limit' with
ATTRIBUTE_UNUSED.
(do_if): Likewise for `keyword'.
(do_elif): Likewise.
(eval_if_expression): Likewise for `buf' and `length'.
(do_xifdef): Likewise for `unused1' and `unused2'.
(do_else): Likewise for `keyword', `buf' and `limit'.
(do_endif): Likewise.
(parse_name): Add missing argument `pfile' in call to cpp_pedwarn.
(cpp_handle_options): Remove superfluous NULL argument in call to
cpp_fatal.
(cpp_handle_options): Likewise.
(do_assert): Mark parameter `keyword', `buf' and `limit' with
ATTRIBUTE_UNUSED.
(do_unassert): Likewise.
(cpp_print_file_and_line): Add missing argument `pfile' in call to
cpp_file_line_for_message.
(v_cpp_error): New function.
(cpp_error): Use it. Also accept variable arguments.
(v_cpp_warning): New function.
(cpp_warning): Use it. Also accept variable arguments.
(cpp_pedwarn): Accept variable arguments.
(v_cpp_error_with_line): New function
(cpp_error_with_line): Use it. Accept variable arguments.
(v_cpp_warning_with_line): New function.
(cpp_warning_with_line): Use it. Accept variable arguments. Hide
definition.
(cpp_pedwarn_with_line): Accept variable arguments.
(cpp_pedwarn_with_file_and_line): Likewise.
(cpp_error_from_errno): Constify parameter `name'. Add missing
argument `pfile' in call to cpp_file_line_for_message.
(cpp_perror_with_name): Constify parameter `name'.
* cpplib.h: Define PARAMS() in terms of PROTO().
(fatal): Remove redundant prototype.
(cpp_error, cpp_warning, cpp_pedwarn, cpp_error_with_line,
cpp_pedwarn_with_line, cpp_pedwarn_with_file_and_line,
cpp_error_from_errno, cpp_perror_with_name, cpp_pfatal_with_name,
cpp_fatal, cpp_message, cpp_pfatal_with_name,
cpp_file_line_for_message, cpp_print_containing_files): Add
arguments to prototypes.
(scan_decls, cpp_finish): Add prototypes.
* cppmain.c: Include gansidecl.h.
(main): Remove unused variable `i'.
* dbxout.c: Include toplev.h.
* demangle.h (do_tlink, collect_execute, collect_exit,
collect_wait, dump_file, file_exists): Add prototype.
* dwarf2out.c (dwarf_type_encoding_name, decl_start_label): Hide
prototype and definition.
(gen_unspecified_parameters_die): Don't assign results of call to
function new_die() to unused variable `parm_die'.
(dwarf2out_line): Mark parameter `filename' with ATTRIBUTE_UNUSED.
(dwarf2out_define): Likewise for `lineno' and `buffer'.
* dwarfout.c (output_unsigned_leb128, output_signed_leb128): Hide
prototype and definition.
(output_die): Add prototype arguments to function pointer arg.
(output_unspecified_parameters_die): Mark parameter `arg' with
ATTRIBUTE_UNUSED.
* except.c (output_exception_table_entry): Remove unused variable
`eh_entry'.
* except.h (expand_fixup_region_start, expand_fixup_region_end):
Add prototypes.
* expr.c (do_jump_by_parts_equality_rtx): Remove prototype.
* expr.h (do_jump_by_parts_equality_rtx): Add prototype.
* fix-header.c: Include stdarg.h/varargs.h, move gansidecl.h
before cpplib.h, include cpphash.h, remove redundant prototype of
cpp_fatal, don't define `const', add a prototype for `fatal'.
(cpp_file_line_for_message): Add missing arguments `pfile'.
(v_cpp_message): New function.
(cpp_message): Use it.
(v_fatal): New function.
(fatal, cpp_fatal): Use it.
(cpp_pfatal_with_name): Constify parameter `name'.
* flow.c (free_regset_vector): Remove redundant prototype.
* function.c (round_down): Wrap prototype and definition with
macro ARGS_GROW_DOWNWARD.
(record_insns): Wrap prototype and definition with
defined (HAVE_prologue) || defined (HAVE_epilogue).
* gansidecl.h (ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5): New macros.
* gen-protos.c: Include gansidecl.h.
(hashf): Don't make it static, constify parameter `name'.
* genattrtab.c (check_attr_test): Change XEXP() to XSTR() to match
specifier %s in calls to function `fatal'.
* haifa-sched.c: Include toplev.h.
(find_rgns): Remove unused variable `j'.
* integrate.c (note_modified_parmregs): Mark parameter `x' with
ATTRIBUTE_UNUSED.
(mark_stores): Likewise.
* jump.c (mark_modified_reg): Likewise.
* output.h (insn_current_reference_address): Add prototype.
(eh_frame_section): Likewise.
* print-rtl.c: Include bitmap.h.
* reload1.c (reload): Wrap variables `note' and `next' in macro
PRESERVE_DEATH_INFO_REGNO_P.
(forget_old_reloads_1): Mark parameter `ignored' with
ATTRIBUTE_UNUSED.
(choose_reload_regs): Remove unused variable `in'.
(reload_cse_invalidate_mem): Mark parameter `ignore' with
ATTRIBUTE_UNUSED.
(reload_cse_check_clobber): Likewise.
* rtl.h (expand_null_return, reg_classes_intersect_p): Add prototype.
(mark_elimination): Fix typo in prototype.
* scan-decls.c: Include gansidecl.h.
* tree.h (using_eh_for_cleanups, supports_one_only): Add prototype.
From-SVN: r19867
1998-05-19 08:42:48 +00:00
Jeffrey A Law
c7fdfd49ac
function.c (identify_blocks): Fix thinko when setting the block number for NOTE_INSN_BLOCK_END.
...
* function.c (identify_blocks): Fix thinko when setting the
block number for NOTE_INSN_BLOCK_END.
From-SVN: r19857
1998-05-18 15:39:43 -06:00
Jeff Law
38e012594e
typo typo fixes fixes
...
From-SVN: r19601
1998-05-06 15:09:07 -06:00
Robert Lipe
10f0ad3d49
toplev.h: New file.
...
Wed May 6 06:35:38 1998 Robert Lipe <robertl@dgii.com>
* toplev.h: New file. Protypes for functions in toplev.c.
* tree.h, rtl.h: Deleted protos for functions in toplev.c.
* c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c,
c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c,
convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c,
function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c,
reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c,
varasm.c: include it.
From-SVN: r19564
1998-05-06 04:54:01 +00:00
Jeff Law
f5963e6170
* Check in merge from gcc2. See ChangeLog.12 for details.
...
From-SVN: r19553
1998-05-05 17:18:02 -06:00
Jeffrey A Law
1ac4f79956
* function.c (assign_outer_stack_local): Make static and add prototype.
...
From-SVN: r19245
1998-04-16 16:08:49 -06:00
John Carr
7940255dd6
function.c (assign_parms): Initialize unsignedp before passing its pointer to promote_mode.
...
* function.c (assign_parms): Initialize unsignedp before passing
its pointer to promote_mode.
From-SVN: r19215
1998-04-14 17:10:49 -06:00
Jeff Law
c86c3e99c4
Reinstall this patch from Jason.
...
8
Reinstall this patch from Jason.
* function.c (push_function_context_to): Don't call init_emit.
From-SVN: r19098
1998-04-10 15:30:30 -06:00
Jeff Law
e5e809f419
* Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12
...
for details.
* haifa-sched.c: Mirror recent changes from gcc2.
From-SVN: r18984
1998-04-04 06:32:39 -07:00
Jeffrey A Law
4e86caed7d
fold-const.c (optimze_bit_field_compare): Initialize rnbitpos, rnbitsize, rnmode and rinner.
...
* fold-const.c optimze_bit_field_compare): Initialize rnbitpos,
rnbitsize, rnmode and rinner.
(make_range): Initialize type.
(fold): Initialize arg0, arg1 and varop.
* function.c (instantiate_virtual_regs_1): Initialize offset, regnoi
and regnor.
(expand_function_start): Initialize last_ptr.
* stor-layout.c (layout_record): Initialize desired_align.
(get_best_mode): Initialize unit.
* tree.c (copy_node): Initialize length.
From-SVN: r18943
1998-04-01 16:35:51 -07:00
Bernd Schmidt
4d1d804584
basic-block.h (basic_block_computed_jump_target): Declare.
...
* basic-block.h (basic_block_computed_jump_target): Declare.
* flags.h: (current_function_has_computed_jump): Declare.
* flow.c: (basic_block_computed_jump_target): Define.
(flow_analysis): Allocate it. Set current_function_has_computed_jump
to 0.
(find_basic_blocks): Set current_function_has_computed_jump and
elements of basic_block_computed_jump_target to 1 as appropriate.
* function.c: (current_function_has_computed_jump): Define.
* global.c (global_conflicts): Don't allocate pseudos into stack regs
at the start of a block that is reachable by a computed jump.
* reg-stack.c (stack_reg_life_analysis): If must restart, do so
immediately.
(subst_stack_regs): Undo change from Sep 4 1997.
(uses_reg_or_mem): Now unused, deleted.
* stupid.c (stupid_life_analysis): Compute
current_function_has_computed_jump.
(stupid_find_reg): Don't allocate stack regs if the function has a
computed goto.
* haifa-sched.c (is_cfg_nonregular): Delete code to determine if
the current function has a computed jump. Use the global value
instead.
Co-Authored-By: Jeffrey A Law <law@cygnus.com>
From-SVN: r18860
1998-03-27 17:12:41 -07:00
Kaveh R. Ghazi
670ee92097
Major cutover to using system.h:
...
* Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o,
c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o,
caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o,
dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o,
expr.o, final.o, flow.o, function.o, getpwd.o, global.o,
integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o,
prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o,
reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o,
rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o,
tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend
on system.h.
* alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c,
c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c,
caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c,
dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c,
expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c,
integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c,
prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c,
reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c,
rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c,
stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c,
xcoffout.c: Include system.h. Organize include ordering so
that stdarg/varargs comes before other system headers. Remove
spurious casts of functions assured of a prototype in system.h.
From-SVN: r18726
1998-03-20 14:58:42 +00:00
Jason Merrill
6e1f1f930b
except.c (init_eh): Do nothing.
...
* except.c (init_eh): Do nothing.
(save_eh_status): Call init_eh_for_function, not init_eh.
* function.c (push_function_context_to): Don't call init_emit.
From-SVN: r18710
1998-03-19 13:49:57 -05:00
Kaveh R. Ghazi
081f5e7e66
Fix more warnings...
...
* c-lang.c (finish_file): Wrap variable `void_list_node' with macro
test !ASM_OUTPUT_CONSTRUCTOR || !ASM_OUTPUT_DESTRUCTOR.
* calls.c (emit_call_1): Wrap variable `already_popped' with macro
test !ACCUMULATE_OUTGOING_ARGS.
* collect2.c (write_c_file_glob): Wrap function definition in
macro test !LD_INIT_SWITCH.
* combine.c (try_combine): Wrap variables `cc_use' and
`compare_mode' in macro test EXTRA_CC_MODES.
* cpplib.c (do_ident): Remove unused variable `len'.
(skip_if_group): Remove unused variables `at_beg_of_line' and
`after_ident'.
(cpp_get_token): Remove unused variable `dummy'.
* dbxout.c (scope_labelno): Move static variable definition inside
the one function scope where it is used.
(dbxout_function_end): Wrap prototype and definition in
macro test !NO_DBX_FUNCTION_END.
* dwarf2out.c (add_subscript_info): Wrap variable `dimension_number'
in macro test !MIPS_DEBUGGING_INFO.
* expr.c (expand_builtin_setjmp): Move declaration of variable `i'
into the scope where it is used. Wrap empty else-statement body
in braces.
* fix-header.c: Fix typo in comment.
(inf_skip_spaces): Cast results of INF_UNGET to (void).
(check_protection, main): Likewise.
* flow.c (find_basic_blocks_1): Remove dangling comment text.
* function.c (contains): Wrap prototype and definition in macro
test HAVE_prologue || HAVE_epilogue.
(fixup_var_refs_1): Remove unused variable `width'.
* gen-protos.c (main): Remove unused variable `optr'.
* haifa-sched.c (debug_control_flow): Remove unused variable `j'.
* libgcc2.c (__udiv_w_sdiv): Provide dummy return value of 0.
(__sjpopnthrow): Remove unused variable `jmpbuf'.
(__throw): Remove unused variable `val'.
* protoize.c: Check for a previously existing definition before
defining *_OK macros.
* scan-decls.c (scan_decls): Remove unused variable `old_written'.
From-SVN: r18654
1998-03-18 07:18:06 +00:00
Jim Wilson
bdd3e6abed
Patch to fix mips64-elf varargs aliasing failures.
...
* function.c (put_reg_into_stack): Copy MEM_IN_STRUCT_P from new.
(assign_parms): Set aggregate if hide_last_arg and last_named.
From-SVN: r18450
1998-03-09 04:03:21 -08:00
Kaveh R. Ghazi
5172371191
Fix warious warnings:
...
* c-aux-info.c: Include string.h/strings.h.
* pa.c: Include stdlib.h.
(pa_combine_instructions): Prototype the function.
(pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise.
(reloc_needed): Add default case for enumeration switch.
(remove_useless_addtr_insns): Remove unused variable `all'.
(hppa_expand_prologue): Add explicit braces to avoid
ambiguous `else'.
(output_function_epilogue): Remove unused variable `i'.
(output_millicode_call): Remove unused variable `link'.
(shadd_constant_p, forward_branch_p): Make the function static.
(following_call): Explicitly declare to return int.
(pa_reorg): Declare as void.
(pa_combine_instructions): Declare as static void. Add
parentheses around && within ||.
* pa.h: Add prototypes for pa_reorg, symbolic_operand,
following_call, function_label_operand, lhs_lshift_cint_operand
and zdepi_cint_p.
* pa.md: Add parentheses around && within ||.
* cppalloc.c: Include stdlib.h.
* cpperror.c (cpp_print_containing_files): Remove unused variable
`i'. Fix format specifier in fprintf.
* cse.c (cse_around_loop): Add explicit braces to avoid
ambiguous `else'.
(delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0.
* expr.c (expand_expr): Add parentheses around && within ||.
* final.c (app_enable): Replace fprintf with fputs where there are
no format specifiers and no trailing argument after the string.
Eg, when printing ASM_APP_ON/ASM_APP_OFF.
(app_disable): Likewise.
(final_end_function): Likewise.
(final_scan_insn): Likewise. Remove unused variable `set'.
(profile_function): Wrap empty if-statement body in {} brackets.
* function.c: Include stdlib.h.
(pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD.
(reposition_prologue_and_epilogue_notes): Add parentheses
around assignment used as truth value.
* integrate.c (expand_inline_function): Wrap variable
`cc0_insn' in macro HAVE_cc0.
* jump.c (jump_optimize): Wrap variable `q' in macro
HAVE_cc0. Remove unused variable `prev1'.
* libgcc2.c (__bb_exit_trace_func): Add parentheses around &&
within ||. Fix format specifier in fprintf.
(__bb_init_prg): Add parentheses around assignment used as
truth value.
* local-alloc.c: Include stdlib.h.
(requires_inout): Add parentheses around assignment used
as truth value.
* loop.c (analyze_loop_iterations): Wrap prototype and definition
in macro HAVE_decrement_and_branch_on_count.
(insert_bct, instrument_loop_bct): Likewise.
(move_movables): Add parentheses around assignment used as
truth value.
(consec_sets_invariant_p): Likewise.
(maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0.
* objc/objc-act.c: Include stdlib.h.
(lookup_method_in_protocol_list): Wrap empty else-statement body
in braces.
(lookup_protocol_in_reflist): Likewise.
(objc_add_static_instance): Remove unused variables `decl_expr'
and `decl_spec'.
(get_objc_string_decl): Remove unused variable `decl'.
(generate_static_references): Remove unused variables `idecl' and
`instance'.
(check_protocols): Wrap empty else-statement body in braces.
* protoize.c: Include stdlib.h.
(substr): Add parentheses around assignment used as truth value.
(abspath): Likewise.
(shortpath): Likewise.
* regmove.c (fixup_match_1): Add parentheses around assignment
used as truth value.
* reload.c (push_secondary_reload): Remove unused variable `i'.
(find_reloads): Add parentheses around assignment used as truth
value.
* reload1.c: Include stdlib.h.
* rtl.h: Correct typo in prototype of offsettable_memref_p.
* stmt.c (add_case_node): Add parentheses around assignment used
as truth value.
(case_tree2list): Likewise.
* tree.c (valid_machine_attribute): Wrap variable `decl_attr_list'
in macro VALID_MACHINE_DECL_ATTRIBUTE. Wrap variable
`type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE.
(merge_attributes): Add explicit braces to avoid ambiguous
`else'.
* unroll.c (copy_loop_body): Wrap variable `cc0_insn' in
macro HAVE_cc0.
* varasm.c: Include stdlib.h.
From-SVN: r18290
1998-02-28 07:06:53 +00:00
Jeffrey A Law
29a820586a
varasm.c (output_constant_pool): Bring back 'done' label inside an appropriate #ifdef.
...
* varasm.c (output_constant_pool): Bring back 'done' label inside
an appropriate #ifdef.
* bitmap.c (bitmap_element_allocate): Wrap variable 'i' in an
appropriate #ifdef.
(bitmap_copy, bitmap_operation): Likewise.
* combine.c (combinable_i3pat): Similarly for 'src'.
* function.c (fixup_var_refs_1): Similarly for 'outerdest'.
(locate_and_pad_parm): Similarly for 'reg_parm_stack_space'.
* regclass.c (copy_cost): Similarly for 'secondary_class'.
* reload.c (make_memloc): Simliarly for 'i'.
(find_reloads_address_1): Similarly for 'link'.
* reload1.c (reload): Similarly for 'previous_frame_pointer_needed'.
(emit_reload_insns): Similarly for 'second_reloadreg'.
* unroll.c (iteration_info): Similarly for 'v'.
* caller-save.c (insert_save_restore): Remove unused variable 'i'.
* calls.c (expand_call): Similarly for 'i'.
(emit_library_call, emit_library_call_value): Similarly for 'mode'.
* fold-const.c (strip_compund_expr): Similarly for 'type'.
* function.c (fixup_var_refs_1): Similarly for 'width'.
(fixup_memory_subreg): Similarly for 'saved'.
(locate_and_pad_parm): Similarly for 'boundary_in_bytes.'
(setjmp_protect): Similarly for 'sub'.
(thread_prologue_and_epilogue_insns): Similarly for 'insn'.
* loop.c (record_giv): Similarly for 'p'.
(combine_givs): Similarly for 'temp_iv'.
(indirect_jump_in_function_p): Similarly for 'is_indirect_jump'.
* recog.c (validate_replace_rtx_1): Similarly for 'width'.
* tree.c (get_set_constructor_bytes): Similarly for 'vals'.
* unroll.c (unroll_loop): Similarly for 'copy'.
(iteration_info): Similarly for 'b'.
* varasm.c (assemble_string): Similarly for 'i'.
* i386.h (LEGITIMIZE_ADDRESS): Similarly for 'orig_x'.
From-SVN: r17973
1998-02-13 18:13:58 -07:00
Jeffrey A Law
b515ab3d51
* function.c (assign_parms): Fix typo in last change.
...
From-SVN: r17769
1998-02-07 16:08:24 -07:00
Jim Wilson
bf9c83fe76
Fix irix6 stdarg failure when last named arg has FP type.
...
* function.c (assign_parms): New variable named_arg, with value
depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named.
From-SVN: r17695
1998-02-06 06:31:56 -08:00
Jeffrey A Law
c980413689
More bytecode stuff disappears.
...
From-SVN: r17435
1998-01-20 03:02:05 -07:00
Jeffrey A Law
b93a436e6b
Makefile.in: Remove all bytecode support.
...
* Makefile.in: Remove all bytecode support.
(OBJS): Make sure last entry is a real object file, not EXTRA_OBJS.
* emit-rtl.c: Remove all bytecode support.
* expr.c, expr.h function.c, integrate.c: Likewise.
* output.h, regclass.c, rtl.h, stmt.c, toplev.c: Likewise.
* tree.h, varasm.c: Likewise.
* bi-*, bc-*: Delete bytecode related files.
Bytecode suppors disappears :-)
From-SVN: r17432
1998-01-20 01:55:07 -07:00
Richard Henderson
38a448ca5d
alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO...
...
* alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO;
change gen_rtx(expr...) to gen_rtx_fmt_foo(expr...).
* caller-save.c, calls.c, combine.c, cse.c: Likewise.
* dwarf2out.c, except.c, explow.c, expmed.c, expr.c: Likewise.
* final.c, flow.c, function.c, genpeep.c, haifa-sched.c: Likewise.
* halfpic.c, integrate.c, jump.c, local-alloc.c, loop.c: Likewise.
* profile.c, recog.c, reg-stack.c, regclass.c, regmove.c: Likewise.
* reload.c, reload1.c, reorg.c, sched.c, stmt.c, stupid.c: Likewise.
* unroll.c, varasm.c: Likewise.
* config/alpha/alpha.c, config/alpha/alpha.md: Likewise.
From-SVN: r17357
1998-01-14 15:10:50 -08:00
Jeff Law
c85f7c16ad
Bring in final gcc-2.8.0 changes.
...
From-SVN: r17355
1998-01-14 13:57:58 -07:00
Jeff Law
6d8ccdbbb2
Bring over changes from latest gcc-2.8 pre-release.
...
Mirror sched.c change into haifa-sched.c
From-SVN: r17097
1997-12-15 00:05:04 -07:00
Jeff Law
956d69504d
Merge from gcc-2.8
...
From-SVN: r16987
1997-12-06 17:31:01 -07:00
Jeff Law
e9a25f70a0
Update mainline egcs to gcc2 snapshot 971021.
...
From-SVN: r16278
1997-11-02 14:19:36 -07:00
Doug Evans
de95730392
function.c (assign_parms): Correct mode of stack_parm if entry_parm underwent a mode conversion.
...
* function.c (assign_parms): Correct mode of stack_parm if
entry_parm underwent a mode conversion.
From-SVN: r16228
1997-10-28 23:54:49 -07:00
Jason Merrill
d1485032c8
tree.c (restore_tree_status): Also free up temporary storage when we finish a toplevel function.
...
* tree.c (restore_tree_status): Also free up temporary storage
when we finish a toplevel function.
(dump_tree_statistics): Print stats for backend obstacks.
* libgcc2.c (__throw): Don't copy the return address.
* dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address.
* except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized).
* toplev.c (main): Initialize exceptions_via_longjmp.
* tree.c: Add extra_inline_obstacks.
(save_tree_status): Use it.
(restore_tree_status): If this is a toplevel inline obstack and we
didn't want to save anything on it, recycle it.
(print_inline_obstack_statistics): New fn.
* function.c (pop_function_context_from): Pass context to
restore_tree_status.
* obstack.h (obstack_empty_p): New macro.
From-SVN: r16050
1997-10-18 17:10:32 -04:00
Jeffrey A Law
f345de42fc
reorg.c (dbr_schedule): Allow current_function_return_rtx to be something other than a REG.
...
* reorg.c (dbr_schedule): Allow current_function_return_rtx
to be something other than a REG.
* function.c (expand_function_end): Fix current_function_return_rtx
if it was a pseudo.
Brought over from the fsf/devo.
From-SVN: r14972
1997-08-27 13:59:51 -06:00
Richard Kenner
86fa911a16
(put_var_into_stack, assign_parms): If -fcheck-memory-usage, set the
...
rights of pushed variable.
From-SVN: r14614
1997-08-02 13:18:18 -04:00
Richard Kenner
4ac74fb88f
(put_var_into_stack, trampoline_address): Treat inline_function_decl
...
like current_function_decl.
From-SVN: r14539
1997-07-27 19:34:28 -04:00
Richard Kenner
11044f6690
(expand_function_end): If function is non-leaf and stack checking is
...
requested, emit needed probes.
From-SVN: r14470
1997-07-17 11:25:54 -04:00
Mike Stump
e5a1e0e864
function.c (expand_function_end): Make sure we finish off any leftover exception handlers.
...
* function.c (expand_function_end): Make sure we finish off any
leftover exception handlers.
From-SVN: r14067
1997-05-15 02:25:25 +00:00
Mike Stump
db3cf6fb33
reformat a little to match GNU coding standards.
...
From-SVN: r14024
1997-05-06 23:05:54 +00:00
Jason Merrill
173cd503de
x
...
From-SVN: r13974
1997-04-24 02:55:16 +00:00
Jim Wilson
ce717ce4d3
(instantiate_decls): For DECL_INCOMING_RTL, use max
...
of type size and mode size in instantiate_decl call.
From-SVN: r13933
1997-04-18 15:40:55 -07:00
Jim Wilson
7b05e28661
(expand_function_start): Emit queue after expanding
...
each dynamic parameter type.
From-SVN: r13835
1997-04-03 12:26:33 -08:00
Doug Evans
82e415a358
function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER for last line of function.
...
* function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER
for last line of function.
From-SVN: r13815
1997-03-28 22:36:31 +00:00
Ian Lance Taylor
38b610ed8e
Add a REG_EQUIV note when a register parameter has a stack location
...
From-SVN: r13734
1997-03-18 20:00:01 +00:00
Jason Merrill
a1d7ffe39c
x
...
From-SVN: r13652
1997-02-16 10:05:43 +00:00
Richard Kenner
1995f267b7
(assign_stack_temp): Clear MEM flags from reuse.
...
From-SVN: r13623
1997-02-09 14:05:39 -05:00
Richard Kenner
7694ce359a
(instantiate_virtual_regs_1, case USE, CLOBBER): Fix error in last change.
...
From-SVN: r13615
1997-02-07 08:19:33 -05:00
Richard Kenner
189cc3779a
(TRAMPOLINE_ALIGNMENT): Provide default.
...
(expand_function_end): Use TRAMPOLINE_ALIGNMENT instead of FUNCTION_BOUNDARY.
From-SVN: r13567
1997-01-30 08:57:32 -05:00
Richard Kenner
85b119d1b7
(mark_all_temps_used): Set KEEP as well.
...
From-SVN: r13541
1997-01-21 16:03:29 -05:00
Richard Kenner
4fd796bbb5
(instantiate_virtual_regs_1...
...
(instantiate_virtual_regs_1, case USE, case CLOBBER): Properly handle
case of shared MEM whose replacement is not valid.
From-SVN: r13509
1997-01-19 08:57:20 -05:00
Richard Kenner
01c1558a9c
(push_function_context_to, pop_function_context_from): Save and
...
restore current_function_args_info.
From-SVN: r13353
1997-01-03 07:51:07 -05:00
Ian Lance Taylor
f95182a4a9
Check SMALL_REGISTER_CLASSES at runtime
...
From-SVN: r13302
1996-12-13 01:00:49 +00:00
Richard Kenner
ef933d2601
(fixup_var_refs_1, case ZERO_EXTRACT): Don't call fixup_memory_subreg
...
if no longer SUBREG of MEM.
From-SVN: r13282
1996-12-11 17:00:41 -05:00
Richard Kenner
8af5168bae
(frame_offset, get_frame_size): Make HOST_WIDE_INT.
...
From-SVN: r13243
1996-12-07 18:49:12 -05:00
Jim Wilson
ecec444145
(expand_function_end): Handle BLKmode structures returned
...
in registers.
From-SVN: r13117
1996-11-08 17:37:54 -08:00
Richard Kenner
ddb7361a2e
(assign_parms): Use mark_user_reg.
...
From-SVN: r12870
1996-09-29 19:06:08 -04:00
Jim Wilson
87ce34d632
(instantiate_decl): Always store addr back into x.
...
From-SVN: r12842
1996-09-25 12:31:31 -07:00
Richard Kenner
27ce006bb4
(mark_all_temps_used): Fix error in last change.
...
From-SVN: r12672
1996-08-26 14:08:23 -04:00
Richard Kenner
a94e4054a9
(mark_all_temps_used): New function.
...
From-SVN: r12671
1996-08-25 22:27:04 -04:00
Mike Stump
1ef08c6373
install EH code
...
From-SVN: r12550
1996-07-23 20:09:26 +00:00
Jim Wilson
e71f7aa5b5
(aggregate_value_p): If hard_function_value returns
...
a non-REG, then return 0.
From-SVN: r12413
1996-07-08 15:11:03 -07:00
Mike Stump
0f41302f47
formatting tweaks
...
From-SVN: r12390
1996-07-03 22:07:53 +00:00
Richard Kenner
abb522465e
(find_temp_slot_from_address): Check for overlap from BASE_OFFSET if X
...
is PLUS of virtual_stack_vars_rtx and const.
From-SVN: r12296
1996-06-18 07:12:49 -04:00
Richard Kenner
0e09cc26ee
(fixup_var_refs_1, case SIGN_EXTEND): Handle paradoxical SUBREGs as first operand.
...
(fixup_var_refs_1, case SIGN_EXTEND): Handle paradoxical SUBREGs as first
operand.
(fixup_var_regs_1, case SET): Handle paradoxical SUBREGs as first operand of
a ZERO_EXTRACT in SET_DEST.
From-SVN: r12243
1996-06-08 13:49:13 -04:00
Jim Wilson
5c4cdc9fdf
(assign_parms): Handle PARALLEL parameter in ENTRY_PARM.
...
From-SVN: r12191
1996-06-06 16:13:24 -07:00
Richard Kenner
69685820b3
(assign_parms): Tighten up code that makes REG_EQUIV notes for parms.
...
From-SVN: r12186
1996-06-06 18:38:13 -04:00
Richard Kenner
9e014ded89
Include bc-emit.h.
...
({save,restore}_machine_status): Add prototype for args.
(bc_runtime_type_code, bc_build_calldesc): Delete redundant decls.
(bc_emit_trampoline, bc_end_function): Likewise.
From-SVN: r12045
1996-05-19 12:24:26 -04:00
Doug Evans
49a2e5b2f7
* function.c (aggregate_value_p): Return 1 if TREE_ADDRESSABLE.
...
From-SVN: r11957
1996-05-09 01:04:06 +00:00
Richard Kenner
a00285d035
(assign_parms): Set RTX_UNCHANGING_P in stack_parm if parm is
...
read-only.
From-SVN: r11944
1996-05-06 18:45:05 -04:00
Richard Kenner
1e2414db59
(expand_function_end): Allow TRAMPOLINE_TEMPLATE
...
to be omitted on systems for which it is not cost effective.
From-SVN: r11822
1996-04-16 16:51:20 -04:00
Richard Kenner
1651bdfef8
(push_function_context_{to,from}): Save and restore
...
current_function_returns_pointer.
From-SVN: r11812
1996-04-16 10:19:07 -04:00
Mike Stump
9cca6a99da
function.c (preserve_temp_slots): Only preserve temporaries that happen to be at the current level.
...
* function.c (preserve_temp_slots): Only preserve temporaries that
happen to be at the current level.
Fixes p7325.C.
From-SVN: r11800
1996-04-15 18:46:12 +00:00
Jeff Law
2c7ee1a641
calls.c (expand_call): Remove current_call_is_indirect nonsense.
...
* calls.c (expand_call): Remove current_call_is_indirect nonsense.
Add additional argument to INIT_CUMULATIVE_ARGS.
(emit_library_call): Likewise.
(emit_library_call_value): Likewise.
* expr.c (expand_builtin): Likewise.
* function.c (assign_parms): Likewise.
* cp/method.c (emit_thunk): Likewise.
* config/pa/pa.h (hppa_args): New field "indirect".
(INIT_CUMULATIVE_ARGS): Initialize "indirect" field.
(FUNCTION_ARG): Check "indirect" field, rather than
"current_call_is_indirect".
* All other backends updated with new argument to
INIT_CUMULATIVE_ARGS
From-SVN: r11641
1996-03-29 07:37:11 -07:00
Jason Merrill
6d7306f76e
(expand_function_start): Don't set up context_display
...
unless current_function_needs_context.
From-SVN: r11615
1996-03-26 00:17:01 +00:00
Jason Merrill
38ee6ed956
(expand_expr, case *_DECL): If we make a non-local reference from a function with DECL_NO_STATIC_CHAIN set, abort.
...
(expand_expr, case *_DECL): If we make a non-local
reference from a function with DECL_NO_STATIC_CHAIN set, abort.
(expand_expr, case ADDR_EXPR): We don't need a trampoline for a
function with DECL_NO_STATIC_CHAIN set.
From-SVN: r11461
1996-03-05 22:16:33 +00:00
Richard Kenner
f6127c6a4a
(bc_expand_function_start): Likewise.
...
From-SVN: r11412
1996-03-04 08:40:01 -05:00
Richard Kenner
b02ab63aa4
({,round_}trampoline_address): TRAMPOLINE_ALIGNMENT is in bits, not
...
bytes.
From-SVN: r10993
1996-01-15 14:57:49 -05:00
Richard Kenner
b55d9ff814
(assign_temp): Add extra arg, DONT_PROMOTE.
...
Don't return (const_int 0) for VOIDmode.
From-SVN: r10923
1995-12-31 21:26:06 -05:00
Richard Kenner
e1686233d2
(instantiate_decls): Check DECL_SAVED_INSNS to see if obstack change
...
is needed.
From-SVN: r10915
1995-12-31 15:03:23 -05:00
Richard Kenner
638141a689
(assign_temp): Fix formatting.
...
From-SVN: r10905
1995-12-30 06:36:58 -05:00
Per Bothner
230f21b48b
function.c (assign_temp): New function.
...
* function.c (assign_temp): New function. Can handle Chill-style
variable-sized array with static maximum size.
From-SVN: r10899
1995-12-29 11:14:31 -08:00
Per Bothner
f9f29478ed
* function.c (assign_parms): Fix thinko for struct value arg.
...
From-SVN: r10897
1995-12-29 11:05:20 -08:00
Richard Kenner
6c6166bdcb
(assign_parms): Set REGNO_POINTER_ALIGN for parms that are pointers.
...
From-SVN: r10868
1995-12-27 15:22:26 -05:00
Richard Kenner
1d273bf509
(fixup_var_refs_1): Fix error in last change (when mode of VAR is not
...
the same as PROMOTED_MODE).
From-SVN: r10795
1995-12-18 07:49:21 -05:00
Richard Kenner
c46722a717
(fixup_var_refs_1): Fix two incorrect calls to single_set.
...
From-SVN: r10776
1995-12-16 06:57:01 -05:00
Richard Kenner
bc0ebdf9ee
(init_temp_slots): New function.
...
(init_function_start): Code moved to new function and called here.
From-SVN: r10733
1995-12-15 08:09:24 -05:00
Mike Stump
b2a59b1589
function.c (identify_blocks): Start with a chain of BLOCKs to match the rest of the backend (dbxout.c)...
...
* function.c (identify_blocks): Start with a chain of BLOCKs to
match the rest of the backend (dbxout.c), instead of just one
BLOCK.
(reorder_blocks): Ditto.
(all_blocks): Ditto.
* stmt.c (find_loop_tree_blocks): Pass the toplevel list of
blocks, not just the first subblock.
Fixes unroll1.C.
From-SVN: r10712
1995-12-14 00:00:20 +00:00
Richard Kenner
926d1ca5a3
(fixup_var_refs_1): Make pseudo for DEST in PROMOTED_MODE unless in a
...
SUBREG.
From-SVN: r10608
1995-11-26 14:50:48 -05:00
Richard Kenner
0006e95bb3
(put_reg_into_stack): New arg volatile_p.
...
(put_var_into_stack): Call with new arg.
From-SVN: r10579
1995-11-12 18:09:22 -05:00
Richard Kenner
926b1b9906
(assign_parms): Don't trust the callee to copy a TREE_ADDRESSABLE
...
type.
From-SVN: r10527
1995-10-26 21:55:22 -04:00
Richard Kenner
41fd457e3e
(init_function_start): Don't call init_insn_lengths here.
...
From-SVN: r10483
1995-10-20 17:57:07 -04:00
Richard Kenner
291dde90f0
(assign_stack_temp): Adjust full_size field of temp_slot when
...
splitting an unused slot.
From-SVN: r10422
1995-10-03 12:02:38 -04:00
Richard Kenner
4738c10dc6
(put_var_into_stack): For CONCAT case, order of placement depends on
...
FRAME_GROWS_DOWNWARD, not STACK_GROWS_DOWNWARD.
From-SVN: r10344
1995-09-12 18:48:36 -04:00
Richard Kenner
abc95ed36d
Fix spelling errors.
...
From-SVN: r10289
1995-08-28 06:54:22 -04:00
Richard Kenner
307d8cd67d
(assign_stack_temp): When split a slot, set base_offset and full_size in the newly created slot.
...
(assign_stack_temp): When split a slot, set base_offset and full_size in the
newly created slot.
(combine_temp_slots): Update full_size when slots are combined.
From-SVN: r10185
1995-07-28 09:09:22 -04:00
Richard Kenner
fc91b0d0aa
(struct temp_slot): New fields base_offset, full_size.
...
(assign_stack_temp): For !FRAME_GROWS_DOWNWARD, set p->size to size.
Set new fields base_offset and full_size.
(combine_temp_slots): Use new fields base_offset and full_size instead
of slot and size.
From-SVN: r10136
1995-07-14 19:15:58 -04:00
Richard Kenner
ebb904cbbe
(current_function_stdarg): New global variable.
...
(push_function_context_to): Save it.
(pop_function_context_from): Restore it.
(assign_parms): Set it.
(init_function_start): Clear it.
From-SVN: r10123
1995-07-14 08:03:09 -04:00
Richard Kenner
0cd6ef3529
(setjmp_args_warning): Remove bogus arg.
...
From-SVN: r10109
1995-07-10 19:14:25 -04:00
Richard Kenner
ad2413517b
(assign_parms): Do all conversions in CONVERSION_INSNS.
...
From-SVN: r9992
1995-06-15 17:51:06 -04:00
Richard Kenner
a35311b035
Update FSF address.
...
From-SVN: r9961
1995-06-15 07:52:21 -04:00
Richard Kenner
95f2916038
(assign_parms): Use convert_to_mode instead of gen_lowpart when
...
converting incoming parm.
From-SVN: r9941
1995-06-14 05:51:51 -04:00
Richard Kenner
621061f4f3
(assign_parms): Handle promotions of both passed and nominal modes separately and insert needed conversions.
...
(assign_parms): Handle promotions of both passed and nominal modes separately
and insert needed conversions.
(promoted_input_arg): Return 0 if nominal and passed modes differ.
From-SVN: r9922
1995-06-11 13:13:53 -04:00
Richard Kenner
cd5b346969
(assign_parms): Don't call promote_mode on arg unless
...
PROMOTE_FUNCTION_ARGS defined.
From-SVN: r9904
1995-06-08 18:49:09 -04:00
Richard Kenner
9faa82d8c0
Fix typos in comments.
...
From-SVN: r9712
1995-05-16 08:39:54 -04:00
Jason Merrill
497dc802f6
(expand_function_end): Don't warn about unused
...
anonymous or artificial parms.
From-SVN: r9585
1995-05-07 10:28:12 +00:00
Richard Kenner
db8717d93b
(expand_function_end): Warn about unused parms if both -Wunused and -W.
...
From-SVN: r9489
1995-04-26 17:56:19 -04:00
Richard Kenner
9dc0f53144
(assign_parms): If STACK_REGS is defined...
...
(assign_parms): If STACK_REGS is defined, generate USE insns before
the function body, thus showing which registers are filled with
parameters.
From-SVN: r9461
1995-04-25 19:08:04 -04:00
Jason Merrill
657bb6dc84
Use TREE_ADDRESSABLE rather than | TYPE_NEEDS_CONSTRUCTING to decide whether a...
...
Use TREE_ADDRESSABLE rather than
| TYPE_NEEDS_CONSTRUCTING to decide whether a parameter needs to be
| passed by invisible reference.
From-SVN: r9420
1995-04-20 22:26:30 +00:00
Jim Wilson
79c0672ee6
(instantiate_decls): Use temporary allocation if
...
DECL_DEFER_OUTPUT is set.
From-SVN: r9394
1995-04-17 12:23:52 -07:00
Richard Kenner
6dfc5c6de5
(preserve_temp_slots): Clear ADDR_TAKEN on item that we are
...
preserving.
From-SVN: r9236
1995-03-27 20:45:05 -05:00
Richard Kenner
49468af2d9
(pop_function_context): Fix error in last change; reference old value
...
of current_function_decl before we modify it.
From-SVN: r9202
1995-03-18 16:37:13 -05:00
Jason Merrill
a0dabda52b
Handle compilation of nested functions from another scope.
...
From-SVN: r9185
1995-03-15 21:48:01 +00:00
Per Bothner
b001a02f29
Remove Feb 28's FUNCTION_NEEDS_STATIC_CHAIN changes.
...
From-SVN: r9106
1995-03-01 19:33:25 -08:00
Per Bothner
7ad8c4bf11
function.c (lookup_static_chain): Check for a static chain using FUNCTION_NEEDS_STATIC_CHAIN.
...
* function.c (lookup_static_chain): Check for a static chain
using FUNCTION_NEEDS_STATIC_CHAIN.
(init_function_start): Set current_function_needs_context depending
on FUNCTION_NEEDS_STATIC_CHAIN rather than decl_function_context.
From-SVN: r9096
1995-02-28 15:06:03 -08:00
Richard Kenner
64e6d9cc49
(assign_parms): Added arg to RETURN_POPS_ARGS.
...
From-SVN: r9011
1995-02-21 18:48:03 -05:00
Jim Wilson
71cd4a8d33
(delete_handlers): When clear LABEL_PRESERVE_P,
...
also remove label from nonlocal_label list.
From-SVN: r8782
1995-01-20 17:58:34 -08:00
Richard Kenner
4013a70901
(optimize_bit_field): Don't remove a SUBREG that changes mode class.
...
From-SVN: r8744
1995-01-13 18:43:36 -05:00
Jeff Law
3668e76e90
calls.c (expand_call): Set MEM_IN_STRUCT_P as needed on return value from assign_stack_temp.
...
* calls.c (expand_call): Set MEM_IN_STRUCT_P as needed on return
value from assign_stack_temp.
(store_one_arg): Likewise.
* expr.c (save_noncopied_parts): Likewise.
(expand_expr): Likewise.
* function.c (assign_parms): Likewise.
* integrate.c (expand_inline_function): Likewise.
* stmt.c (expand_decl): Likewise.
From-SVN: r8708
1994-12-29 19:50:28 -07:00
Doug Evans
b1f82ccff1
(instantiate_virtual_regs_1, case PLUS): If offset is
...
zero, make sure register replacement is still validated.
From-SVN: r8649
1994-12-13 15:04:05 +00:00
Doug Evans
ea5917da8d
(locate_and_pad_parm): Don't call pad_below for BLKmode parms in regs.
...
From-SVN: r8645
1994-12-12 18:14:40 +00:00
Doug Evans
d4b0a7a049
(locate_and_pad_parm): Do padding before rounding
...
so pad_below knows how much is needed.
From-SVN: r8622
1994-12-07 20:58:08 +00:00
Ian Lance Taylor
f76b9db287
Check target endianness at run time, not compile time
...
From-SVN: r8470
1994-11-16 21:10:09 +00:00
Jason Merrill
8eda074c87
(init_function_start): Use
...
POINTER_TYPE_P rather than checking the type against POINTER_TYPE
(to include references).
From-SVN: r8458
1994-11-16 00:45:41 +00:00
Doug Evans
b2a80c0d2b
(assign_stack_temp): Compute size of slot after
...
assign_stack_local has accounted for alignment.
From-SVN: r8438
1994-11-15 14:55:15 +00:00
Richard Kenner
84e24c036d
(assign_stack_temp): Always initialize p->rtl_expr.
...
From-SVN: r8429
1994-11-11 18:55:49 -05:00
Richard Kenner
199b61d8f8
(preserve_rtl_expr_result): find_temp_slot_from_address now used.
...
Don't bring the temp slot to an inner level than it was.
From-SVN: r8427
1994-11-11 17:37:45 -05:00
Richard Kenner
73620b82c8
(preserve_temp_slots): Preserve anything whose address was taken when
...
X is zero.
From-SVN: r8363
1994-10-31 07:24:20 -05:00
Per Bothner
f733963397
* function.c (current_function_outgoing_args_size): Update comment.
...
From-SVN: r8291
1994-10-17 16:09:35 -07:00
Richard Kenner
e19571dbde
(preserve_temp_slots): If X cannot be a temp slot, preserve all things
...
whose address was taken at the present level.
From-SVN: r8238
1994-10-07 16:13:58 -04:00
Richard Kenner
303ec2aa60
(assign_stack_temp): Abort if SIZE == -1.
...
From-SVN: r8235
1994-10-07 08:28:44 -04:00
Richard Kenner
a25d4ba2f6
(struct temp_slot): New field addr_taken.
...
(assign_stack_temp): Initialize it.
(mark_temp_addr_taken): New function.
(preserve_temp_slots): Decrement level of things at same level but whose
address has been taken.
From-SVN: r8224
1994-10-06 06:52:10 -04:00
Jason Merrill
e4a4639ef0
ontext, adds argument to indicate that the new function is not a nested function.
...
ontext, adds argument to indicate that the new
function is not a nested function.
(push_function_context): Call it.
(pop_function_context{,_from}): Similarly.
From-SVN: r8205
1994-10-02 23:16:51 +00:00
Richard Kenner
e87ee2a99d
(trampoline_address): Add missing call to round_trampoline.
...
From-SVN: r8157
1994-09-28 19:18:05 -04:00
Richard Kenner
b88a314292
(optimize_bit_field): Put any insns made by change_address in front of INSN.
...
(expand_function_end): Don't pass DECL_INITIAL to setjmp_protect if it is
error_mark_node.
From-SVN: r8146
1994-09-27 18:29:21 -04:00
Richard Kenner
7cbc7b0cac
(pop_function_context): Clear reg_renumber.
...
From-SVN: r8103
1994-09-20 17:51:32 -04:00
Jim Wilson
7a30f0c44e
(assign_parms): Set RTX_UNCHANGING_P on stack_parm
...
for const parameter before calling move_block_from_reg.
From-SVN: r8075
1994-09-12 11:51:39 -07:00
Jason Merrill
e2fd1d94b8
(expand_main_function): Don't call __main if
...
HAS_INIT_SECTION is defined.
From-SVN: r8067
1994-09-10 00:34:51 +00:00
Richard Kenner
3f46679a3c
(assign_parms): If parm is transparent union, use type of first field.
...
From-SVN: r7948
1994-08-19 17:33:13 -04:00
Richard Kenner
426749e8af
(expand_function_start): Add redundant copy to static_chain_incoming_rtx if...
...
(expand_function_start): Add redundant copy to
static_chain_incoming_rtx if SMALL_REGISTER_CLASS so inlining works
properly.
From-SVN: r7909
1994-08-12 18:59:14 -04:00
Richard Kenner
ac9e20f0fb
(expand_function_start): Only use static_chain_incoming_rtx once if it
...
is a REG and we have SMALL_REGISTER_CLASSES.
From-SVN: r7873
1994-08-08 17:08:00 -04:00
Richard Kenner
4acc00bf75
(expand_function_start): Initialize VALUE_ADDRESS.
...
From-SVN: r7823
1994-07-29 18:50:41 -04:00
Jason Merrill
4ac3d99407
tree.h (TYPE_NEEDS_CONSTRUCTING): New macro.
...
Wed Jul 13 03:30:36 1994 Jason Merrill (jason@deneb.cygnus.com )
* tree.h (TYPE_NEEDS_CONSTRUCTING): New macro.
(tree_type): Add needs_constructing_flag.
* function.c (assign_parms): If TYPE_NEEDS_CONSTRUCTING, pass by
invisible reference.
* calls.c (expand_call): Ditto.
From-SVN: r7758
1994-07-13 11:06:24 +00:00
Richard Kenner
dfd3dae6c2
(instantiate_virtual_regs_1): Remove last change.
...
From-SVN: r7697
1994-07-10 08:18:01 -04:00
Richard Kenner
a890174971
(instantiate_virtual_regs_1, case SET): If DEST is
...
virtual_stack_vars_rtx, replace with hardware frame pointer.
From-SVN: r7687
1994-07-08 18:26:41 -04:00
Mike Stump
d93d4205f1
fix temp lifetime (FOR TARGET_EXPRs only)
...
From-SVN: r7681
1994-07-08 20:45:14 +00:00
Richard Kenner
4c9a05bc55
Cast pointer operands to bzero, bcopy, and bcmp to (char *).
...
From-SVN: r7472
1994-06-14 18:19:28 -04:00
Richard Kenner
ba6da62704
(assign_parms): Set REG_USERVAR_P when parm is passed by invisible
...
reference but can live in register.
From-SVN: r7366
1994-05-27 16:13:41 -04:00
Richard Kenner
6673dddf4b
(assign_parms): Fix typo in previous change.
...
From-SVN: r7283
1994-05-12 18:11:20 -04:00
Richard Kenner
5fa7422be7
(fixup_var_refs_insns): Change from USE and CLOBBER insns to using
...
CALL_INSN_FUNCTION_USAGE.
From-SVN: r7244
1994-05-06 17:50:04 -04:00
Richard Kenner
a03caf76d7
(assign_parms): Spread out the REG_EQUIV notes on
...
CONCATs.
From-SVN: r7232
1994-05-06 14:04:37 -04:00
Richard Kenner
1fd3ef7f65
(assign_parms): Use expr_size when appropriate.
...
From-SVN: r7228
1994-05-06 13:32:34 -04:00
Per Bothner
05e3bdb9cb
Use new macro AGGREGATE_TYPE_P.
...
From-SVN: r7160
1994-04-26 16:56:21 -07:00
Richard Kenner
e15679f8d6
Add prototypes for static functions.
...
(bc_expand_function_end, expand_function_end): Call new expand_fixups
instead of old fixup_gotos.
From-SVN: r7116
1994-04-21 15:30:29 -04:00
Richard Kenner
a5a52dbc09
(assign_parms, promoted_input_arg, expand_function_start): Use promote_mode.
...
From-SVN: r7068
1994-04-18 14:51:48 -04:00
Jeff Law
0b21dcf57a
function.c (locate_and_pad_parm): For ARGS_GROW_DOWNWARD...
...
* function.c (locate_and_pad_parm): For ARGS_GROW_DOWNWARD,
Round sizetree for both upward and downward padding, nuke
the (now unnecessary) call to pad_below for arg_size_ptr.
From-SVN: r7056
1994-04-16 23:14:50 -06:00
Richard Kenner
45620ed410
No longer handle LSHIFT.
...
From-SVN: r7020
1994-04-10 08:03:37 -04:00
Richard Kenner
3c8cd8bd6e
(unitialized_vars_warning, setjmp_args_warning): Reword warning to be
...
less ambiguous.
From-SVN: r7005
1994-04-09 09:47:29 -04:00
Richard Kenner
3b69d50e4d
(push_function_context): Use current_function_varargs.
...
(pop_function_context): Likewise.
(assign_parms): Respect current_function_varargs.
Save args_so_far in any case.
From-SVN: r6983
1994-04-06 07:47:24 -04:00
Richard Kenner
f0c51a1e34
(expand_function_start): Delay copying static chain.
...
From-SVN: r6979
1994-04-06 07:21:12 -04:00
Richard Kenner
e3a771613f
(preserve_temp_slots): If argument is REG, see if it is address of a
...
temp slot we know about.
From-SVN: r6843
1994-03-21 17:15:32 -05:00
Richard Kenner
ccdecf58a9
(assign_parms, expand_function_start): Properly set MEM_IN_STRUCT_P
...
for DECL_RTL of function result.
From-SVN: r6791
1994-03-14 17:31:43 -05:00
Richard Kenner
63770d6ae3
(fixup_var_refs_insn): Delete CLOBBER of VAR.
...
(fixup_var_refs_insn): Delete CLOBBER of VAR. If VAR is being
assigned into by a libcall sequence, remove the libcall notes.
From-SVN: r6632
1994-02-26 16:12:46 -05:00
Richard Kenner
e5e761396e
(struct temp_slot): Add new field, ADDRESS.
...
(assign_stack_temp): Initialize it to zero.
(find_temp_slot_from_address, update_temp_slot_address): New functions.
(preserve_temp_slots): Use find_temp_slot_from_address.
From-SVN: r6496
1994-02-06 19:59:58 -05:00
Richard Kenner
3d329b07b7
(assign_parms): Call gen_realpart and gen_imagpart instead of
...
gen_lowpart and gen_highpart.
From-SVN: r6379
1994-01-10 19:36:36 -05:00
Richard Kenner
422c8f6335
(preserve_rtl_expr_result): New function.
...
From-SVN: r6367
1994-01-10 19:05:31 -05:00
Richard Kenner
83eb3b0ddb
(thread_prologue_and_epilogue_insns): When constructing USE chain, set both NEXT_INSN and PREV_INSN links.
...
(thread_prologue_and_epilogue_insns): When constructing USE chain, set
both NEXT_INSN and PREV_INSN links. Also, preserve order of USE insns
in chain.
From-SVN: r6215
1993-12-12 06:18:21 -05:00
Richard Kenner
e7a84011d2
Declare sequence_rtl_expr.
...
(struct temp_slot): New field rtl_expr.
(assign_stack_temp): Set it from sequence_rtl_expr.
({free,pop}_temp_slots): Don't free any slot with nonzero rtl_expr.
(free_temps_for_rtl_expr): New function.
From-SVN: r6161
1993-11-25 18:10:57 -05:00
Richard Kenner
980697fdbe
Clean up comment formatting.
...
From-SVN: r6158
1993-11-25 10:53:19 -05:00
Richard Stallman
1be0704635
(expand_function_end): New arg END_BINDINGS.
...
From-SVN: r6141
1993-11-23 06:19:36 +00:00
Richard Stallman
c110c53d6e
(assign_parms): Clear STACK_PARM when we have a
...
pass-by-pointer parm that we load into a pseudo.
From-SVN: r6098
1993-11-15 05:40:19 +00:00
Richard Kenner
e5884dacd5
(expand_function_start): If not optimizing, ensure we mark context
...
display regs as live for the entire function.
From-SVN: r5995
1993-11-04 13:29:59 -05:00
Richard Stallman
7b1a0c14e9
(assign_parms): If parmreg is a CONCAT, handle the
...
case where stack_parm is 0.
From-SVN: r5940
1993-10-30 06:04:50 +00:00
Richard Stallman
14aceb299b
(assign_parms): Properly set parm_reg_stack_loc for args that are a CONCAT.
...
From-SVN: r5819
1993-10-20 03:43:31 +00:00
Richard Kenner
2849864429
(trampoline_address): Don't allocate anything from parent function's
...
current obstack.
From-SVN: r5734
1993-10-11 13:56:01 -04:00
Richard Stallman
467664666a
(save_machine_status, restore_machine_status): New vars.
...
(push_function_context, pop_function_context): Use them.
From-SVN: r5721
1993-10-11 03:02:46 +00:00
Richard Kenner
4da73fa0ba
(put_reg_into_stack): Allocate fixup structure in saveable obstack.
...
From-SVN: r5714
1993-10-10 17:10:48 -04:00
Richard Kenner
a14ae50814
(assign_parms): Pass objects who size depends on the contents of the
...
object by invisible reference.
From-SVN: r5585
1993-10-03 21:48:54 -04:00
Richard Kenner
0eb202977b
(push_temp_slots, pop_temp_slots): Always change level.
...
From-SVN: r5523
1993-09-28 21:24:47 -04:00
Richard Stallman
ae0d828893
(expand_main_function): Put back accidentally
...
deleted previous change to use NAME__MAIN.
From-SVN: r5519
1993-09-28 23:16:09 +00:00
Doug Evans
b37f453b2a
function.c: (instantiate_virtual_regs_1...
...
* function.c: (instantiate_virtual_regs_1, case MEM): references to
MEM via the hard frame pointer shouldn't be copied.
From-SVN: r5456
1993-09-24 19:42:16 +00:00
Jan Brittenson
e7a4277263
changed bytecode rtx structure references into macros
...
From-SVN: r5435
1993-09-23 10:08:13 -07:00
Jan Brittenson
c20bf1f3b3
bytecode modifications
...
From-SVN: r5405
1993-09-22 11:45:56 -07:00
Richard Stallman
e9b7093a9f
(combine_temp_slots): Handle deletion properly.
...
Free the RTL that is allocated.
From-SVN: r5401
1993-09-22 18:29:43 +00:00
Jim Wilson
8634413a53
(current_function_has_nonlocal_goto): New var.
...
(push_function_context): Save it.
(pop_function_context): Restore it.
(init_function_start): Init it.
From-SVN: r5336
1993-09-15 23:12:57 -07:00
Richard Stallman
d181c15421
(aggregate_value_p): Allow type node as argument.
...
From-SVN: r5328
1993-09-15 13:39:18 +00:00
Richard Stallman
cb61f66f5b
(assign_parms): When parm needs conversion on entry,
...
don't store it back in the slot where it was passed.
From-SVN: r5261
1993-09-05 20:01:32 +00:00
Jim Wilson
a45035b6ed
(assign_stack_temp): When allocate a slot too large,
...
split extra off into a slot of its own.
(combine_temp_slots): New function.
(free_temp_slots, pop_temp_slots): Call combine_temp_slots.
From-SVN: r5232
1993-08-31 13:30:12 -07:00
Jim Wilson
a78bdb3850
(thread_prologue_and_epilogue_insns): For the
...
epilogue, put USE insns immediately before the return insn.
From-SVN: r5142
1993-08-12 10:45:57 -07:00
Jim Wilson
f31870c1b0
(assign_parms): Pass extra argument SIZE to move_block_from_reg calls.
...
(assign_parms): Pass extra argument SIZE to
move_block_from_reg calls.
(locate_and_pad_parm): For !ARGS_GROW_DOWNWARD case, move downward
padding pad_below call after round_up call.
From-SVN: r5016
1993-07-28 10:15:25 -07:00
Richard Stallman
19fdd3eecb
(assign_parms): Don't copy too much when extending parm_reg_stack_loc.
...
From-SVN: r5004
1993-07-27 18:52:32 +00:00
Richard Stallman
293e3de41c
(expand_main_function): Likewise.
...
(put_reg_into_stack): New subroutine.
(put_var_into_stack): Use that; handle CONCAT.
From-SVN: r4991
1993-07-26 20:59:21 +00:00
Richard Kenner
2a64e92d30
(aggregate_value_p): An ARRAY_TYPE is also an aggregate.
...
From-SVN: r4970
1993-07-23 07:17:40 -04:00
Richard Kenner
d9a98e1a53
(init_function_start): Initialize trampoline_list here.
...
(expand_function_end): Not here.
From-SVN: r4936
1993-07-18 14:21:41 -04:00
Richard Kenner
40d055518b
(fixup_stack_1): Handle current_function_internal_arg_pointer.
...
From-SVN: r4777
1993-06-27 21:15:50 -04:00
Richard Stallman
f1b985b7e2
(uninitialized_vars_warning): Change warning text.
...
(setjmp_args_warning): Likewise.
From-SVN: r4635
1993-06-05 09:10:02 +00:00
Richard Stallman
de3ab9df04
(assign_parms): Declare and set current_call_is_indirect.
...
From-SVN: r4516
1993-05-20 05:10:30 +00:00
Richard Kenner
c51d911af1
Update copyright notice.
...
From-SVN: r4362
1993-05-06 13:10:04 -04:00
Richard Kenner
ab6155b74f
(walk_fixup_memory_subreg): Add new arg UNCRITICAL.
...
(fixup_var_refs_insn): Call with UNCRITICAL of 1 when processing
REG_NOTES.
From-SVN: r4360
1993-05-06 12:58:33 -04:00
Doug Evans
0b2187a9ba
(assign_parms): Use mode of type, not BLKmode.
...
From-SVN: r4186
1993-04-21 00:31:18 +00:00
Doug Evans
49640f91c6
Fix style typo.
...
From-SVN: r4185
1993-04-19 19:44:49 +00:00
Doug Evans
137a2a7b83
(assign_parms): Use new FUNCTION_ARG_CALLEE_COPIES macro.
...
From-SVN: r4184
1993-04-19 19:25:29 +00:00
Richard Kenner
c1b98a9573
Treat QUAL_UNION_TYPE like UNION_TYPE when seeing if aggregate.
...
From-SVN: r4118
1993-04-13 06:47:33 -04:00
Jim Wilson
1b8297c13f
(init_function_start): Always set
...
current_funtion_returns_pcc_struct if PCC_STATIC_STRUCT_RETURN defined.
From-SVN: r4031
1993-04-06 12:28:47 -07:00
Richard Kenner
4752d3bc31
(expand_function_start): When evaluating sizes of variable types, do
...
so just for side-effects (the SAVE_EXPRs).
From-SVN: r3896
1993-03-27 13:41:59 -05:00
Richard Stallman
d1e37dc7e8
(fixup_var_refs_insns): Don't delete an insn copying
...
var to itself, if it's the end of a libcall group.
From-SVN: r3873
1993-03-25 05:43:12 +00:00
Doug Evans
461beb1055
* (assign_parms): Minor cleanup.
...
From-SVN: r3776
1993-03-18 20:27:21 +00:00
Doug Evans
682a59faae
* (assign_parms): Remove unnecessary #ifdef.
...
From-SVN: r3747
1993-03-15 21:43:27 +00:00
Doug Evans
9f67be1318
* (aggregate_value_p): RETURN_IN_MEMORY handles BLKmode values.
...
From-SVN: r3707
1993-03-11 23:55:44 +00:00
Richard Kenner
02a10449e3
(fixup_var_refs_insns): If SMALL_REGISTER_CLASSES...
...
(fixup_var_refs_insns): If SMALL_REGISTER_CLASSES, ensure we don't put
any insns between the setting of the function return register and it's use.
From-SVN: r3660
1993-03-05 17:37:11 -05:00
John Hassey
9392c110eb
(reposition_prologue_and_epilogue_notes): Allow
...
for zero length prologue and epilogue list.
From-SVN: r3465
1993-02-12 15:52:54 +00:00
Richard Kenner
75dc33195a
(promoted_input_arg): New function.
...
From-SVN: r3449
1993-02-09 18:44:25 -05:00
Richard Kenner
e15762df9d
(put_var_into_stack, fixup_var_refs_insns): Minor cleanups.
...
(fixup_var_refs_1, case SET): Correctly check for simple insns that don't
need fixups.
From-SVN: r3367
1993-01-27 13:27:18 -05:00
James Van Artsdalen
f898f03121
(fixup_var_refs_1): Set INSN_CODE to -1 before seeing if new insn form
...
is recognized.
From-SVN: r3281
1993-01-19 21:27:54 +00:00
Paul Eggert
8008b22801
# Fix misspellings in comments.
...
From-SVN: r3181
1993-01-10 20:12:31 +00:00
Richard Kenner
8c3948785b
(assign_parm): Fix typo introduced by previous change.
...
From-SVN: r3158
1993-01-08 16:12:18 -05:00
Jim Wilson
ea0d4c4b6d
(assign_parms): Pass NULL_RTX to INIT_CUMULATIVE_*.
...
From-SVN: r3107
1993-01-05 18:59:28 -08:00
Jim Wilson
77121feee4
(fixup_var_regs_insn): Update last_parm_insn when
...
insns are output after it to fix it up.
From-SVN: r3047
1993-01-01 16:41:53 -08:00
Jim Wilson
3412b298a2
(assign_parms): Emit conversions into a sequence, and
...
then output the sequence after all parameters have been moved.
From-SVN: r3025
1992-12-31 14:21:06 -08:00
Richard Kenner
2af69b62de
(assign_outer_stack_local): Align proper frame offset.
...
From-SVN: r2862
1992-12-11 07:18:03 -05:00
Torbjorn Granlund
66bcbe1954
(locate_and_pad_parm): In ARGS_GROW_DOWNWARD case,
...
don't pad to argument alignment if where_pad is downward.
From-SVN: r2614
1992-10-26 19:38:54 +00:00
Richard Stallman
b4ff474ce0
(fixup_var_refs_insns): Don't call delete_insn if not -O.
...
Make a NOTE_INSN_DELETED instead.
From-SVN: r2609
1992-10-26 05:53:07 +00:00
Richard Stallman
4cdb3e7843
(put_var_into_stack): When we operate on a pseudo
...
that holds the address, use proper modes.
From-SVN: r2552
1992-10-22 12:04:56 +00:00
Richard Stallman
2740a6786b
(find_fixup_replacement): Renamed from find_replacement.
...
From-SVN: r2490
1992-10-16 14:38:26 +00:00
Richard Stallman
a506307a2f
(pop_function_context, push_function_context):
...
Call {save,restore}_varasm_status.
From-SVN: r2423
1992-10-13 05:13:01 +00:00
Richard Stallman
9d790a4f73
(aggregate_value_p): Return 1 if regs we would use are not all call-clobbered.
...
From-SVN: r2384
1992-10-09 16:59:56 +00:00
Tom Wood
587cb682de
(assign_parms): Provide a safe value for
...
DECL_INCOMING_RTL in case of syntax errors.
From-SVN: r2375
1992-10-08 22:08:29 +00:00
Richard Stallman
5378192b09
(get_first_block_beg): New function.
...
From-SVN: r2345
1992-10-06 21:30:51 +00:00
Richard Kenner
a53e14c093
(assign_parms): If PROMOTE_FUNCTION_ARGS is defined, see if the incoming register should be used in a wider mode.
...
(assign_parms): If PROMOTE_FUNCTION_ARGS is defined, see if the incoming
register should be used in a wider mode.
(expand_function_start): Likewise for return value if PROMOTE_FUNCTION_RETURN
is defined.
From-SVN: r2263
1992-09-27 18:18:33 -04:00
Jim Wilson
f979c996cd
(push_function_context): Save epilogue_delay_list.
...
(pop_function_context): Restore epilogue_delay_list.
From-SVN: r2245
1992-09-24 22:52:48 -07:00
Richard Stallman
2baccce2f7
(put_var_into_stack): Check REG != 0 before dereference.
...
From-SVN: r2198
1992-09-21 06:46:22 +00:00
Richard Kenner
00d8a4c187
(fixup_var_refs{,_insns}): Add new parms for promoted mode and signedness;
...
all callers changed.
Insert mode conversions when required.
(fixup_var_refs_1): Add new parms for mode and signedness; handle SUBREGs
for promoted values.
(assign_parms): Promote the mode of parameters when useful for the target
machine.
From-SVN: r2175
1992-09-19 15:47:00 -04:00
Richard Stallman
7e41ffa25c
(assign_parms): Set MEM_IN_STRUCT_P right in stack slots.
...
From-SVN: r2157
1992-09-19 04:46:22 +00:00