Commit Graph

311 Commits

Author SHA1 Message Date
Jeff Law
1474e30354 [multiple changes]
Thu May 20 10:00:42 1999   Stephen L Moshier  <moshier@world.std.com>
        * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
        * function.c (assign_stack_local): Align stack slot propertly.
        (assign_outer_stack_local): Likewise.

From-SVN: r27073
1999-05-20 16:22:34 -06:00
Vladimir Makarov
8b04083bec function.c (purge_addressof_replacements): Rename into purge_bitfield_addressof_replacements.
Wed May  5 16:26:13 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
	* function.c (purge_addressof_replacements): Rename into
 	purge_bitfield_addressof_replacements.
	(purge_addressof_replacements): New variable.
	(purge_addressof_1): Add code for changing addressof in notes for
 	field values which are extracted by usage MEM with narrower mode.
	(purge_addressof): Initialize purge_bitfield_addressof_replacements.

From-SVN: r26784
1999-05-05 13:30:51 +00:00
Mumit Khan
6a9c4aed1a function.c (put_var_into_stack): Change ptr_mode to Pmode in setup for chkr_set_right_libfunc calls.
* function.c (put_var_into_stack): Change ptr_mode to Pmode
        in setup for chkr_set_right_libfunc calls.
        (assign_params): Likewise.
        * expr.c (emit_push_insn): Change ptr_mode to Pmode in
        setup for chkr_copy_bitmap_libfunc and chkr_set_right_libfunc calls.
        (expand_assignment): Change ptr_mode to Pmode in
        setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc.
        (store_expr): Change ptr_mode to Pmode in
        setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc.
        (expand_expr): Change ptr_mode to Pmode in
        setup for chkr_check_addr_libfunc.
        (expand_builtin): Change ptr_mode to Pmode in
        setup for chkr_check_str_libfunc, chkr_copy_bitmap_libfunc and
        chkr_check_addr_libfunc.
        * calls.c (rtx_for_function_call): Change ptr_mode to Pmode in
        setup for chkr_check_exec_libfunc.
        (expand_call): Change ptr_mode to Pmode in
        setup for chkr_set_right_libfunc.
        (expand_call): Change ptr_mode to Pmode in
        setup for chkr_set_right_libfunc.
        (store_one_arg): Change ptr_mode to Pmode in
        setup for chkr_set_right_libfunc.

Co-Authored-By: Donn Terry <donn@interix.com>

From-SVN: r26664
1999-04-26 16:51:09 -06:00
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