Commit Graph

335 Commits

Author SHA1 Message Date
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
Gavin Romig-Koch c36fce9a42 calls.c (expand_call): Encapsulate code into copy_blkmode_from_reg.
* calls.c (expand_call) : Encapsulate code into
	copy_blkmode_from_reg.
	* expr.c (copy_blkmode_from_reg): New function.
	* expr.h (copy_blkmode_from_reg): New function.
	* integrate.c (function_cannot_inline_p): We can inline
	these now.
	(expand_inline_function): Use copy_blkmode_from_reg
	if needed.  Avoid creating BLKmode REGs.
	(copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
	object.

From-SVN: r22714
1998-10-01 13:00:21 +00:00
Andrew MacLeod 43566944af expr.h (eh_rtime_match_libfunc): New extern declaration.
Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
	* expr.h (eh_rtime_match_libfunc): New extern declaration.
	* optabs.c (init_optabs): Set eh_rtime_match_libfunc.
	* except.c (start_catch_handler): Use eh_rtime_match_libfunc.
	* libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
	NULL. Only include <stdio.h> if inhibit_libc is not defined.

From-SVN: r22532
1998-09-21 14:23:16 +00: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
J"orn Rennecke 41b083c42e expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN to the first insn of the sequence.
* expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN
	to the first insn of the sequence.

From-SVN: r20997
1998-07-07 14:26:49 +01:00
David Edelsohn 39403d8233 expr.h (STACK_SIZE_MODE): New macro.
* expr.h (STACK_SIZE_MODE): New macro.
        * explow.c (allocate_dynamic_stack_space): Use it for
        mode of allocate_stack pattern increment operand.
        * tm.texi (STACK_SAVEAREA_MODE, STACK_SIZE_MODE): Document.
        * md.texi (stack_save_block, ...): Reflect use of macro.
        * rs6000.h (PROMOTE_MODE): Always promote to word_mode.
        (PROMOTE_FUNCTION_ARGS): Define.
        (PROMOTE_FUNCTION_RETURN): Define.
        (FUNCTION_VALUE): Promote to word_mode if smaller.
        Convert to gen_rtx_FOO.
        * rs6000.md (call_indirect): Store doubleword in 64-bit mode.
        Convert to gen_rtx_FOO.

From-SVN: r20893
1998-07-02 07:53:24 -04: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
John Carr e0cd077072 haifa-sched.c (haifa_classify_insn): TRAP_IF is risky.
* haifa-sched.c (haifa_classify_insn): TRAP_IF is risky.
	(sched_analyze_2): Allow scheduling TRAP_IF.
	* reorg.c (mark_referenced_resources): Examine operands of TRAP_IF.
	* rtl.h (TRAP_CODE): New macro.
	* rtl.def (TRAP_IF): Change second operand type to rtx.
	* optabs.c (gen_cond_trap): New function.
	(init_traps): New function.
	(init_optabs): Call init_traps.
	* expr.h: Declare gen_cond_trap.
	* jump.c (jump_optimize): Optimize jumps to and around traps.
	* sparc.md: Define trap instructions.
	* rs6000.md: Define trap instructions.
	* rs6000.c (print_operand): New code 'V' for trap condition.
	(trap_comparison_operator): New function.
	* m88k.md: Update use of TRAP_IF.
	* tree.h (enum built_in_function): New function code BUILT_IN_TRAP.
	* c-decl.c (init_decl_processing): New builtin __builtin_trap.
	* expr.c (expand_builtin): Handle BUILT_IN_TRAP.
	* expr.c (expand_builtin): Error if __builtin_longjmp second argument
	is not 1.

From-SVN: r20543
1998-06-17 16:14:09 +00:00
David Edelsohn a260abc996 tree.c (get_inner_array_type): New function.
Thu Jun  4 14:35:27 1998  David Edelsohn  <edelsohn@mhpcc.edu>
	* tree.c (get_inner_array_type): New function.
	* tree.h (get_inner_array_type): Prototype.
	* expr.h (STACK_SAVEAREA_MODE): New macro.
	* expr.c (expand_builtin_setjmp): Initialize sa_mode using
	STACK_SAVEAREA_MODE.
	(expand_builtin_longjmp): Likewise.
	* explow.c (emit_stack_save): Likewise.
	(allocate_dynamic_stack_space): Use Pmode not insn_operand_mode.
	* rs6000/aix41.h (ASM_CPU_SPEC): Define relative to ASM_DEFAULT_SPEC.
	(CPP_CPU_SPEC): Define relative to CPU_DEFAULT_SPEC.
	* rs6000/aix43.h: New file.
	* rs6000/t-aix43: New file.
	* rs6000/x-aix41: New file.
	* rs6000/x-aix43: New file.
	* configure.in (rs6000-ibm-aix*): Use them.
	* rs6000/powerpc.h: Delete.
	* rs6000/sysv4.h: Move necessary powerpc.h definitions to here.
	* rs6000/netware.h: and here.
	* rs6000/win-nt.h: and here.
	* rs6000/rs6000.c (processor_target_table, 620): Do not affect
	MASK_POWERPC64.
	(rs6000_override_options): Ignore flag_pic for AIX.
	(rs6000_immed_double_const): Delete.
	(u_short_cint_operand): Don't assume 32-bit CONST_INT.
	(reg_or_u_short_operand): Don't assume 32-bit CONST_INT.
	(num_insns_constant): mask64_operand() is 2 insns.
	(logical_operand): Don't assume 32-bit CONST_INT.
	(non_logical_cint_operand): Don't assume 32-bit CONST_INT.
	(easy_fp_constant): Any CONST_DOUBLE_HIGH is okay for 64-bit.
	(mask_constant): HOST_WIDE_INT parameter.
	(non_and_cint_operand): Delete.
	(mask64_operand): New function.
	(and64_operand): New function.
	(function_arg_advance): DImode arguments do not need special
	alignment when 64-bit.
	(function_arg): Likewise.
	(setup_incoming_varargs): Reverse reg_size assignment.
	(print_operand): HOST_WIDE_INT second parameter.
	(print_operand, 'B'): New case.
	(print_operand, 'M'): Fix typo in lossage string.
	(print_operandm 'S'): New case.
	(rs6000_stack_info): Reverse reg_size assignment.  Use total_raw_size
	to compute AIX push_p.  Use reg_size to compute {cr,lr}_save_offset.
	(rs6000_output_load_toc_table): Reverse init_ptr assignment.  Use
	TARGET_64BIT not TARGET_POWERPC64.  Convert fprintf to fputs.
	Load GOT highpart, don't add it.  Add lowpart with {cal|la}.
	(rs6000_allocate_stack_space): Use {cal|la}.
	(output_epilog): Use {cal|la}
	(output_function_profiler): Add call glue to mcount call.
	Load GOT highpart, don't add it.  Add lowpart with {cal|la}.
	* rs6000/rs6000.h (TARGET_SWITCHES): Add powerpc64.
	(STACK_BOUNDARY): Depend on TARGET_32BIT.
	(ADJUST_FIELD_ALIGN): Calculate array alignment using innermost type.
	(CONST_OK_FOR_LETTER_P): Don't assume 32-bit CONST_INT.
	(EXTRA_CONSTRAINTS): Remove NT 'S' and 'T'.  Replace 'S' with
	64-bit mask operand.
	(RS6000_SAVE_TOC): Depend on TARGET_32BIT.
	(STACK_SAVEAREA_MODE): New macro.
	(LEGITIMATE_CONSTANT_P): DImode okay for 64bit.
	(LEGITIMIZE_RELOAD_ADDRESS): New macro.
	(RTX_COSTS, AND/IOR/XOR): Reflect current machine description.
	(ASM_FILE_START): Emit 64-bit ABI directive.
	(ASM_DECLARE_FUNCTION_NAME): Align CSECT on doubleword in 64-bit mode.
	(ASM_OUTPUT_SPECIAL_POOL_ENTRY): DImode okay for 64-bit.
	(PREDICATE_CODES): Add "and64_operand" and "mask64_operand".
	Delete "non_and_cint_operand".  "input_operand" includes CONST_DOUBLE.
	* rs6000/rs6000.md (iorsi3, xorsi3): Use HOST_WIDE_INT for mask.
	Restore define_splits.
	(floatsidf2, floatunssidf2): Remove !TARGET_POWERPC64 final constraint.
	(floatsidf2_internal, floatunssidf2_internal2): Likewise.
	Do not specify base register operand mode.
	(floatsidf2_loadaddr): Do not specify base register operand mode.
	(floatsidf2_store1, floatsidf2_store2): Operand 1 must be base
	register; do not specify mode.  Remove !TARGET_POWERPC64 final
	constraint.
	(floatsidf2_load): Do not specify base register operand mode.  Remove
	!TARGET_POWERPC64 final constraint.
	(fix_truncdfsi2_internal, fix_truncdfsi2_{store,load}): Do not specify
	base register operand mode.
	(adddi3): Split large constants early.
	(absdi3): Shift by 63, not 31.
	(*mulsidi3_ppc64): New pattern.
	(rotldi3): Add masking combiner patterns.
	(anddi3): Add rldic{r,l} masking.  Remove split of large constants
	because PPC insns zero-extend.
	(iordi3, xordi3): Split large constants early.
	(movsi matcher): Remove S and T constraints.
	(movsf const_double): create SImode constant from TARGET_DOUBLE.
	(movdf_hardfloat32): Add default abort() case.
	(movdf easy_fp_const): create DImode constant from TARGET_DOUBLE.
	(movdi): Remove 64-bit constant generator.  Try to convert
	CONST_DOUBLE to CONST_INT.  Handle TOC memory constants.
	(movdi_32): Add default abort() case.
	(movdi_64): Add numerous ways to split 64-bit constants.
	Make catch-all define_split more optimal and never FAIL.
	(movti_ppc64): Add default abort() case.
	(allocate_stack): Remove operand modes.  Use Pmode.
	(restore_stack_block): Remove operand modes.  Generate Pmode
	temporary.
	(save_stack_nonlocal, restore_stack_nonlocal):  Generate Pmode
	temporary.  Save area is double Pmode.
	(call_indirect_aix64, call_value_indirect_aix64): New patterns.
	(call, call_value): Do not specify address operand mode.  Choose
	appropriate AIX ABI.
	(*call_local64, *ret_call_local64): New patterns.
	(*call_nonlocal_aix64, *ret_call_nonlocal_aix64): New patterns.
	(*ret_call_nonlocal_aix32): Use call_value_indirect for REG.
	(compare): Materialize DImode truthvalues.

From-SVN: r20229
1998-06-04 07:47:15 -04: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 0586a4ce70 expr.h (mark_seen_cases): Add declaration, but only when tree.h has been included.
* expr.h (mark_seen_cases): Add declaration, but only when tree.h
        has been included.

From-SVN: r19605
1998-05-06 16:22:14 -06:00
Jeffrey A Law df03cab511 stmt.c (mark_seen_cases): Make it have external linkage again.
* stmt.c (mark_seen_cases): Make it have external linkage again.
        * expr.h (mark_seen_cases): Add declaration.
Chill wants to use mark_seen_cases....

From-SVN: r19603
1998-05-06 16:03:21 -06:00
Jeff Law 38e012594e typo typo fixes fixes
From-SVN: r19601
1998-05-06 15:09:07 -06: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
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
Richard Henderson 6fd1c67b8b expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to branch to on first and subsequent...
* expr.c (expand_builtin_setjmp): Accept two new arguments for
 the labels to branch to on first and subsequent executions.  Don't
 play with __dummy.  Rename `setjmp' insn to `builtin_setjmp_setup',
 and provide it with the jmp_buf.  Use only one of
 `builtin_setjmp_receiver' or `nonlocal_goto_receiver',
 and provide the former with the target label.
 (expand_builtin) [BUILTIN_SETJMP]: Generate a label for use by setjmp.
 (expand_builtin) [BUILTIN_LONGJMP]: Split out to ...
 (expand_builtin_longjmp): ... here.  Recognize a `builtin_longjmp'
 insn to replace all of the normal nonlocal_goto code.  Don't play
 with __dummy.  Correct arguments to nonlocal_goto.
 * expr.h (expand_builtin_setjmp): Update prototype.
 * except.c (start_dynamic_handler): When using builtin_setjmp,
 generate more accurate flow information.
 * alpha.md (nonlocal_goto_receiver_osf): Delete.
 (nonlocal_goto_receiver_vms): Rename to nonlocal_goto_receiver.
 (builtin_longjmp, builtin_setjmp_receiver): New.
 * sparc.md (update_return): Disambiguate unspec number.
 (nonlocal_goto): Rearrange arguments to match caller in except.c.
 (builtin_setjmp_setup): Rename from setjmp.  Match and ignore the
 jmp_buf operand.
 * mips.md (nonlocal_goto_receiver, builtin_setjmp_receiver): Remove.
 (builtin_setjmp_setup*, builtin_longjmp): New.

From-SVN: r17602
1998-02-02 11:28:57 -08: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
Jeffrey A Law d9a4ee007b * expr.h (MUST_PASS_IN_STACK): Allow target port to override.
From-SVN: r17230
1997-12-24 15:31:54 -07:00
Jason Merrill bb727b5ae3 [multiple changes]
Tue Nov 25 01:26:55 1997  Bruno Haible <haible@ilog.fr>:

	* dwarf2out.c (ASM_OUTPUT_DWARF_DELTA1): Implement.

Mon Nov 24 22:41:55 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL.
	* optabs.c (init_optabs): Lose get_dynamic_handler_chain_libfunc.
	* expr.h: Likewise.

From-SVN: r16696
1997-11-25 04:30:38 -05:00
Jeff Law e9a25f70a0 Update mainline egcs to gcc2 snapshot 971021.
From-SVN: r16278
1997-11-02 14:19:36 -07:00
Andreas Schwab eae4b97034 expr.h (insn_gen_function): Reenable prototype.
* expr.h (insn_gen_function): Reenable prototype.

	* expr.c (move_by_pieces_1, clear_by_pieces_1): Fix prototype of
	first parameter.

From-SVN: r14994
1997-08-29 09:02:03 -06:00
Jeffrey A Law d78778ebf9 expr.h (insn_gen_function): Temporarily remove prototype.
* expr.h (insn_gen_function): Temporarily remove prototype.
This one has to wait until more prototyped stuff is done.

From-SVN: r14914
1997-08-25 01:48:35 -06:00
H.J. Lu e9576d2c22 expr.h, real.h: Finish prototyping.
* expr.h, real.h: Finish prototyping.
Some of hj's prototyping stuff after minor formatting fixes.

From-SVN: r14846
1997-08-19 09:51:10 -06:00
Richard Kenner 99b5da0823 Add expand_modifier flags.
(chkr_*_libfunc): New decls.
(memory_use_mode): New declaration.

From-SVN: r14612
1997-08-02 13:17:40 -04:00
Richard Kenner f7761c9ad9 (STACK_CHECK_*): Provide default values.
(probe_stack_range): New declaration.

From-SVN: r14467
1997-07-17 11:24:57 -04:00
Mike Stump 6e6a07d299 except.c (start_dynamic_handler): Fix so that we can use __builtin_setjmp...
* except.c (start_dynamic_handler): Fix so that we can use
 	__builtin_setjmp, and default to using __builtin_setjmp instead of
 	setjmp.
	* expr.c (expand_builtin_setjmp): New routine, split out from
	existing inline code from expand_builtin.
	(expand_builtin): Split out code into expand_builtin_setjmp.
	* expr.h (expand_builtin_setjmp): Add declaration.
	* libgcc2.c (__sjthrow): Default to using __builtin_setjmp instead
 	of setjmp.
	(__sjpopnthrow): Likewise.
	* optabs.c (init_optabs): Likewise.

From-SVN: r14045
1997-05-07 22:50:11 +00:00
Mike Stump e976b8b277 Add setjmp/longjmp exception handling.
From-SVN: r13968
1997-04-23 20:04:25 +00:00
Torbjorn Granlund c0eccde6cf (emit_store_flag_force): Declare.
From-SVN: r13001
1996-10-23 04:15:02 +00:00
Mike Stump 3d1953912d install EH code
From-SVN: r12548
1996-07-23 19:58:32 +00:00
Mike Stump 0f41302f47 formatting tweaks
From-SVN: r12390
1996-07-03 22:07:53 +00:00
Jim Wilson ae73d3bec5 (emit_group_load, emit_group_store, use_group_regs): New
declarations.

From-SVN: r12190
1996-06-06 16:12:26 -07:00
Richard Kenner b0cb541bf4 (function_value): Deleted; no such function.
(bc_build_calldesc, bc_runtime_type_code): New declarations.

From-SVN: r12040
1996-05-19 12:20:59 -04:00
Doug Evans 982c6ee237 * expr.h (const): Delete.
From-SVN: r11792
1996-04-15 17:57:27 +00:00
Jim Wilson 2af1bac84c (clear_storage): Add comment terminator.
From-SVN: r11518
1996-03-12 09:42:04 -08:00
Richard Kenner 1207956403 (clrstr_optab): New declaration.
(clear_storage): New parm, ALIGN.

From-SVN: r10838
1995-12-24 06:35:03 -05:00
Richard Kenner 4b6ba2ba9c (expand_mult_highpart_adjust): Declare.
From-SVN: r10802
1995-12-18 16:49:37 -05:00
Richard Kenner 6d29ff8edd (clear_storage): Second arg is rtx, not int.
From-SVN: r10530
1995-10-27 06:42:30 -04:00
Richard Kenner e5a46778f6 (NO_DEFER_POP): Remove last change.
From-SVN: r10132
1995-07-14 18:18:57 -04:00
Richard Kenner 6b18f4b76c (NO_DEFER_POP): Do any pending stack adjusts.
From-SVN: r10095
1995-07-01 07:18:02 -04:00
Richard Kenner 940d9d638b Update FSF address.
From-SVN: r9959
1995-06-15 07:33:25 -04:00
Richard Kenner 9faa82d8c0 Fix typos in comments.
From-SVN: r9712
1995-05-16 08:39:54 -04:00
Doug Evans 423933c298 (emit_conditional_move): Declare it.
(can_conditionally_move_p): Likewise.
(movcc_gen_code): Likewise.

From-SVN: r8798
1995-01-25 04:14:56 +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
Richard Kenner e31492751a Declare expand_abs.
From-SVN: r8445
1994-11-15 18:39:21 -05:00
Richard Kenner 361f165377 (??hf2_libfunc): Add declarations, like ??sf2_libfunc.
From-SVN: r8260
1994-10-12 09:17:28 -04:00
Mike Stump d93d4205f1 fix temp lifetime (FOR TARGET_EXPRs only)
From-SVN: r7681
1994-07-08 20:45:14 +00:00
Torbjorn Granlund f02d60632f (smul_highpart_optab, umul_highpart_optab): New variables.
From-SVN: r7597
1994-06-29 00:22:36 +00:00
Doug Evans 0304dfbb67 expr.c (use_reg): Fix recording of USE information.
* expr.c (use_reg): Fix recording of USE information.
	(use_regs): Likewise.
	Delete argument `reg'.  All callers changed.
	* expr.h (use_regs): Update prototype.
	* calls.c (expand_call): Update call to use_regs.  Call use_reg
	if parm is wholly in registers.

From-SVN: r7378
1994-05-27 23:27:50 +00:00
Richard Kenner 8c99eaf6eb (use_regs): Change from USE and CLOBBER insns to using
CALL_INSN_FUNCTION_USAGE.

From-SVN: r7241
1994-05-06 17:48:22 -04:00
Richard Kenner 0aaf6c85d2 (prepare_call_address): Extend prototype.
From-SVN: r7075
1994-04-18 16:38:16 -04:00
Richard Kenner 9d69b7c803 (PROMOTE_MODE): Don't supply default here.
(promote_mode): Add declaration.

From-SVN: r7065
1994-04-18 14:49:55 -04:00
Richard Kenner 9c2683afa3 (lshl_optab): Deleted.
From-SVN: r7018
1994-04-10 08:00:07 -04:00
Richard Kenner cb2cab79eb (emit_float_lib_cmp): Add declaration here.
From-SVN: r6759
1994-03-12 16:58:58 -05:00
Richard Kenner d18225c493 Use PVPROTO for varargs prototypes.
From-SVN: r6744
1994-03-11 08:01:45 -05:00
Richard Kenner 6c1e249352 Use PROTO for varargs functions.
From-SVN: r6513
1994-02-10 08:04:38 -05:00
Richard Stallman 708c676e5e (emit_library_call_value): Fix declaration.
From-SVN: r5343
1993-09-17 13:02:36 +00:00
Richard Stallman 3fad11c921 (convert_modes): Declared.
From-SVN: r5308
1993-09-12 12:37:26 +00:00
Richard Kenner 9c951f801e Declare code_to_optab.
From-SVN: r5061
1993-08-03 17:33:11 -04:00
Jim Wilson 067a2933ea (move_block_from_reg): Add new argument to prototype.
From-SVN: r5015
1993-07-28 10:14:44 -07:00
Richard Stallman bda63bf128 Fix comment typos. emit_block_move decl was hidden.
From-SVN: r4348
1993-05-06 01:47:12 +00:00
Richard Kenner 6fb713ceec (FUNCTION_ARG_PADDING): Add parens to make clearer.
(MUST_PASS_IN_STACK): Don't allow machine to override (none currently do).
Don't force in stack if wrong padding when padding isn't needed.

From-SVN: r4172
1993-04-17 17:40:16 -04:00
Richard Kenner 27b3f75422 (extendtab, fixtab, fixtrunctab, floattab, movstr_optab): New
definitions.

From-SVN: r3924
1993-03-30 15:28:53 -05:00
Richard Kenner eab52f35df (prepare_call_address): Put decl back.
From-SVN: r3851
1993-03-23 08:35:37 -05:00
Richard Kenner acda9c8d8d Don't declare fns that use "tree" if tree.h not included.
(prepare_call_address, emit_call_1): Remove decls.
(promoted_input_arg): Add prototype.
(fix_lexical_addr): Remove duplicate decl.
(copy_function_value, expand_stmt_expr): Delete; no such functions.

From-SVN: r3846
1993-03-23 08:08:24 -05:00
Doug Evans bb64c9871c * (MUST_PASS_IN_STACK): Make machine parameter.
From-SVN: r3831
1993-03-22 22:02:43 +00:00
Jim Wilson 14a8d07859 Correct partly nested comment.
From-SVN: r3796
1993-03-19 18:42:31 -08:00
Doug Evans e14fa9c45a * (RETURN_IN_MEMORY): Handle BLKmode values.
From-SVN: r3709
1993-03-12 00:10:21 +00:00
Richard Kenner 12e74c9e4c Clean up prototypes for functions in expr.c and optabs.c and add some
missing ones.

From-SVN: r3673
1993-03-08 07:22:39 -05:00
Richard Stallman cb411bd66b Add prototypes for most functions declared here.
From-SVN: r3536
1993-02-26 03:49:17 +00:00
Richard Stallman b4cb49943e (emit_move_insn_1): Declared.
From-SVN: r3507
1993-02-21 06:52:14 +00:00
Richard Kenner 626043cfc3 Declare promoted_input_arg.
From-SVN: r3450
1993-02-09 18:45:06 -05:00
Richard Kenner e7cf2d7e55 (MUST_PASS_IN_STACK_BAD_ALIGN): Deleted.
(MUST_PASS_IN_STACK): No problem anymore with nonaligned structs.

From-SVN: r3438
1993-02-08 05:49:05 -05:00
Richard Stallman 355b20971a Correct comments.
From-SVN: r2819
1992-11-30 23:05:11 +00:00
Richard Stallman bf15a311e9 (expand_complex_abs): Add declaration.
From-SVN: r2317
1992-10-03 18:44:17 +00:00
Richard Kenner 601ce03b17 (PROMOTE_MODE): Provide default definition.
From-SVN: r2173
1992-09-19 15:44:58 -04:00
James Van Artsdalen d70326a5e8 (sin_optab,cos_optab): Declare optabs for sin and cos.
From-SVN: r1977
1992-08-28 01:22:01 +00:00
Charles Hannum 3245eea08a entered into RCS
From-SVN: r1466
1992-07-06 19:55:04 +00:00
Jim Wilson b092b4717c *** empty log message ***
From-SVN: r1237
1992-06-22 17:28:39 -07: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
Tom Wood 8cbe291798 *** empty log message ***
From-SVN: r837
1992-04-26 12:31:30 +00:00
Richard Kenner b91c37569d *** empty log message ***
From-SVN: r628
1992-03-29 19:55:28 -05:00
Richard Stallman 19c3fc2483 *** empty log message ***
From-SVN: r623
1992-03-29 04:32:58 +00:00
Jeff Law 07fe16259a *** empty log message ***
From-SVN: r463
1992-03-13 12:13:44 -07:00
Richard Kenner e8bbfc4e23 Initial revision
From-SVN: r406
1992-03-06 18:36:01 -05:00