Commit Graph

142 Commits

Author SHA1 Message Date
Kaveh R. Ghazi
93051e0f93 builtins.c (expand_builtin_strncat): Remove redundant check for INTEGER_CST.
* builtins.c (expand_builtin_strncat): Remove redundant check for
	INTEGER_CST.

From-SVN: r49246
2002-01-26 14:47:12 +00:00
Richard Kenner
995b590439 builtins.c (expand_builtin_strncpy): Use integer_zerop instead of compare_tree_int.
* builtins.c (expand_builtin_strncpy): Use integer_zerop instead
	of compare_tree_int.
	(expand_builtin_strncat): Likewise.
	* c-decl.c (finish_struct): Use tree_low_cst.
	* tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
	* tree.c (compare_tree_int): Likewise.

From-SVN: r49222
2002-01-25 15:45:48 -05:00
Aldy Hernandez
70e531f52e loop.c (emit_prefetch_instructions): Use the prefetch insn's mode, not Pmode.
2002-01-24  Aldy Hernandez  <aldyh@redhat.com>

        * loop.c (emit_prefetch_instructions): Use the prefetch insn's
        mode, not Pmode.

        * builtins.c (expand_builtin_prefetch): Same.

From-SVN: r49200
2002-01-25 04:32:46 +00:00
Kazu Hirata
505ddab6ec builtins.c: Fix formatting.
* builtins.c: Fix formatting.
	* c-typeck.c: Likewise.
	* combine.c: Likewise.
	* expr.c: Likewise.
	* loop.c: Likewise.

From-SVN: r48512
2002-01-03 16:05:54 +00:00
Roger Sayle
fe85f179e8 re PR rtl-optimization/3508 (builtin memcmp() could be optimised)
* builtins.c (expand_builtin_memcmp): Optimize memcmp built-in
        when all arguments are known constant.  Fixes PR opt/3508.

        * gcc.c-torture/execute/string-opt-16.c: New testcase.

From-SVN: r48335
2001-12-27 15:34:31 -08:00
Kaveh R. Ghazi
b4c984fbec builtin-attrs.def (__builtin_printf_unlocked, [...]): Mark with the __printf__ attribute.
* builtin-attrs.def (__builtin_printf_unlocked,
	__builtin_fprintf_unlocked, printf_unlocked, fprintf_unlocked):
	Mark with the __printf__ attribute.

	* builtins.c (expand_builtin_fputs): Add an `unlocked' parameter
	and set the replacement function depending on it.
	(expand_builtin): Skip BUILT_IN_*_UNLOCKED when not optimizing.
	Handle BUILT_IN_*_UNLOCKED when optimizing.

	* builtins.def (DEF_EXT_FALLBACK_BUILTIN,
	DEF_EXT_FRONT_END_LIB_BUILTIN): New macros.
	Declare the "unlocked" stdio functions.

	* c-common.c (c_expand_builtin_printf, c_expand_builtin_fprintf):
	Add an `unlocked' parameter and set the replacement function
	depending on it.
	(c_expand_builtin): Handle BUILT_IN_PRINTF_UNLOCKED and
	BUILT_IN_FPRINTF_UNLOCKED.

	* doc/extend.texi (printf_unlocked, fprintf_unlocked,
	fputs_unlocked): Document.

testsuite:
	* gcc.dg/format/builtin-1.c: Test unlocked stdio.
	* gcc.dg/format/c90-printf-3.c: Likewise.
	* gcc.dg/format/c99-printf-3.c: Likewise.
	* gcc.dg/format/ext-1.c: Likewise.
	* gcc.dg/format/ext-6.c: Likewise.
	* gcc.dg/format/format.h: Prototype unlocked stdio.

From-SVN: r48229
2001-12-21 02:36:37 +00:00
Aldy Hernandez
cbf5468fd2 * builtins.c (apply_args_size): Change regno to unsigned.
From-SVN: r48090
2001-12-17 06:12:34 +00:00
Kaveh R. Ghazi
88f92c0f3f builtins.c (expand_builtin_memcmp): Mark parameter with ATTRIBUTE_UNUSED.
* builtins.c (expand_builtin_memcmp): Mark parameter with
	ATTRIBUTE_UNUSED.
	* cfgcleanup.c (insns_match_p): Likewise.
	* regrename.c (mode_change_ok): Likewise.
	* gcc.c (execute): Const-ify.

From-SVN: r48033
2001-12-15 04:12:42 +00:00
Andreas Jaeger
dc6f415864 builtins.def: Rename BUILT_IN_FSQRT to BUILT_IN_SQRT and __builtin_fsqrt to __builtin_sqrt.
2001-12-14  Roger Sayle <roger@eyesopen.com>

	* builtins.def: Rename BUILT_IN_FSQRT to BUILT_IN_SQRT and
	__builtin_fsqrt to __builtin_sqrt.
	* builtins.c (expand_builtin_mathfn,expand_builtin): Same.
	* doc/extend.texi: Simplify documentation to match patch.
f:
	* com-rt.def: Use __builtin_sqrt instead of __builtin_fsqrt.
	* com.c (ffecom_init_0): Same, and fixed enumeration usage.
libstdc++-v3:
	* acconfig.h: Test for __builtin_sqrt instead of
	__builtin_fsqrt.
	* acinclude.m4: Same.
	* include/c_shadow/bits/std_cmath.h: Same.
	* aclocal.m4: Regenerated.
	* config.h.in: Regenerated.
	* configure: Regenerated.

