Toshiyasu Morita
07444f1d90
fold-const.c (make_range): Always initialize arg0 and arg1.
...
* fold-const.c (make_range): Always initialize arg0 and arg1.
(fold): Simlarly for alt0 and alt1.
* function.c (fixup_var_refs_insns): Initialize insn_list.
(instantiate_virtual_regs_1): Initialize offset.
* optabs.c (expand_binop): Initialize carry_in, carry_out, op0_xhigh
and op1_xhigh.
* stmt.c (expand_end_case): Initialize minval and maxval.
From-SVN: r26632
1999-04-25 18:15:54 -06:00
Richard Henderson
4433e33948
function.c (assign_parms/STACK_BYTES): Revert last change, and that of 19 Nov.
...
* function.c (assign_parms/STACK_BYTES): Revert last change,
and that of 19 Nov.
From-SVN: r26624
1999-04-25 06:09:33 -07:00
Richard Henderson
fb5eebb932
calls.c (emit_call_1): New arg rounded_stack_size; update callers.
...
* calls.c (emit_call_1): New arg rounded_stack_size; update callers.
Update pending_stack_adjust based on this value.
(compute_argument_block_size): Include pending_stack_adjust in
PREFERRED_STACK_BOUNDARY alignment.
* function.c (assign_parms): Don't round to PREFERRED_STACK_BOUNDARY.
From-SVN: r26623
1999-04-25 05:31:52 -07:00
John Wehle
54ff41b717
output.h (current_function_is_leaf, [...]): Declare.
...
* output.h (current_function_is_leaf,
current_function_uses_only_leaf_regs): Declare.
* function.c (current_function_is_leaf,
current_function_uses_only_leaf_regs): Define.
(init_function_start): Initialize current_function_is_leaf
and current_function_uses_only_leaf_regs.
* final.c (leaf_function): Don't define.
(final_start_function): Replace uses of leaf_function with
current_function_uses_only_leaf_regs.
* toplev.c (rest_of_compilation): Set current_function_is_leaf
prior to invoking local register allocation.
(rest_of_compilation): Replace uses of leaf_function with
current_function_uses_only_leaf_regs.
* dbxout.c (dbxout_symbol, dbxout_parms): Likewise.
* dwarf2out.c (add_location_or_const_vaule_attribute): Likewise.
* dwarfout.c (add_location_or_const_value_attribute): Likewise.
* sdbout.c (sdbout_symbol): Likewise.
* sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
* sparc.c (eligible_for_epilogue_delay, output_return,
sparc_return_peephole_ok): Likewise.
* sparc.md (leaf_function attribute, untyped_return): Likewise.
* i386.c (ix86_compute_frame_size): Don't align the stack
for leaf functions which don't allocate any stack slots.
* tm.texi: Update documentation.
From-SVN: r26538
1999-04-18 13:09:37 +00:00
Andreas Schwab
0f11903b49
function.c (assign_parms): Undo change of June 9.
...
* function.c (assign_parms): Undo change of June 9.
Brought over from the gcc2 tree.
From-SVN: r26027
1999-03-27 16:08:37 -07:00
Mark Mitchell
fe9b4957b5
function.c: Include hash.h.
...
* function.c: Include hash.h.
(insns_for_mem_entry): New struct.
(put_reg_into_stack): Take an optional hash-table mapping MEMs to
the INSNs that use them.
(fixup_var_refs): Likewise.
(put_addressof_into_stack): Likewise.
(purge_addressof_1): Likewise. Keep the hash-table up to date if
we add new instructions.
(fixup_var_refs_insns): Use it to avoid searching the entire
instruction chain.
(insns_for_mem_newfunc): New function.
(insns_for_mem_comp): Likewise.
(insns_for_mem_walk): Likewise.
(compute_insns_for_mem): Likewise.
(pop_function_context_from): Pass NULL for the hash-table.
(put_var_into_stack): Likewise.
(gen_mem_addressof): Likewise.
(flush_addressof): Likewise.
(purge_addressof): Call compute_insns_for_mem to pre-compute the
hash table.
* Makefile.in (OBJS): Include hash.o.
(function.o): Depend on hash.h.
* Makefile.in (OBJS): Don't mention hash.o.
(OBJDEPS): Likewise.
From-SVN: r25922
1999-03-23 07:51:12 +00:00
Kaveh R. Ghazi
54ea1de9f3
Warning fixes:
...
* c-lex.c (yylex): Remove unused variable `bytes'.
* flow.c (print_rtl_with_bb): Cast the return value of alloca.
* function.c (assign_parms): Wrap variable `varargs_setup' in
macro SETUP_INCOMING_VARARGS.
(thread_prologue_and_epilogue_insns): Mark parameter `f' with
ATTRIBUTE_UNUSED.
* local-alloc.c (no_equiv): Likewise for parameter `store'.
* sched.c (schedule_insns): Remove unused variables `insn' and `next'.
* tlink.c (symbol_hash_newfunc, symbol_hash_lookup,
file_hash_newfunc, file_hash_lookup, demangled_hash_newfunc,
demangled_hash_lookup, symbol_push, symbol_pop, file_push,
file_pop, tlink_init, tlink_execute, frob_extension,
obstack_fgets, tfgets, pfgets, freadsym, read_repo_file,
maybe_tweak, recompile_files, read_repo_files,
demangle_new_symbols, scan_linker_output): Add static prototype.
(symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc):
Make the third argument a `hash_table_key'.
* toplev.c (debug_start_source_file): Mark parameter `filename'
with ATTRIBUTE_UNUSED.
From-SVN: r25871
1999-03-20 19:21:31 +00:00
Kaveh R. Ghazi
91813b2835
Warning fixes:
...
* calls.c (initialize_argument_information): Mark parameters
`num_actuals' and `n_named_args' with ATTRIBUTE_UNUSED.
* dbxout.c (dbxout_start_new_source_file): Likewise for parameter
`filename'.
(dbxout_finish): Likewise for parameters `file' and `filename'.
(dbxout_prepare_symbol): Likewise for parameter `decl'.
(dbxout_begin_function): Likewise.
* explow.c (hard_function_value): Likewise for parameter `func'.
* function.c (locate_and_pad_parm): Likewise for parameter `fndecl'.
* expmed.c (expand_divmod): Omit unused argument to `expand_abs'.
* expr.c (expand_expr): Likewise.
* expr.h (expand_abs): Delete unused argument from prototype.
* optabs.c (expand_abs): Remove unused parameter `unsignedp'.
* sdbout.c (sdbout_init): Mark parameter `syms' with ATTRIBUTE_UNUSED.
(sdbout_end_block): Likewise for parameter `n'.
* toplev.c (debug_define): Likewise for parameters `lineno' and
`buffer'.
(debug_undef): Likewise.
* varasm.c (named_section): Likewise for parameter 'reloc'.
(assemble_external): Likewise for parameter `decl'.
(assemble_alias): Likewise for parameter `target'.
From-SVN: r25858
1999-03-19 08:50:14 +00:00
Richard Henderson
5f98f7c481
function.c (fixup_var_refs_1): First try moving the expression directly into a register.
...
* function.c (fixup_var_refs_1): First try moving the expression
directly into a register. Don't separate cc0 setter and user.
From-SVN: r25821
1999-03-17 04:17:02 -08:00
John Wehle
6f67a30d15
function.c (assign_stack_temp_for_type): Abort if mode == Blkmode and align is less than BIGGEST_ALIGNMENT / BITS_PER_UNIT.
...
* function.c (assign_stack_temp_for_type): Abort
if mode == Blkmode and align is less than
BIGGEST_ALIGNMENT / BITS_PER_UNIT.
(assign_stack_temp_for_type): Round the size parameter
passed to assign_stack_local instead of size itself.
Bootstrapped on the PA and x86.
From-SVN: r25593
1999-03-04 18:19:25 -07:00
Jeffrey A Law
202d316417
function.c (current_function_has_computed_jump): Remove duplicate definition.
...
* function.c (current_function_has_computed_jump): Remove duplicate
definition.
From-SVN: r25571
1999-03-03 16:13:41 -07:00
Richard Henderson
e881bb1b1b
Flow rewrite to use basic block structures and edge lists.
...
From-SVN: r25450
1999-02-25 15:45:42 -08:00
J"orn Rennecke
9ab70a9bd7
sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures in registers.
...
* sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures
in registers.
* expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
* function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED.
* calls.c (expand_call): Likewise.
* sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
stdarg arguments.
* sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
(FUNCTION_ARG): For TARGET_HITACHI, don't pass unnamed
arguments in registers.
(PRETEND_OUTGOING_VARARGS_NAMED): Define.
* va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
flavour varargs.
From-SVN: r25440
1999-02-25 14:02:32 +00:00
Mark Mitchell
a4c6502a66
cse.c (dump_class): New function.
...
* cse.c (dump_class): New function.
(invalidate_memory): Fix typo in comment.
* function.c (temp_slot): Add an alias set field.
(assign_stack_temp): Only reuse slots if they will have the
same alias set as before.
(combine_temp_slots): Don't combine if -fstrict-aliasing;
that's unsafe.
* rtl.c (copy_rtx): Copy all the flags (in particular,
MEM_SCALAR_P).
From-SVN: r25372
1999-02-22 13:34:33 +00:00
Jeffrey A Law
c87a0a3994
function.c (assign_stack_temp_for_type): Round SIZE before calling assign_stack_local for BLKmode slots.
...
* function.c (assign_stack_temp_for_type): Round SIZE before calling
assign_stack_local for BLKmode slots.
From-SVN: r25290
1999-02-18 10:51:58 -07:00
John Wehle
d16790f212
function.c (assign_stack_temp_for_type): Clear best_p when an exact match is found.
...
* function.c (assign_stack_temp_for_type): Clear best_p
when an exact match is found.
* i386.h (LOCAL_ALIGNMENT): Define.
* function.c (assign_stack_local, assign_outer_stack_local): Use it.
(assign_stack_temp_for_type): New function based on assign_stack_temp.
(assign_stack_temp): Call it.
(assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp.
* stmt.c: Use assign_temp, not assign_stack_temp.
* tm.texi: Document LOCAL_ALIGNMENT.
From-SVN: r25143
1999-02-10 16:10:43 -07:00
Richard Henderson
acd693d10c
output.h (current_function_has_computed_jump): Rename from current_function_addresses_labels.
...
* output.h (current_function_has_computed_jump): Rename from
current_function_addresses_labels.
* function.h (struct function): Likewise for addresses_labels member.
* rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise.
* function.c (current_function_has_computed_jump): Likewise.
Update all references.
* integrate.c (function_cannot_inline_p):
Test current_function_has_computed_jump instead of addresses_labels.
(initialize_for_inline): Likewise save.
(output_inline_function): Likewise restore.
* expr.c (expand_expr): Don't reference addresses_labels variables.
* stmt.c (expand_computed_goto): Set has_computed_jump.
From-SVN: r25100
1999-02-08 13:39:33 -08:00
Dave Brolley
d33c2956a4
function.c (fixup_var_refs): Scan catch_clauses too.
...
Fri Feb 5 17:08:01 1999 Dave Brolley <brolley@cygnus.com>
* function.c (fixup_var_refs): Scan catch_clauses too.
From-SVN: r25049
1999-02-05 09:12:38 -05:00
Dave Brolley
89e99eea80
emit-rtl.c (remove_insn): New function.
...
Fri Jan 29 18:26:07 1999 Dave Brolley <brolley@cygnus.com>
* emit-rtl.c (remove_insn): New function.
* rtl.h (remove_insn): Add prototype.
* function.c (reposition_prologue_and_epilogue_notes): Call remove_insn.
From-SVN: r24908
1999-01-29 10:25:17 -05:00
J"orn Rennecke
d91dfff4d1
function.c (purge_addressof_1): Handle case when a register has been used in a wider mode.
...
* function.c (purge_addressof_1): Handle case when a register
has been used in a wider mode.
From-SVN: r24887
1999-01-27 11:35:30 +00:00
Jeffrey A Law
ab87f8c8d1
Merge in gcc2 snapshot 19980929. See gcc/ChangeLog and gcc/FSFChangeLog for
...
details.
From-SVN: r24879
1999-01-26 18:43:17 -07:00
Jim Wilson
ea0f9a859f
Fix i960 build failure with unrecognizable insn.
...
* function.c (expand_function_end): Pass arg_pointer_save_area to
validize_mem before using it. Emit code into a sequence.
From-SVN: r24872
1999-01-26 05:34:42 -08:00
Dave Brolley
efd8cba0c8
function.c (assign_parms): Save and restore setting of TREE_USED (parm).
...
Wed Jan 20 18:15:08 1999 Dave Brolley <brolley@cygnus.com>
* function.c (assign_parms): Save and restore setting of
TREE_USED (parm).
From-SVN: r24789
1999-01-20 10:26:31 -05:00
Mark Mitchell
c6df88cbec
rtl.h (rtx_def): Update documentation.
...
* rtl.h (rtx_def): Update documentation.
(MEM_IN_STRUCT_P): Likewise.
(MEM_SCALAR_P): New macro.
(MEM_COPY_ATTRIBUTES): Likewise.
(MEM_SET_IN_STRUCT_P): Likewise.
* rtl.texi (MEM_SCALAR_P): Document.
* alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
(fixed_scalar_and_varying_struct_p): New function. Use
MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
(aliases_everything_p): Likewise.
(true_dependence): Use them.
(write_dependence_p): New function, containing code common to
anti_dependence and output_dependence.
(anti_dependence): Use it.
(output_dependence): Likewise.
* calls.c (save_fixed_argument_area): Don't clear
MEM_IN_STRUCT_P.
(expand_call): Use MEM_SET_IN_STRUCT_P.
(emit_library_call): Don't clear MEM_IN_STRUCT_P.
(emit_library_call_value): Likewise.
(store_one_arg): Use MEM_SET_IN_STRUCT_P.
* combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
(make_extraction): Likewise.
(simplify_shift_const): Likewise.
(gen_lowpart_for_combine): Likewise.
* cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
* emit-rtl.c (operand_subword): Likewise.
(change_address): Likewise.
* explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
* expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
(emit_group_store): Use MEM_SET_IN_STRUCT_P.
(copy_blkmode_from_reg): Likewise.
(store_field): Likewise.
(expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
heuristically. Use MEM_SET_IN_STRUCT_P.
(get_memory_rtx): Likewise.
* final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
* function.c (assign_stack_temp): Clear MEM_SCALAR_P and
MEM_ALIAS_SET on newly returned MEMs.
(assign_temp): Use MEM_SET_IN_STRUCT_P.
(put_reg_into_stack): Likewise.
(fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
(gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
(assign_parms): Likewise.
(expand_function): Likewise.
* integrate.c (expand_inline_function): Likewise.
(copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
* loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
* optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
* print-rtl.c (print_rtx): Print /f for frame_related.
* recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
* reload1.c (reload): Copy MEM_SCALAR_P as well.
* stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
(expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
* varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
(output_constant_def): Likewise.
* a29k.c (a29k_set_memflags_1): Take scalar_p.
Set MEM_SCALAR_P.
(a29k_set_memflags): Use it.
* alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
* c4x.c (c4x_scan_for_ld): Likewise.
* h8300.c (fix_bit_operand): Likewise.
* m88k.c (legitimize_address): Likewise.
(block_move_loop): Likewise.
(block_move_no_loop): Likewise.
(block_move_sequence): Likewise.
(m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
* mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
* rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
* sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
* arm.h (arm_gen_load_multiple): Take scalar_p.
(arm_store_load_multiple): Likewise.
* arm.c (arm_gen_load_multiple): Likewise.
(arm_gen_store_multiple): Likewise.
(arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
From-SVN: r24759
1999-01-19 10:32:33 +00:00
Richard Henderson
fbdfe39cf2
function.c (purge_addressof_1): If the note accesses a mem+addressof in a wider mode than any replacement...
...
* function.c (purge_addressof_1): If the note accesses a mem+addressof
in a wider mode than any replacement, adjust the cached replacement.
Cache trivial substitutions as well.
From-SVN: r24629
1999-01-11 16:24:25 -08:00
Richard Henderson
a5cad80034
Update copyrights.
...
From-SVN: r24624
1999-01-11 15:15:28 -08:00
Richard Henderson
3b413743e0
basic-block.h (basic_block_head): Rename to x_basic_block_head.
...
* basic-block.h (basic_block_head): Rename to x_basic_block_head.
(basic_block_end): Rename to x_basic_block_end.
(BLOCK_HEAD, BLOCK_END): Update.
* caller-save.c: Change basic_block_head/end references to
BLOCK_HEAD/END.
* combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
* graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
* regmove.c, reload1.c, reorg.c, sched.c: Likewise.
From-SVN: r24622
1999-01-11 14:37:20 -08:00
Bernd Schmidt
ba716ac925
function.c (nonlocal_goto_handler_slots): Renamed from nonlocal_goto_handler_slot; now an EXPR_LIST chain.
...
* function.c (nonlocal_goto_handler_slots): Renamed from
nonlocal_goto_handler_slot; now an EXPR_LIST chain.
(push_function_context_to): Adjust for this change.
(pop_function_context_from): Likewise.
(init_function_start): Likewise.
(expand_function_end): Likewise.
* function.h (struct function): Likewise.
* calls.c (expand_call): Likewise.
* explow.c (allocate_dynamic_stack_space): Likewise.
* expr.h (nonlocal_goto_handler_slots): Rename its declaration.
* stmt.c (declare_nonlocal_label): Make a new handler slot for each
label.
(expand_goto): When doing a nonlocal goto, find corresponding handler
slot for it. Don't put the label address in the static chain register.
(expand_end_bindings): Break out nonlocal goto handling code into
three new functions.
(expand_nl_handler_label, expand_nl_goto_receiver,
expand_nl_goto_receivers): New static functions, broken out of
expand_end_bindings and adapted to create one handler per nonlocal
label.
* function.c (delete_handlers): Delete insn if it references any of
the nonlocal goto handler slots.
* i960.md (nonlocal_goto): Comment out code that modifies
static_chain_rtx.
* sparc.md (nonlocal_goto): Likewise.
(goto_handler_and_restore_v9): Comment out.
(goto_handler_and_restore_v9_sp64): Comment out.
From-SVN: r23732
1998-11-20 00:37:42 -07:00
Bernd Schmidt
c795bca923
expr.c (STACK_BYTES): Delete unused macro.
...
* expr.c (STACK_BYTES): Delete unused macro.
* calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
(STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
(expand_call): Likewise.
(emit_library_call): Likewise.
(emit_library_call_value): Likewise.
* function.c: Provide default for PREFERRED_STACK_BOUNDARY.
(STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
* explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
(round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
(allocate_dynamic_stack_space): Likewise.
* tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
(STACK_BOUNDARY): Update description to reflect the new situation.
From-SVN: r23730
1998-11-19 15:47:55 -07:00
J"orn Rennecke
de0dd9345e
function.c (purge_addressof_1): Unshare rtl created by store_bit_field.
...
* function.c (purge_addressof_1): Unshare rtl created by
store_bit_field.
From-SVN: r23670
1998-11-15 20:43:19 +00:00
Richard Henderson
da9b1f9ca0
function.c (purge_addressof): Clear purge_addressof_replacements only after processing the whole function.
...
* function.c (purge_addressof): Clear purge_addressof_replacements
only after processing the whole function.
From-SVN: r23554
1998-11-06 18:51:21 -08:00
Andreas Schwab
b5bd3b3c46
Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
...
Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* function.c (purge_addressof_1): Instead of aborting when a
bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
work just put the ADDRESSOF on stack. Otherwise remember all such
successfull replacements, so that exactly the same replacements
can be made on the REG_NOTEs. Remove the special case for CALL
insns again.
(purge_addressof_replacements): New variable.
(purge_addressof): Clear it at end.
From-SVN: r23405
1998-10-28 08:46:46 -08:00
Jeff Law
18e765cbda
[multiple changes]
...
1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
* reorg.c (steal_delay_list_from_target) Check for insns that
modify the condition codes and effect the direction of the jump
in the sequence.
Sat Oct 17 13:09:09 1998 Graham <grahams@rcp.co.uk>
* function.c (purge_addressof_1): Replace call to
emit_insns_before() with emit_insn_before().
From-SVN: r23189
1998-10-19 14:23:44 -06:00
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
Richard Kenner
5a73491b0f
(instantiate_decl): New function.
...
(instantiate_decls{,_1}): Call it.
From-SVN: r1896
1992-08-19 08:48:39 -04:00
Jim Wilson
2654605aa7
(assign_parms): When copy arg passed by invisible
...
reference to pseudo reg, don't use nominal_mode.
From-SVN: r1876
1992-08-17 11:53:26 -07:00
Tom Wood
109140655e
(contains): Return the number of insns.
...
(reposition_prologue_and_epilogue_notes): Count all the prologue and
epilogue insns.
From-SVN: r1814
1992-08-13 20:49:10 +00:00
Jim Wilson
fc289cd166
(identify_blocks): Handle case where no block nodes exist.
...
(identify_blocks): Handle case where no block nodes
exist. Use xmalloc not alloca for block_vector.
(reorder_blocks): New argument top_block. Handle case where no
block nodes exist. Always clear BLOCK_SUBBLOCKS (block) when
adding it to the block tree.
(all_blocks): Handle case where vector is zero. Store current
block at offset 0 in vector, not n_blocks. Don't count current
block twice in n_blocks.
From-SVN: r1797
1992-08-11 12:49:26 -07:00
Richard Kenner
1b2ac43859
(identify_blocks, reorder_blocks): Don't use SET_NOTE_BLOCK_NUMBER.
...
From-SVN: r1756
1992-08-02 21:43:22 -04:00
Richard Kenner
bf52625270
(reposition_prologue_and_epilogue_notes): Search for the notes without using...
...
(reposition_prologue_and_epilogue_notes): Search for the notes without
using basic_block_end[0] or basic_block_head[N-1].
From-SVN: r1735
1992-07-31 08:18:06 -04:00
Richard Stallman
16bae307a6
(assign_parms): Use const0_rtx as DECL_RTL and as
...
DECL_INCOMING_RTL if tmode of parm is void.
From-SVN: r1635
1992-07-20 02:42:59 +00:00
Richard Kenner
0c2e838b25
(instantiate_decls{,_1}): Don't do instantiation here if the address
...
is mode-dependent.
From-SVN: r1615
1992-07-17 05:58:38 -04:00
Richard Stallman
74bd77a8c6
entered into RCS
...
From-SVN: r1594
1992-07-16 19:03:06 +00:00
Richard Stallman
467456d054
*** empty log message ***
...
From-SVN: r1572
1992-07-12 18:10:29 +00:00
Richard Stallman
a82ad57075
*** empty log message ***
...
From-SVN: r1568
1992-07-12 02:50:09 +00:00
Charles Hannum
5f4f0e2294
*** empty log message ***
...
From-SVN: r1471
1992-07-06 20:04:00 +00:00
Richard Stallman
fdbfad8438
*** empty log message ***
...
From-SVN: r1425
1992-07-04 16:59:59 +00:00
Tom Wood
bdac5f5848
*** empty log message ***
...
From-SVN: r1336
1992-06-29 16:04:35 +00:00
Jim Wilson
3e2481e914
*** empty log message ***
...
From-SVN: r1250
1992-06-23 16:45:23 -07:00
Jim Wilson
d9ca49d580
*** empty log message ***
...
From-SVN: r1103
1992-05-27 14:52:26 -07:00
Jim Wilson
29008b51e3
*** empty log message ***
...
From-SVN: r1025
1992-05-19 17:41:48 -07:00
Richard Stallman
e16c591a11
*** empty log message ***
...
From-SVN: r985
1992-05-15 05:23:58 +00:00
Richard Stallman
6dc42e49d3
*** empty log message ***
...
From-SVN: r930
1992-05-07 06:41:23 +00:00
Richard Kenner
59257ff7b8
*** empty log message ***
...
From-SVN: r915
1992-05-06 07:35:29 -04:00
Jim Wilson
6f90e075cd
*** empty log message ***
...
From-SVN: r905
1992-05-05 10:27:49 -07:00
Richard Stallman
6461be142d
*** empty log message ***
...
From-SVN: r582
1992-03-24 19:01:29 +00:00
Tom Wood
b335c2ccab
*** empty log message ***
...
From-SVN: r526
1992-03-19 20:41:45 +00:00
Richard Kenner
86f8eff3d6
*** empty log message ***
...
From-SVN: r417
1992-03-07 18:15:24 -05:00
Richard Stallman
6f086dfc7c
Initial revision
...
From-SVN: r339
1992-02-18 07:12:51 +00:00