From-SVN: r48008
2001-12-14 22:06:35 +01:00
Roger Sayle
c2bd38e892 builtins.c (expand_builtin_memset, [...]): Additional arguments TARGET and MODE.
* builtins.c (expand_builtin_memset, expand_builtin_memcpy,
        expand_builtin_strcpy): Additional arguments TARGET and MODE.
        (expand_builtin_bzero, expand_builtin_strcpy,
        expand_builtin_strncpy, expand_builtin_bzero): Pass additional
        TARGET and MODE parameters to the above functions.
        (expand_builtin_memset, expand_builtin_memcpy): Optimize the
        case where the LEN parameter is constant zero.
        (expand_builtin_memcmp): No longer conditional on
        HAVE_cmpstrsi.  Take an additional mode parameter.  Optimize
        the cases where len is either constant zero or one.
        Optimize to call to memcpy, even if the memcpy isn't inlined.
        (expand_builtin_strncpy): Optimize to call memcpy, even if the
        memcpy isn't inlined.
        (expand_builtin_strcmp, expand_builtin_strncmp): Always attempt
        to optimize to a call to memcmp.
        (expand_builtin): expand_builtin_memcmp can always be called,
        and pass the required parameters to expand_builtin_memcmp,
        expand_builtin_memset, expand_builtin_memcpy and
        expand_builtin_strcpy.

        * gcc.c-torture/execute/string-opt-14.c: New test case.
        * gcc.c-torture/execute/string-opt-15.c: New test case.

From-SVN: r47960
2001-12-12 16:43:51 -08:00
Roger Sayle
8d51ecf8a0 builtins.c (expand_builtin): Use a switch statement to list those functions not expanded without...
* builtins.c (expand_builtin): Use a switch statement to list
	those functions not expanded without optimizations, instead of a
	series of equality tests.

From-SVN: r47876
2001-12-11 15:51:55 +01:00
Janis Johnson
e83d297b10 builtin-types.def (BT_FN_VOID_PTR_VAR): New.
* builtin-types.def (BT_FN_VOID_PTR_VAR): New.
	* builtins.def (BUILT_IN_PREFETCH): Change arguments.
	* builtins.c (expand_builtin_prefetch): Two arguments are now optional,
	with defaults for read prefetch with high degree of locality.
	* doc/extend.texi (__builtin_prefetch): Update documentation.
	* doc/md.texi (prefetch): Add documentation.

From-SVN: r47741
2001-12-07 01:42:35 +00:00
Richard Kenner
37a08a298f attribs.c (handle_no_check_memory_usage_atribute): Deleted.
* attribs.c (handle_no_check_memory_usage_atribute): Deleted.
	(c_com): Delete its reference.
	* builtins.c: Delete memory checking code.
	* calls.c, expr.c, function.c, stmt.c: Likewise.
	* builtins.c (expand_builtin_arg_info): Remove reference to
	EXPAND_MEMORY_USE_* modifiers.
	* explow.c (expr_size): Likewise.
	* expr.c (expand_expr, expand_increment): Likewise.
	* expr.h (ARGS_SIZE_RTX): Likewise.
	* function.c (assign_parms, expand_pending_sizeso): Likewise.
	* c-decl.c (duplicate_decls): Don't handle DECL_NO_CHECK_MEMORY_USAGE.
	* expr.c (in_check_memory_usage): Delete.
	(get_push_address, get_memory_usage_from_modifier): Delete.
	(expand_assigment): Use EXPAND_WRITE on destination.
	(expand_expr): Delete ro_modifier.
	* expr.h (expand_modifier): Delete EXPAND_MEMORY_* entries and
	add EXPAND_WRITE.
	(memory_use_mode): Delete.
	* flags.h (flag_check_memory_usage): Deleted.
	(flag_prefix_function_name): Likewise.
	* function.c (expand_function_start): Don't set
	current_function_check_memory_usage.
	* function.h (check_memory_usage): Delete.
	* libfuncs.h, optabs.c: Delete chkr_* stuff.
	* stmt.c (expand_asm_opernd): Change EXPAND_MEMORY_USE_WO to
	EXPAND_WRITE.
	* toplev.c (flag_check_memory_usage): Deleted.
	(flag_prefix_function_name): Likewise.
	(f_options, process_options): Delete references to above.
	* tree.h (DECL_NO_CHECK_MEMORY_USAGE): Deleted.
	* varasm.c (CHKR_PREFIX): Deleted.
	(make_decl_rtl): Remove flag_prefix_function_name handling.
	(assemble_name): Likewise.
	* doc/extend.texi: Remove no_check_memory_usage attribute.
	* doc/invoke.texi: Remove -fcheck-memory-usage
	and -fprefix-function-name.
	* cp/decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.

From-SVN: r47697
2001-12-05 17:37:41 -05:00
Janis Johnson
a9ccbb60d4 builtin-types.def (BT_FN_VOID_PTR_INT_INT): New.
* builtin-types.def (BT_FN_VOID_PTR_INT_INT): New.
	* builtins.def (BUILT_IN_PREFETCH): New.
	* builtins.c (expand_builtin_expect): New.
	  (expand_builtin): Call it.
	* doc/extend.texi: Document __builtin_expect.

From-SVN: r47582
2001-12-04 00:50:35 +00:00
Richard Kenner
d43e0b7d97 expr.c (store_field): Pass tree instead of max size; callers changed.
* expr.c (store_field): Pass tree instead of max size; callers changed.
	Change handling of alignment.
	Only copy to_rtx if is TARGET.
	(expand_expr_unaligned): Delete; callers now use expand_expr.
	(emit_cmp_insn): No longer take ALIGN parm; all callers changed.
	(expand_assignment): Change handling of alignment.
	Only copy to_rtx if was original.
	(get_inner_reference): No longer return alginment; callers changed.
	(expand_expr, case COMPONENT_REF): Change handling of alignment.
	(expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned.
	(compare_from_rtx): Delete ALIGN parm; all callers changed.
	(do_compare_rtx_and_jump): Likewise.
	* expr.h: Reflect above changes.
	* tree.h: Likewise.
	* dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter
	to get_inner_reference.
	* builtins.c: Remove ALIGN parm in call to emit_cmp_and_jump_insns.
	* doloop.c, except.c, explow.c, loop.c, stmt.c, unroll.c: Likewise.
	* optabs.c: Likewise.
	(prepare_cmp_insn): Now static; remove ALIGN parm.  Callers changed.
	(emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed.
	* expmed.c: Remove ALIGN arg from calls to compare_from_rtx,
	compare_rtx_and_jump, and emit_cmp_jump_insns.
	* fold-const.c: Remove PALIGN in calls to get_inner_reference.
	* function.c (assign_stack_temp_for_type): No longer static.
	* optabs.h (emit_cmp_insn): Remove ALIGN parm.
	(prepare_cmp_insn): Delete declaration.
	* rtl.h (assign_stack_temp_for_type): Add declaration.
	* config/alpha/alpha.c, config/d30v/d30v.c: Reflect above changes.
	* config/clipper/clipper.c, config/h8300/h8300.c: Likewise.
	* config/i386/i386.c,config/mips/mips.c: Likewise.
	* config/i860/i860.c, config/ia64/ia64.c: Likewise.
	* config/rs6000/rs6000.c, config/sh/sh.c: Likewise.
	* alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P.
	* emit-rtl.c (change_address): Fix typo in default alignment.
	(adjust_address_1): Use mode of NEW, not MODE, when setting size.
	* expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case.
	* rtl.h (REGNO_PTR_FRAME_P): New macro.

	* expr.c (store_field): Pass tree instead of max size; callers changed.
	Change handling of alignment.
	Only copy to_rtx if is TARGET.
	(expand_expr_unaligned): Delete; callers now use expand_expr.
	(emit_cmp_insn): No longer take ALIGN parm; all callers changed.
	(expand_assignment): Change handling of alignment.
	Only copy to_rtx if was original.
	(get_inner_reference): No longer return alginment; callers changed.
	(expand_expr, case COMPONENT_REF): Change handling of alignment.
	(expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned.
	(compare_from_rtx): Delete ALIGN parm; all callers changed.
	(do_compare_rtx_and_jump): Likewise.
	* expr.h: Reflect above changes.
	* tree.h: Likewise.
	* dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter
	to get_inner_reference.
	* except.c: Remove ALIGN parameter in call to emit_cmp_and_jump_insns.
	* explow.c: Likewise.
	* loop.c: Likewise.
	* optabs.c: Likewise.
	(prepare_cmp_insn): Now static; remove ALIGN parm.  Callers changed.
	(emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed.
	* fold-const.c: Remove PALIGN in calls to get_inner_reference.
	* function.c (assign_stack_temp_for_type): No longer static.
	* optabs.h (emit_cmp_insn): Remove ALIGN parm.
	(prepare_cmp_insn): Delete declaration.
	* rtl.h (assign_stack_temp_for_type): Add declaration.
	* config/d30v/d30v.c: Reflect above changes.
	* config/i860/i860.c, config/ia64/ia64.c: Likewise.
	* config/rs6000/rs6000.c, config/sh/sh.c: Likewise.
	* ada/trans.c, ada/utils2.c: Remove PALIGN parameter to
	get_inner_reference.

From-SVN: r47078
2001-11-15 21:26:42 -05:00
Richard Kenner
343fb41208 builtins.c (get_memory_rtx): Properly set MEM alias set and attributes.
* builtins.c (get_memory_rtx): Properly set MEM alias set and
	attributes.

From-SVN: r46732
2001-11-03 10:33:45 -05:00
Aldy Hernandez
9016e54390 builtins.c (apply_args_size): Handle vector arguments.
* builtins.c (apply_args_size): Handle vector arguments.
        (apply_result_size): Same.

	  * machmode.def: Set WIDER mode field for all vector entries.

From-SVN: r46718
2001-11-02 19:34:16 +00:00
Richard Kenner
ce2d32cd37 builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
* builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
	(expand_builtin_apply, expand_builtin_return): Likewise.
	(expand_builtin_va_arg, expand_builtin_va_copy): Likewise.

From-SVN: r46598
2001-10-28 15:42:29 -05:00
Richard Kenner
4b6c167260 builtins.c (expand_builtin_setjmp): Only call convert_memory_address if needed.
* builtins.c (expand_builtin_setjmp): Only call convert_memory_address
	if needed.
	(expand_builtin_longjmp, expand_builtin_alloca): Likewise.
	* except.c (expand_builtin_frob_return_addr): Likewise.
	(expand_builtin_eh_return): Likewise.
	* stmt.c (expand_computed_goto): Likewise.
	* explow.c (memory_address): Likewise.
	(allocate_dynamic_stack_space): Clean up predicate testing.
	(probe_stack_range): Convert SIZE to Pmode.
	* calls.c (rtx_for_function_call): Only call convert_memory_address
	if needed.
	Pass function call operand as ptr_mode, not Pmode.
	* expr.c (expand_assignment): Clean up calls to convert_memory
	address by only doing so when needed and making offsets Pmode.
	(store_constructor, expand_expr, expand_expr_unaligned): Likewise.
	* function.c (assign_parms): Ensure address in MEM for RESULT_DECL
	is in Pmode, not ptr_mode.

From-SVN: r46448
2001-10-23 18:59:15 -04:00
Richard Kenner
8ac61af705 alias.c (can_address_p): Compnonents are not addressable if the containing type has alias set 0.
* alias.c (can_address_p): Compnonents are not addressable if
	the containing type has alias set 0.
	(get_alias_set): Rework to use STRIP_NOPS.
	Only call front-end routine on object, type, or object with
	NOPs stripped, not inner values.
	Use language hook to call front-end routine.
	* builtins.c (get_memory_rtx): Always call set_mem_attributes.
	(expand_builtin_apply): Call set_mem_align on MEMs we make.
	Don't pass alignment to emit_block_move.
	(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
	(expand_builtin_memset): Likewise, but for clear_storage.
	* c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
	and remove C++ specific parts.
	* c-common.h (c_common_get_alias_set): Add declaration.
	* c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
	* calls.c (emit_call_1): Fix typo in sibcall_pop case.
	(save_fixed_argument_area): Call set_mem_align.
	Remove alignment in call to emit_block_move.
	(emit_library_call_value_1, store_one_arg): Likewise.
	(target_for_arg): Remove; disabled long ago.
	* emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
	once and similar cleanups.
	(offset_address): Use proper introductory comment.
	* expr.c (emit_block_move): Use alignment from that of MEM args, not
	from explicit operand; all callers changed.
	(clear_storage): Likewise.
	(expand_assignment): Don't call set_mem_alias_set on to_rtx.
	(store_field): Remove kludge on alias set used for to_rtx.
	(highest_pow2_factor, case *_DIV_EXPR): Never return 0.
	(expand_expr_unaligned): Call set_mem_attributes instead of
	set_mem_alias_set.
	* expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
	* function.c (assign_stack_temp_for_type): Set MEM alignment.
	(expand_function_end): Track MEM attributes of trampolines.
	* ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
	* integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
	attributes from original.
	* langhooks.c (lang_hook_default_get_alias_set): New function.
	(hook_get_alias_set_0): New function.
	* langhooks.h (hook_get_alias_set_0): New declaration.
	(lang_hook_default_get_alias_set): Likewise.
	(LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
	* reload1.c (alter_reg): Use adjust_address_nv.
	* rtl.c (get_mode_alignment): Moved to here.
	* rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
	change default if unknown from 1 to BITS_PER_UNIT.
	* stor-layout.c (get_mode_alignment): Remove from here.
	* toplev.h (struct lang_hoks): Add get_alias_set field.
	* tree.h (lang_get_alias_set): Delete declaration.
	* config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
	* config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
	(ix86_va_arg): Likewise.
	* config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
	* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
	* config/sparc/sparc.c (sparc_va_arg): Likewise.
	* config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
	(expand_block_move_mem): Remove dead code.
	* cp/cp-lang.c (cxx_get_alias_set): New function.
	Point LANG_HOOKS_GET_ALIAS_SET to it.
	* f/com.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
	(lang_get_alias_set): Delete.
	* java/lang.c (lang_get_alias_set): Deleted.

From-SVN: r46440
2001-10-23 14:51:18 -04:00
Kaveh R. Ghazi
8b60264b0d builtins.c (expand_builtin_setjmp_receiver): Const-ify.
* builtins.c (expand_builtin_setjmp_receiver): Const-ify.
	* c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
	Likewise.
	* c-dump.c (dump_option_value_info): Likewise.
	* c-format.c (format_length_info, format_char_info,
	format_flag_spec, format_flag_pair, format_kind_info): Likewise.
	* collect2.c (names): Likewise.
	* cppdefault.h (default_include): Likewise.
	* cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
	* flow.c (life_analysis): Likewise.
	* gcc.c (dir_separator_str, modify_target, option_map,
	target_option_translations, spec_list_1, extra_specs_1,
	init_spec): Likewise.
	* gcov.c (gcov_version_string): Likewise.
	* genattr.c (write_units): Likewise.
	* genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
	* gengenrtl.c (rtx_definition, defs): Likewise.
	* genrecog.c (pred_table): Likewise.
	* global.c (global_alloc): Likewise.
	* lcm.c (optimize_mode_switching): Likewise.
	* local-alloc.c (find_free_reg): Likewise.
	* params.h (param_info): Likewise.
	* predict.c (predictor_info): Likewise.
	* protoize.c (unexpansion_struct): Likewise.
	* real.c (bmask): Likewise.
	* recog.h (insn_operand_data, insn_data): Likewise.
	* regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
	* stmt.c (expand_nl_goto_receiver): Likewise.
	* toplev.c (da, debug_args, lang_opt, documented_lang_options,
	target_switches, target_options): Likewise.
	* tradcif.y (token, tokentab2, yylex): Likewise.
	* tree.h (attribute_spec): Likewise.

	* alpha.c (override_options, alpha_lookup_xfloating_lib_func):
	Likewise.
	* arc.c (arc_output_function_epilogue): Likewise.
	* arm.c (processors, all_cores, all_architectures,
	arm_override_options, isr_attribute_arg, isr_attribute_args,
	arm_isr_value): Likewise.
	* avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
	Likewise.
	* c4x.c (c4x_int_reglist): Likewise.
	* d30v.c (override_options): Likewise.
	* h8300.c (shift_insn): Likewise.
	* i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
	pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
	ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
	builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
	ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
	* i386.h (processor_costs, ix86_cost): Likewise.
	* m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
	* m68hc11.h (processor_costs, m68hc11_cost): Likewise.
	* m68k.c (codes_68881, codes_FPA): Likewise.
	* m88k.c (mode_from_align, max_from_align, all_from_align,
	best_from_align, m_options): Likewise.
	* m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
	* mcore.c (mode_from_align): Likewise.
	* mips/elf64.h (UNIQUE_SECTION): Likewise.
	* mips/iris6gld.h (UNIQUE_SECTION): Likewise.
	* mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
	* mips.h (mips_regno_to_class): Likewise.
	* ns32k.c (scales): Likewise.
	* pa.c (import_string, magic_milli): Likewise.
	* rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
	* sparc.c (leaf_reg_remap, sparc_override_options,
	reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
	Likewise.
	* sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.

cp:
	* class.c (build_vtable_entry_ref): Const-ify.
	* decl.c (predefined_identifier,
	initialize_predefined_identifiers): Likewise.
	* init.c (build_new_1): Likewise.
	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
	Likewise.

f:
	* bad.c (_ffebad_message_, ffebad_messages_): Const-ify.
	* bld.c (ffebld_arity_op_): Likewise.
	* bld.h (ffebld_arity_op_): Likewise.
	* com.c (ffecom_init_0): Likewise.
	* intdoc.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
	_ffeintrin_imp_, names, gens, imps, specs, cc_pair,
	cc_descriptions, cc_summaries): Likewise.
	* intrin.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
	_ffeintrin_imp_, ffeintrin_names_, ffeintrin_gens_,
	ffeintrin_imps_, ffeintrin_specs_): Likewise.

java:
	* jcf-io.c (format_uint): Const-ify.
	* lang.c (java_tree_code_type, java_tree_code_length): Likewise.
	* lex.c (java_get_line_col): Likewise.
	* parse.y (build_incdec): Likewise.

From-SVN: r46062
2001-10-07 16:51:11 +00:00
Andreas Jaeger
b8d323b1a0 * builtins.c (c_getstr): Remove unused variable.
From-SVN: r45746
2001-09-22 10:42:05 +02:00
Matt Kraai
1de3d87705 builtins.c (c_strlen): Treat an offset too large for a HOST_WIDE_INT as out of range.
* builtins.c (c_strlen): Treat an offset too large for a
	HOST_WIDE_INT as out of range.

From-SVN: r45550
2001-09-11 17:10:15 +00:00
Richard Kenner
bf06b5d841 builtins.c (c_getstr): Correct thinko in last change and further cleanup.
* builtins.c (c_getstr): Correct thinko in last change and further
	cleanup.

From-SVN: r45519
2001-09-10 16:23:35 -04:00
Richard Kenner
5197bd5062 alias.c (clear_reg_alias_info): Use K&R format definition.
* alias.c (clear_reg_alias_info): Use K&R format definition.
	Avoid unsigned warning.
	* builtins.c: Use "unsigned int", not "unsigned".
	(target_char_cast): Use host_integerp and tree_low_cst.
	(expand_builtin_args_info, expand_builtin_frame_address): Likewise.
	(c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
	(c_getstr): Likewise.
	(std_expand_builtin_va_arg): Use int_size_in_bytes.
	(builtin_memcpy_read_str): Avoid unsigned warning.
	(expand_builtin_memcpy): Alignments are unsigned.
	(expand_builtin_strncpy, expand_builtin_memset): Likewise.
	(expand_builtin_expect_jump): Use integer_zerop and integer_onep.
	* predict.c (expensive_function_p): LIMIT now unsigned.
	* resource.c (mark_target_live_regs): Make some vars unsigned.
	* sdbout.c: Use "unsigned int", not "unsigned".
	(MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
	(sdbout_source_line): Likewise.
	(sdbout_record_type_name): Remove "const" for NAME declaration.
	* config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.

From-SVN: r45503
2001-09-10 06:55:20 -04:00
Richard Henderson
278ed2183f function.c (expand_function_end): Don't init arg_pointer_save_area.
* function.c (expand_function_end): Don't init arg_pointer_save_area.
        (get_arg_pointer_save_area): New.  Create an init it here.
        (fix_lexical_addr): Use it.
        * function.h: Declare it.
        * builtins.c (expand_builtin_setjmp_receiver): Use it.
        * stmt.c (expand_nl_goto_receiver): Use it.

From-SVN: r45200
2001-08-27 10:36:20 -07:00
Andreas Jaeger
7a75edb707 emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
* emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
	* errors.c: Likewise.
	* final.c: Likewise.
	* dwarf2asm.c: Likewise.
	* doprint.c (checkit): Likewise.
	* diagnostic.c: Likewise.
	* collect2.c: Likewise.
	* calls.c: Likewise.
	* c-semantics.c (build_stmt): Likewise.
	* c-format.c (status_warning): Likewise.
	* c-errors.c (pedwarn_c99): Likewise.
	* builtins.c (validate_arglist): Likewise.
	* config/pj/pj.c (pj_printf): Likewise.
	* fix-header.c: Likewise.
	* gcc.c: Likewise.
	* gcov.c (fnotice): Likewise.
	* gensupport.c (message_with_line): Likewise.
	* mips-tfile.c: Likewise.
	* protoize.c (notice): Likewise.
	* read-rtl.c (fatal_with_file_and_line): Likewise.
	* rtl-error.c: Likewise.
	* tradcpp.c: Likewise.
	* tree.c: Likewise.
	* cp/tree.c (build_min_nt): Likewise.
	(build_min): Likewise.
	* cp/lex.c: Likewise.
	* cp/errfn.c: Likewise.
	* cp/rtti.c (create_pseudo_type_info): Likewise.

From-SVN: r45185
2001-08-27 08:48:43 +02:00
Lars Brinkhoff
1322177dbd Makefile.in, [...]: replace "GNU CC" with "GCC".
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
	bitmap.h, builtin-types.def, builtins.c, builtins.def,
	c-aux-info.c, c-common.c, c-common.def, c-common.h,
	c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
	c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
	c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
	caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
	conditions.h, config.gcc, configure.frag, configure.in,
	conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
	cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
	dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
	doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
	dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
	emit-rtl.c, errors.c, errors.h, except.c, except.h,
	exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
	fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
	function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
	gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
	gencheck.c, gencodes.c, genconfig.c, genemit.c,
	genextract.c, genflags.c, gengenrtl.c, genmultilib,
	genopinit.c, genoutput.c, genpeep.c, genrecog.c,
	gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
	ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
	graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
	gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
	gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
	hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
	integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
	libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
	machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
	mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
	mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
	params.h, predict.c, predict.def, predict.h, prefix.c,
	prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
	read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
	regclass.c, regmove.c, regrename.c, regs.h, reload.c,
	reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
	rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
	sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
	sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
	ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
	stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
	tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
	tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
	unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
	unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
	xcoffout.h: replace "GNU CC" with "GCC".

From-SVN: r45105
2001-08-22 14:35:51 +00:00
Kaveh R. Ghazi
91db4a92c6 * builtins.c (type_to_class): Fix typo in last change.
From-SVN: r45092
2001-08-22 03:53:51 +00:00
Zack Weinberg
ad82abb8e6 stmt.c: Don't include insn-codes.h.
* stmt.c: Don't include insn-codes.h.
	(expand_end_case): Machine specific logic moved to expr.c.
	No need to worry about __builtin_classify_type.
	(check_for_full_enumeration_handling, emit_case_nodes):
	Kill #if 0 blocks.

	* builtins.o (expand_builtin_classify_type): Split up so code
	can be shared with fold_builtin_classify_type.
	(type_to_class, fold_builtin_classify_type): New functions.
	(fold_builtins): Handle __builtin_classify_type.

	* expr.c (do_tablejump): Now static.
	(case_values_threshold, try_casesi, try_tablejump): New;
	code mostly from stmt.c (expand_end_case).
	(expr.h): Update prototypes.

	* Makefile.in (stmt.o): Update dependencies.

From-SVN: r45078
2001-08-21 15:51:22 +00:00
Zack Weinberg
ef89d648b8 optabs.h (OTI_flodiv, [...]): Kill.
* optabs.h (OTI_flodiv, flodiv_optab): Kill.
	* genopinit.c: Put floating point divide insns in sdiv_optab.
	* expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
	* config/gofast.h, config/c4x/c4x.h,
	config/ia64/hpux_longdouble.h, config/mips/mips.h,
	config/pa/long_double.h, config/rs6000/sysv4.h,
	config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
	* optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
	(init_optabs): Use init_optabv for overflow-trapping optabs.
	Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
	cmp_optab RTX codes so have_insn_for can find them.

	* optabs.c (expand_simple_binop, expand_simple_unop,
	have_insn_for, gen_sub3_insn): New interfaces.
	* expr.h: Prototype new functions.
	(enum optab_methods): Move here from optabs.h.

	* builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
	loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
	Use new	functions instead of working directly with optabs.
	* doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
	unroll.c: Don't include optabs.h.
	* caller-save.c, combine.c, function.c, stmt.c: Just include
	insn-codes.h, not optabs.h.
	* Makefile.in: Update dependencies.

	* combine.c (make_compound_operation, simplify_comparison):
	Fix typos testing for this or that instruction.

From-SVN: r45008
2001-08-18 19:59:46 +00:00
Zack Weinberg
e78d8e5137 expr.h: Split out optab- and libfunc-related code to...
* expr.h: Split out optab- and libfunc-related code to...
	* optabs.h, libfuncs.h: ... these new headers.

	* Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
	(OPTABS_H): New.
	(various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
	dependencies.
	* mkconfig.sh: Don't include insn-codes.h from config.h.

	* reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
	enum insn_code is available.  Move reload_in_optab and
	reload_out_optab array declarations to optabs.h.
	* regmove.c (gen_add3_insn): Move to optabs.c, export from
	there, prototype in expr.h.
	* gencodes.c: Cleanup: zap global variables, don't use
	printf where puts will do, don't bother defining MAX_INSN_CODE
	which nothing uses, let CODE_FOR_nothing get its value implicitly.

	* genemit.c, genopinit.c: Include optabs.h in generated file.
	* genoutput.c: Include insn-codes.h in generated file.
	* builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
	expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
	reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
	config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
	config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
	config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
	Include optabs.h.
	* builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
	optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
	config/m88k/m88k.c, config/sparc/sparc.c:
	Include libfuncs.h.
	* reload.c: Include expr.h and optabs.h before reload.h.
	* config/alpha/alpha.c: Include tree.h before reload.h.
	* config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
	and reload.h in that order.
	* config/sparc/sparc.c: Include debug.h.
	* recog.c: Include insn-codes.h.

cp:
	* Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
	* except.c: Include libfuncs.h.
java:
	* Make-lang.in (java/decl.o): Update dependencies.
	* decl.c: Include libfuncs.h, don't include toplev.h.

From-SVN: r44858
2001-08-13 15:56:51 +00:00
Zack Weinberg
1310497511 builtins.c (fold_builtin_constant_p): Return integer_zero_node for complex expressions when cfun == 0.
* builtins.c (fold_builtin_constant_p): Return integer_zero_node
for complex expressions when cfun == 0.
	* doc/extend.texi: Document that __builtin_constant_p can be
used in data initializers as well as functions.
	* gcc.dg/bconstp-1.c: New test.

From-SVN: r44619
2001-08-04 00:20:37 +00:00
Kazu Hirata
ec5c56db8b alias.c: Fix comment formatting.
* alias.c: Fix comment formatting.
	* bitmap.c: Likewise.
	* builtins.c: Likewise.
	* calls.c: Likewise.
	* c-common.c: Likewise.
	* c-decl.c: Likewise.
	* c-dump.c: Likewise.
	* c-lex.c: Likewise.
	* collect2.c: Likewise.
	* combine.c: Likewise.
	* conflict.c: Likewise.
	* cppfiles.c: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* cpplib.c: Likewise.
	* cppmacro.c: Likewise.
	* cppspec.c: Likewise.
	* c-pragma.c: Likewise.
	* crtstuff.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* c-semantics.c: Likewise.
	* c-typeck.c: Likewise.

From-SVN: r44547
2001-08-01 17:57:27 +00:00
Andrew MacLeod
7c2b017c9a stmt.c (expand_goto): A nonlocal goto can be a call too.
2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
	    Janis Johnson  <janis@us.ibm.com>

	* stmt.c (expand_goto): A nonlocal goto can be a call too.
	* builtins.c (expand_builtin_longjmp): Reverse label and static chain
	pointer parameters to match documented usage of nonlocal_goto.
	* config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
	parameters to their correct order.
	* config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
	parameters to their correct order.

Co-Authored-By: Janis Johnson <janis@us.ibm.com>

From-SVN: r44353
2001-07-25 13:33:17 +00:00
Lars Brinkhoff
0c23768840 stor-layout.c (get_mode_alignment): make it work when BITS_PER_UNIT is not a power of two.
* stor-layout.c (get_mode_alignment): make it work when
        BITS_PER_UNIT is not a power of two.
        * builtins.c (get_pointer_alignment): Likewise.

From-SVN: r44322
2001-07-24 18:19:23 -07:00
Richard Henderson
3affaf2934 calls.c (prepare_call_address): New parameter SIBCALLP.
* calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
        don't force the function address into a register.
        (expand_call, emit_library_call_value_1): Update callers.
        * builtins.c (expand_builtin_apply): Likewise.
        * expr.h (prepare_call_address): Update decl.

From-SVN: r44095
2001-07-17 20:24:53 -07:00
Richard Kenner
ba4828e005 alias.c (set_mem_alias_set): New function.
* alias.c (set_mem_alias_set): New function.
	* rtl.h (set_mem_alias_set): Declare it.
	* builtins.c (expand_builtin_return_addr): Call it instead of
	using MEM_ALIAS_SET accessor.
	(expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
	(get_memory_rtx, expand_builtin_va_arg): Likewise.
	(expand_builtin_va_copy):Likewise.
	* caller-save.c (setup_save_areas): Likewise.
	* calls.c (compute_argument_addresses): Likewise.
	* explow.c (set_mem_attributes): Likewise.
	* expr.c (emit_single_push_insn, emit_push_insn): Likewise.
	(expand_assignment, store_constructor_field, store_field): Likewise.
	(expand_expr_unaligned): Likewise.
	* function.c (assign_stack_temp_for_type): Likewise.
	(put_reg_into_stack, gen_mem_addressof): Likewise.
	* ifcvt.c (noce_try_cmove_arith): Likewise.
	* reload1.c (reload, alter_reg): Likewise.
	* config/alpha/alpha.c (get_aligned_mem): Likewise.
	(alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
	(alpha_expand_unaligned_store): Likewise
	(alpha_expand_unaligned_load_words): Likewise.
	(alpha_expand_unaligned_store_words): Likewise.
	(alpha_expand_block_clear, alpha_expand_prologue): Likewise.
	(alpha_expand_epilogue): Likewise.
	* config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
	* config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
	* config/i386/i386.c (legitimize_pic_address): Likewise.
	* config/i960/i960.c (setup_incoming_varargs): Likewise.
	* config/ia64/ia64.c (spill_restore_mem): Likewise.
	* config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
	* config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
	* config/mips/mips.c (mips_va_arg): Likewise.
	* config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
	* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
	(setup_incoming_varargs, rs6000_va_arg): Likewise.
	(rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
	(rs6000_emit_epilogue): Likewise.
	* config/sh/sh.c (sh_builtin_saveregs): Likewise.
	* config/sparc/sparc.c (sparc_va_arg): Likewise.
	* config/v850/v850.c (v850_va_arg): Likewise.

From-SVN: r43951
2001-07-11 16:35:55 -04:00
Stan Shebs
f6155fda7b target.h (struct gcc_target): New fields init_builtins and expand_builtin.
* target.h (struct gcc_target): New fields init_builtins and
	expand_builtin.
	* target-def.h (TARGET_INIT_BUILTINS): New macro.
	(TARGET_EXPAND_BUILTIN): New macro.
	(TARGET_INITIALIZER): Add them.
	* builtins.c: Include target.h.
	(expand_builtin): Use targetm.expand_builtin.
	(default_init_builtins): New function.
	(default_expand_builtin): New function.
	* expr.h (default_init_builtins): Declare.
	(default_expand_builtin): Declare.
	* c-common.c (c_common_nodes_and_builtins): Use
	targetm.init_builtins.
	* defaults.h (MD_INIT_BUILTINS): Remove.
	* Makefile.in (builtins.o): Depend on target.h.

	* config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
	(TARGET_EXPAND_BUILTIN): Define.
	* config/arm/arm.h (MD_INIT_BUILTINS): Remove.
	(MD_EXPAND_BUILTIN): Remove.

	* config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
	(TARGET_EXPAND_BUILTIN): Define.
	(c4x_init_builtins): Make endlink arg a local.
	(c4x_print_operand): Fix typos in adjust_address usages.
	* config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
	* config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
	(MD_EXPAND_BUILTIN): Remove.

	* config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
	(TARGET_EXPAND_BUILTIN): Define.
	(ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
	(ix86_init_builtins): Call new function only if TARGET_MMX.
	* config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
	* config/i386/i386.h (MD_INIT_BUILTINS): Remove.
	(MD_EXPAND_BUILTIN): Remove.

	* config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
	(TARGET_EXPAND_BUILTIN): Define.
	* config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
	(MD_EXPAND_BUILTIN): Remove.

	* doc/tm.texi: Document these changes.

From-SVN: r43888
2001-07-10 06:18:36 +00:00
Richard Kenner
f4ef873c31 emit-rtl.c (adjust_address): New function.
* emit-rtl.c (adjust_address): New function.
	* expr.h (adjust_address): Add declaration.
	* builtins.c: Replace some calls to change_address with calls to it
	or to validize_mem.
	* caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
	* function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
	* config/arm/arm.c, config/convex/convex.c: Likewise.
	* config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
	* config/i386/i386.c, config/i386/i386.md: Likewise.
	* config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
	* config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
	* config/m88k/m88k.c, config/mips/mips.md: Likewise.
	* config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
	* config/sh/sh.c, config/sparc/sparc.md: Likewise.

From-SVN: r43702
2001-07-02 15:47:44 -04:00
Richard Henderson
c1c455a71d builtins.c (expand_builtin_expect_jump): Disable if the expression can't be re-evaluated.
* builtins.c (expand_builtin_expect_jump): Disable if the
        expression can't be re-evaluated.

From-SVN: r43543
2001-06-24 09:09:29 -07:00
Michael Meissner
5f2d6cfa81 Fix __builtin_expect on PowerPCs
From-SVN: r43470
2001-06-20 07:18:18 +00:00
Mark Mitchell
1084128584 builtins.def: Encode additional information, such as names and types, here.
* builtins.def: Encode additional information, such as names and
	types, here.
	* builtin-types.def: New file.
	* builtins.c (built_in_names): Adjust use of DEF_BUILTIN.
	(built_in_decls): Likewise.  Don't explicitly initialize global
	data to NULL.
	(expand_builtin_mathfn): Handle float and long double variants of
	math builtins.
	(expand_builtin): Likewise.
	* c-common.c (c_common_nodes_and_builtins): Make it table-driven.
	(expand_tree_builtin): Handle long, long long, float, and long
	double variants of math functions.
	* c-common.h (c_tree_index): Remove some unused nodes.
	(void_ftype): Remove.
	(void_type_ptr): Likewise.
	(int_ftype_int): Likewise.
	(ptr_ftype_sizetype): Likewise.
	* c-decl.c (init_decl_processing): Remove creation of DWARF
	builtins.
	* defaults.h (MD_INIT_BUILTINS): Provide default definition.
	* tree.h (built_in_function): Adjust definition of DEF_BUILTIN.
	* Makefile.in (c-common.o): Depend on builtin-types.def.

	* decl.c (init_decl_processing): Tweak.

From-SVN: r42583
2001-05-25 20:00:59 +00:00
Andrew MacLeod
8206fc899c builtins.c (expand_builtin_longjmp): A longjmp can be a call too.
2001-05-22  Andrew MacLeod  <amacleod@redhat.com>

	* builtins.c (expand_builtin_longjmp): A longjmp can be a call too.
	* config/ia64/ia64.md (nonlocal_goto): Reverse label and frame pointer
	parameters to __ia64_nonlocal_goto. Flag as NO_RETURN.
	* config/ia64/ia64.c (ia64_expand_epilogue): Make sure we are issuing
	"r2" to the assembly file. Only issue allocs with non-zero parameters.

From-SVN: r42467
2001-05-22 20:04:58 +00:00
Richard Henderson
52a11cbfcf IA-64 ABI Exception Handling.
From-SVN: r40924
2001-03-28 03:04:51 -08:00
Kaveh R. Ghazi
4bc5fbd480 system.h: Include symcat.h.
* system.h: Include symcat.h.
	(STRINGIFY): Don't define.

	* configure.in: Adjust comment.

	* builtins.c: Use STRINGX, not STRINGIFY.
	* gencheck.c: Likewise.
	* gengenrtl.c: Likewise.
	* protoize.c: Likewise.

	* cpplex.c: Don't include symcat.h.
	* cpplib.c: Likewise.

	* gansidecl.h (HAVE_STRINGIZE): Don't define.

From-SVN: r40875
2001-03-27 15:31:46 +00:00
Richard Henderson
5e7f4a4ab9 mkconfig.sh: Include insn-flags.h.
* mkconfig.sh: Include insn-flags.h.
	* Makefile.in (CONFIG_H): Include insn-flags.h.
	(lots of objects): Remove insn-codes.h and insn-flags.h.

	* alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c,
	integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c,
	regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c,
	avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c,
	dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c,
	i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c,
	m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c,
	mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c,
	pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c,
	v850/v850.c, vax/vax.c:
	Don't include insn-flags.h.

	* diagnostic.c, expr.h, reload.c, toplev.c:
	Don't include insn-codes.h.

	* builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c,
	final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c,
	c4x/c4x.c, i960/i960.c, mips/mips.c:
	Don't include insn-codes.h or insn-flags.h.

	* genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h
	or insn-flags.h in the generated code.
	* genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx".
	(main): Forward declare struct rtx_def.

From-SVN: r40754
2001-03-22 10:48:52 -08:00
Brad Lucier
de6c597958 Brad's -ffast-math breakup.
From-SVN: r40300
2001-03-07 11:29:41 -08:00
Bernd Schmidt
bcd7edfe5e Avoid scheduling builtin setjmp receivers
From-SVN: r39515
2001-02-07 10:24:22 +00:00
Richard Kenner
d54571406e builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space returns Pmode pseudo, but we need ptr_mode.
* builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space
	returns Pmode pseudo, but we need ptr_mode.
	* explow.c (allocate_dynamic_stack_space): Use plus_constant.
	Remove bogus conversions; use HOST_WIDE_INT for size.
	Don't use TARGET if wrong mode.

From-SVN: r39390
2001-02-01 07:29:18 -05:00