aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
AgeCommit message (Collapse)AuthorFilesLines
2002-09-16real.c, real.h: Rewrite from scratch.Richard Henderson1-1/+4
gcc/ * real.c, real.h: Rewrite from scratch. * Makefile.in (simplify-rtx.o): Depend on TREE_H. (paranoia): New target. * builtins.c (fold_builtin_inf): Use new real.h interface. * c-common.c (builtin_define_with_hex_fp_value): Likewise. * c-lex.c (interpret_float): Likewise. * emit-rtl.c (gen_lowpart_common): Likewise. * optabs.c (expand_float): Use real_2expN. * config/ia64/ia64.md (divsi3, udivsi3): Likewise. * defaults.h (INTEL_EXTENDED_IEEE_FORMAT): New. (FLOAT_WORDS_BIG_ENDIAN): New. * cse.c (find_comparison_args): Don't pass FLOAT_STORE_FLAG_VALUE directly to REAL_VALUE_NEGATIVE. * loop.c (canonicalize_condition): Likewise. * simplify-rtx.c: Include tree.h. (simplify_unary_operation): Don't handle FIX and UNSIGNED_FIX with floating-point result modes. * toplev.c (backend_init): Call init_real_once. * fold-const.c (force_fit_type): Don't call CHECK_FLOAT_VALUE. * tree.c (build_real): Likewise. * config/alpha/alpha.c, config/vax/vax.c (float_strings, float_values, inited_float_values, check_float_value): Remove. * config/alpha/alpha.h, config/m68hc11/m68hc11.h, config/m88k/m88k.h, config/vax/vax.h (CHECK_FLOAT_VALUE): Remove. * doc/tm.texi (CHECK_FLOAT_VALUE): Remove. gcc/f/ * target.c (ffetarget_real1): Don't pass FFETARGET_ATOF_ directly to ffetarget_make_real1. (ffetarget_real2): Similarly. * target.h (ffetarget_cvt_r1_to_rv_, ffetarget_cvt_rv_to_r2_, ffetarget_cvt_r2_to_rv_): Use new real.h interface and simplify. gcc/java/ * jcf-parse.c (get_constant): Runtime check for IEEE format; use new real.h interface. * jcf-write.c (find_constant_index): Use new real.h interface. * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL. contrib/ * paranoia.cc: New file. From-SVN: r57198
2002-09-04builtin-types.def (BT_FN_FLOAT): New.Richard Henderson1-0/+24
* builtin-types.def (BT_FN_FLOAT): New. (BT_FN_DOUBLE, BT_FN_LONG_DOUBLE): New. * builtins.def (BUILT_IN_INF, BUILT_IN_INFF, BUILT_IN_INFL, BUILT_IN_HUGE_VAL, BUILT_IN_HUGE_VALF, BUILT_IN_HUGE_VALL): New. * builtins.c (fold_builtin_inf): New. (fold_builtin): Call it. * real.c (ereal_inf): New. * real.h: Declare it. * doc/extend.texi: Document new builtins. From-SVN: r56820
2002-08-29expr.h (enum block_op_methods): New.Richard Henderson1-3/+4
* expr.h (enum block_op_methods): New. (emit_block_move): Update prototype. * expr.c (block_move_libcall_safe_for_call_parm): New. (emit_block_move_via_loop): New. (emit_block_move): Use them. New argument METHOD. (emit_push_insn): Always respect the given alignment. (expand_assignment): Update call to emit_block_move. (store_expr, store_field, expand_expr): Likewise. * builtins.c (expand_builtin_apply): Likewise. (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. * function.c (expand_function_end): Likewise. * config/sh/sh.c (sh_initialize_trampoline): Likewise. * config/sparc/sparc.c (sparc_va_arg): Likewise. * calls.c (expand_call, emit_library_call_value_1): Likewise. (save_fixed_argument_area): Use emit_block_move with BLOCK_OP_CALL_PARM instead of move_by_pieces. (restore_fixed_argument_area): Likewise. (store_one_arg): Fix alignment parameter to emit_push_insn. From-SVN: r56661
2002-08-05Index: ChangeLogGeoffrey Keating1-1/+0
2002-08-05 Geoffrey Keating <geoffk@redhat.com> * attribs.c: Don't include obstack.h. * builtins.c: Likewise. * cfganal.c: Likewise. * cfgbuild.c: Likewise. * cfgcleanup.c: Likewise. * emit-rtl.c: Likewise. * loop.c: Likewise. * stmt.c: Likewise. Index: cp/ChangeLog 2002-08-05 Geoffrey Keating <geoffk@redhat.com> * class.c: Don't include obstack.h. (popclass): * decl2.c: Delete bogus comment. * error.c: Don't include obstack.h. * except.c: Likewise. (dump_type): Correct comment. * method.c: Don't include obstack.h. * tree.c: Likewise. Index: java/ChangeLog 2002-08-05 Geoffrey Keating <geoffk@redhat.com> * mangle_name.c: Don't include obstack.h twice. * xref.c: Don't include obstack.h. From-SVN: r56055
2002-08-03builtins.def: Define new builtin functions exp...Roger Sayle1-3/+24
* builtins.def: Define new builtin functions exp, expf, expl, log, logf and logl (and their __builtin_* variants). * optabs.h (enum optab_index): Add new OTI_exp and OTI_log. Define exp_optab and log_optab. * optabs.c (init_optans): Initialize exp_optab and log_optab. * genopinit.c (optabs): Implement exp_optab and log_optab using exp?f2 and log?f2 patterns. * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP* and BUILT_IN_LOG* using exp_optab and log_optab respectively. (expand_builtin): Ignore the new builtins (and all cos and sin variants) when not optimizing. Expand new builtins via expand_builtin_mathfn when flag_unsafe_math_optimizations. * doc/extend.texi: Document new exp and log builtins. * doc/md.texi: Document new exp?f2 and log?f2 patterns (and previously undocumented cos?f2 and sin?f2 patterns). From-SVN: r56010
2002-07-30builtins.c (expand_builtin): Change the default behavior to only issue an ↵Roger Sayle1-15/+4
error if... * builtins.c (expand_builtin): Change the default behavior to only issue an error if the builtin function doesn't have a fallback library call. Remove several cases handled by the new default. From-SVN: r55860
2002-07-23explow.c (convert_memory_address): Fix conversion of CONSTs.Steve Ellcey1-6/+38
* gcc/explow.c (convert_memory_address): Fix conversion of CONSTs. Fix permutation of conversion and plus/mult. * gcc/builtins.c (expand_builtin_memcpy) Ensure return pointer is ptr_mode and not Pmode when POINTERS_EXTEND_UNSIGNED is defined. (expand_builtin_strncpy) Ditto. (expand_builtin_memset) Ditto. From-SVN: r55679
2002-07-16builtins.c (std_expand_builtin_va_start): Remove unused first argument.Zack Weinberg1-4/+3
* builtins.c (std_expand_builtin_va_start): Remove unused first argument. (expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and std_expand_builtin_va_start with just two arguments. * expr.h: Update prototypes. * alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h, arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h, i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h, m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h, mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c, rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h, s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h, sparc.c, stormy16-protos.h, stormy16.h, stormy16.c, xtensa-protos.h, xtensa.h, xtensa.c: Remove unused first argument from all implementations of EXPAND_BUILTIN_VA_START and all uses of std_expand_builtin_va_start. From-SVN: r55495
2002-07-16varargs.h: Replace with stub which issues #error.Zack Weinberg1-33/+15
* ginclude/varargs.h: Replace with stub which issues #error. * ginclude/stdarg.h: __builtin_stdarg_start is renamed __builtin_va_start. * builtins.def (BUILT_IN_VARARGS_START): Delete. (BUILT_IN_VA_START): New. * builtins.c (expand_builtin_va_start): Eliminate first argument and code to implement pre-ISO varargs. (std_expand_builtin_va_start): Ignore first argument; it is always 1. (expand_builtin): Handle BUILT_IN_VA_START and BUILT_IN_STDARG_START identically. Delete BUILT_IN_VARARGS_START case. * function.c (assign_parms): Delete hide_last_arg and all its uses. (mark_varargs): Delete function. * function.h (struct function): Delete 'varargs' bit. (current_function_varargs): Delete macro. * tree.h: Don't declare mark_varargs. * c-decl.c (c_function_varargs, c_mark_varargs): Delete. (c_expand_body): Don't call mark_varargs. * c-objc-common.c: Handle BUILT_IN_VA_START and BUILT_IN_STDARG_START identically. Delete BUILT_IN_VARARGS_START case. * c-tree.h: Don't declare c_mark_varargs. * c-parse.in: Remove grammar rules for '&...' (which has been commented out since before 2.7.2) and for '...' in K+R argument declarations. * builtins.c, function.c, integrate.c, sibcall.c, config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h, config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c, config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c, config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h, config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h, config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c, config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.c: Delete all references to current_function_varargs, and code predicated on that flag. * config/alpha/alpha.c (alpha_va_start), config/arc/arc.c (arc_va_start), config/i386/i386.c (ix86_va_start), config/mips/mips.c (mips_va_start), config/mn10300/mn10300.c (mn10300_va_start), config/rs6000/rs6000.c (rs6000_va_start), config/s390/s390.c (s390_va_start), config/sh/sh.c (sh_va_start), Ignore first argument; it is always 1. * config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start. * config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start. * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c: Delete m68hc11_va_start. * config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h: No need to define EXPAND_BUILTIN_VA_START. * doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Remove references to GCC-provided <varargs.h>. testsuite: * c-torture/execute/991216-3.c, c-torture/execute/strct-varg-1.c, c-torture/execute/va-arg-7.c, c-torture/execute/va-arg-8.c, c-torture/execute/va-arg-15.c, c-torture/execute/va-arg-16.c, c-torture/execute/va-arg-17.c, c-torture/execute/va-arg-19.c: Convert to use <stdarg.h>. * c-torture/execute/va-arg-3.c, c-torture/execute/va-arg-3.x: Delete. * gcc.dg/va-arg-2.c: New. * lib/gcc.exp, lib/objc.exp: Remove code to set -DNO_VARARGS. From-SVN: r55472
2002-07-06re PR c++/7099 (G++ doesn't set the noreturn attribute on std::exit and ↵Roger Sayle1-1/+1
std::abort) PR c++/7099 * builtin-attrs.def: Define new attribute lists for use in builtins.def. * builtins.def [DEF_BUILTIN]: Modify to take an additional ATTRS argument, an enumerated value defined in builtin-attrs.def that represents the attribute list for the builtins. Modify all builtin functions to pass an appropriate attribute list. Specify "abort", "exit", "_exit" and "_Exit" builtins here with their required noreturn attributes. * tree.h (enum_builtin_function): Ignore the additional parameter to DEF_BUILTIN. * builtins.c (built_in_names): Likewise. * c-common.c: (builtin_function_2): Replace the "int noreturn_p" argument with a tree representing the functions attribute list. Pass this "attrs" argument to builtin_function. No longer handle the noreturn_p processing manually. (built_in_attributes): Move the definitions from builtin-attrs.def before c_common_nodes_and_builtins. (c_common_nodes_and_builtins): Handle the new ATTRS parameter in DEF_BUILTIN, passing it to both builtin_function and the changed builtin_function_2. * doc/extend.texi: Document __builtin_abort, __builtin_exit, __builtin__exit and __builtin__Exit. * java/builtins.c (initialize_builtins): Ignore the additional parameter to DEF_BUILTIN. Handle more C/C++ specific junk in the builtins.def file. From-SVN: r55276
2002-06-11Delete SEQUENCE rtl usage outside of reorg and ssa passes.David S. Miller1-17/+21
2002-06-05 David S. Miller <davem@redhat.com> Delete SEQUENCE rtl usage outside of reorg and ssa passes. * rtl.h (gen_sequence, emit_insns, emit_insns_before, emit_insns_before_scope, emit_insns_after, emit_insns_after_scope): Delete declaration. * ada/misc.c (insert_code_for): Use emit_insn* instead of emit_insns_foo. * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE. (alpha_set_memflags): Fix comment. (set_frame_related_p): Use get_insns instead of gen_sequence. * config/alpha/alpha.md (setjmp receiver splitter): Avoid emitting no insns. * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of gen_sequence. (arm_gen_load_multiple, arm_gen_store_multiple): Likewise. * config/fr30/fr30.c (fr30_move_double): Likewise. * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr): Likewise. * config/ia64/ia64.c (spill_restore_mem): Likewise. * config/ia64/ia64.md (conditional move spliiter): Avoid emitting no insns. * config/m32r/m32r.c (gen_split_move_double): Use get_insns instead of gen_sequence. * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise. (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise. * config/sh/sh.c (sh_need_epilogue): Likewise. * config/sparc/sparc.md (current_function_calls_alloca, flat): New attributes. (setjmp pattern and split): Use them to avoid splitter which emits no RTL. * genattrtab.c (main): Emit include of function.h * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use get_insns instead of gen_sequence. * config/cris/cris.c (cris_split_movdx): Likewise. * emit-rtl.c (emit_insns*): Kill. (try_split): Expect insn list instead of SEQUENCE. (make_jump_insn_raw, make_call_insn_raw): Fix comments. (emit_*insn*): Reimplement to work with INSN lists and PATTERNs. Make them abort if a SEQUENCE is given and RTL checking is enabled. (emit_*_scope): Don't forget to set scope on final insn. (gen_sequence): Move from here... * ssa.c (gen_sequence): To here as private function. * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix comments. (expand_builtin_return, expand_builtin_mathfn): Likewise. (expand_builtin_strlen): Use get_insns instead of gen_sequence. (expand_builtin_saveregs): Use emit_insn_foo, fix comments. (expand_builtin_expect_jump): Use get_insns and fix comments. * calls.c (try_to_integrate): Use emit_insn_foo. (expand_call, emit_library_call_value_1): Likewise. * expr.c (emit_queue): Handle insn lists instead of SEQUENCE. (emit_move_insn_1): Use get_insns instead of gen_sequence. (expand_expr): Use emit_insn_foo. * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo. * except.c (build_post_landing_pads): Likewise. * flow.c (attempt_auto_inc): Likewise. * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label, expand_nl_goto_receivers, expand_decl_cleanup): Likewise. * function.c (fixup_var_refs_insn): Use get_insns instead of gen_sequence. (fixup_var_refs_1): Likewise and expect insn list from gen_foo. (fixup_memory_subreg): Use get_insns instead of gen_sequence. (fixup_stack_1, purge_addressof_1, expand_main_function, get_arg_pointer_save_area): Likewise. (optimize_bit_field, instantiate_virtual_regs_1, assign_parms, expand_function_end): Use emit_insn_foo. (record_insns, keep_stack_depressed): Work with insn list instead of SEQUENCE, fix comments. * ifcvt.c (noce_emit_store_flag, noce_try_store_flag, noce_try_store_flag_constants, noce_try_store_flag_inc, noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Use emit_insn_foo. (noce_process_if_block): Use get_insns instead of gen_sequence. * optabs.c (add_equal_note): Work with insn list, fix comments. (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo. (expand_unop, expand_complex_abs, expand_unop_insn, expand_no_conflict_block): Likewise. (gen_move_insn): Use get_insns instead of gen_sequence. (gen_cond_trap): Likewise. * integrate.c (copy_rtx_and_substitute): Likewise. (emit_initial_value_sets): Use emit_insn_foo. * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise. (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently now that RTL generators give insn lists. * sibcall.c (replace_call_placeholder): Use emit_insn_foo. * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns instead of gen_sequence. (doloop_optimize): Work with insn lists instead of SEQUENCE rtl. * explow.c (emit_stack_save, emit_stack_restore): Use get_insns instead of gen_sequence. * loop.c (move_movables, emit_prefetch_instructions, gen_add_mult, check_dbra_loop, gen_load_of_final_value): Likewise. (loop_regs_update): Work with insn list instead of SEQUENCE rtl. (product_cheap_p): Likewise, and add commentary about RTL wastage here. * lcm.c (optimize_mode_switching): Use get_insns instead of gen_sequence. * profile.c (gen_edge_profiler): Likewise. * regmove.c (copy_src_to_dest): Likewise. * reg-stack.c (compensate_edge): Likewise and fix comment. * gcse.c (process_insert_insn): Likewise. (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl. * jump.c (delete_prior_computation): Update comment. * genemit.c (gen_expand, gen_split, main): Use get_insns instead of gen_sequence, update comments to match. * recog.c (peephole2_optimize): Work with insn lists instead of SEQUENCE rtl. * sched-vis.c (print_pattern): Abort on SEQUENCE. * unroll.c (unroll_loop, find_splittable_givs, final_giv_value): Use get_insns instead of gen_sequence. (copy_loop_body): Likewise and don't emit dummy NOTE. * genrecog.c: Don't mention SEQUENCE rtl in comments. * combine.c (try_combine): Expect insn lists from split generator. * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by hand. From-SVN: r54497
2002-05-28tree.h: Forward-declare struct realvaluetype.Zack Weinberg1-0/+1
* tree.h: Forward-declare struct realvaluetype. (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not contain it. (TREE_REAL_CST_PTR): New accessor. (TREE_REAL_CST): Update. * real.h: Include machmode.h. (realvaluetype): Make it struct realvaluetype, not a typedef. (build_real): Prototype here. * tree.c: Include real.h. (build_real): Allocate the REAL_VALUE_TYPE as a separate object in GC memory, set TREE_REAL_CST_PTR to point to it. (build_real_from_int_cst): Use build_real. * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a REAL_CST. * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c, fold-const.c, print-tree.c, real.c, cp/mangle.c, cp/tree.c, f/bld.c, f/com.c, f/expr.c, f/target.c, java/decl.c, java/jcf-parse.c, java/parse.y, java/typeck.c: Include real.h. * Makefile.in, cp/Make-lang.in, f/Make-lang.in, java/Make-lang.in: Update dependency lists. From-SVN: r53959
2002-05-26alias.c: Fix formatting.Kazu Hirata1-88/+88
* alias.c: Fix formatting. * attribs.c: Likewise. * bb-reorder.c: Likewise. * bitmap.c: Likewise. * bitmap.h: Likewise. * builtins.c: Likewise. From-SVN: r53898
2002-04-23builtins.c (builtin_memset_gen_str): New function.Roger Sayle1-1/+58
2002-04-23 Roger Sayle <roger@eyesopen.com> * builtins.c (builtin_memset_gen_str): New function. (expand_builtin_memset): Optimize the case of constant length, but unknown value. testsuite: * gcc.c-torture/execute/string-opt-17.c: New test case. * gcc.c-torture/execute/memset-2.c: New test case. From-SVN: r52662
2002-04-19builtins.c: Include langhooks.h.Neil Booth1-3/+3
* builtins.c: Include langhooks.h. (lang_type_promotes_to): Remove. (expand_builtin_va_arg): Use new hook. * c-common.c (c_common_nodes_and_builtins): Don't set hook. (simple_type_promotes_to): Move to c-typeck.c. * c-common.h (simple_type_promotes_to): Remove. * c-decl.c (duplicate_decls, grokdeclarator): Update. * c-format.c: Include langhooks.h. (check_format_types): Update. * c-tree.h (c_type_promotes_to): New. * c-typeck.c (c_type_promotes_to): Move from c-common.c. (type_lists_compatible_p): Update. * langhooks-def.h (lhd_type_promotes_to): New. (LANG_HOOKS_TYPE_PROMOTES_TO): New. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. * langhooks.c (lhd_type_promotes_to): New. * langhooks.h (struct lang_hooks_for_types): New hook. * tree.h (lang_type_promotes_to): Remove. cp: * call.c (convert_type_from_ellipsis): Rename, update. * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. * cp-tree.h (convert_type_from_ellipsis): Rename. * decl.c (cxx_init_decl_processing): Don't set hook. objc: * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. From-SVN: r52512
2002-04-02builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode if ↵Steve Ellcey1-4/+11
POINTERS_EXTEND_UNSIGNED is defined. * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode if POINTERS_EXTEND_UNSIGNED is defined. From-SVN: r51778
2002-03-31builtins.c (expand_builtin_va_arg): Give warnings not errors for promoted ↵Richard Henderson1-11/+28
argument types; build trap. * builtins.c (expand_builtin_va_arg): Give warnings not errors for promoted argument types; build trap. (expand_builtin_trap): New. (expand_builtin): Use it. * stmt.c (expand_nl_goto_receivers): Likewise. * expr.h (expand_builtin_trap): Declare. * libfuncs.h (LTI_abort, abort_libfunc): New. * optabs.c (init_optabs): Init abort_libfunc. * gcc.dg/va-arg-1.c: Expect warnings, not errors. From-SVN: r51643
2002-03-27i960.md (ret): Set PC.Jan Hubicka1-1/+4
* i960.md (ret): Set PC. (nonlocal_goto): Fix expander. * builtins.c (epxand_builin_longjmp): Check that we've emitted some jump or call. From-SVN: r51478
2002-03-08re PR c/3711 (ICE in instantiate_virtual_regs_1, at function.c:3880)Jakub Jelinek1-17/+34
PR c/3711 * builtins.c (std_expand_builtin_va_arg): Do all computations on trees. * gcc.c-torture/execute/20020307-2.c: New test. From-SVN: r50438
2002-03-07defaults.h (MODE_HAS_NANS, [...]): New.Richard Sandiford1-10/+5
* defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New. (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New. * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New. (HONOR_SIGN_DEPENDENT_ROUNDING): New. * builtins.c (expand_builtin_mathfn): Use HONOR_NANS. * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y unless x and y could be infinite. (expand_unordered_cmp): New, mostly split from expand_tree_builtin. Check that the common type of both arguments is a real, even for targets without unordered comparisons. Allow an integer argument to be compared against a real. (expand_tree_builtin): Use expand_unordered_cmp. * combine.c (combine_simplify_rtx): Use the new HONOR_... macros. * cse.c (fold_rtx): Likewise. Fix indentation. * fold-const.c (fold_real_zero_addition_p): New. (fold): Use it, and the new HONOR_... macros. * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros. * jump.c (reversed_comparison_code_parts): After searching for the true comparison mode, use HONOR_NANS to decide whether it can be safely reversed. (reverse_condition_maybe_unordered): Remove IEEE check. * simplify-rtx.c (simplify_binary_operation): Use the new macros to decide which simplifications are valid. Allow the following simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b), and (a - -b) to (a + b). (simplify_relational_operation): Use HONOR_NANS. * doc/tm.texi: Document the MODE_HAS_... macros. From-SVN: r50401
2002-01-26builtins.c (expand_builtin_strncat): Remove redundant check for INTEGER_CST.Kaveh R. Ghazi1-2/+1
* builtins.c (expand_builtin_strncat): Remove redundant check for INTEGER_CST. From-SVN: r49246
2002-01-25builtins.c (expand_builtin_strncpy): Use integer_zerop instead of ↵Richard Kenner1-7/+8
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-25loop.c (emit_prefetch_instructions): Use the prefetch insn's mode, not Pmode.Aldy Hernandez1-1/+2
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-03builtins.c: Fix formatting.Kazu Hirata1-2/+2
* builtins.c: Fix formatting. * c-typeck.c: Likewise. * combine.c: Likewise. * expr.c: Likewise. * loop.c: Likewise. From-SVN: r48512
2001-12-27re PR rtl-optimization/3508 (builtin memcmp() could be optimised)Roger Sayle1-0/+14
* 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-21builtin-attrs.def (__builtin_printf_unlocked, [...]): Mark with the ↵Kaveh R. Ghazi1-5/+24
__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-17* builtins.c (apply_args_size): Change regno to unsigned.Aldy Hernandez1-1/+2
From-SVN: r48090
2001-12-15builtins.c (expand_builtin_memcmp): Mark parameter with ATTRIBUTE_UNUSED.Kaveh R. Ghazi1-1/+1
* 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-14builtins.def: Rename BUILT_IN_FSQRT to BUILT_IN_SQRT and __builtin_fsqrt to ↵Andreas Jaeger1-3/+3
__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-12builtins.c (expand_builtin_memset, [...]): Additional arguments TARGET and MODE.Roger Sayle1-132/+183
* 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-11builtins.c (expand_builtin): Use a switch statement to list those functions ↵Roger Sayle1-67/+89
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-07builtin-types.def (BT_FN_VOID_PTR_VAR): New.Janis Johnson1-2/+19
* 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-05attribs.c (handle_no_check_memory_usage_atribute): Deleted.Richard Kenner1-68/+9
* 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-04builtin-types.def (BT_FN_VOID_PTR_INT_INT): New.Janis Johnson1-0/+68
* 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-11-15expr.c (store_field): Pass tree instead of max size; callers changed.Richard Kenner1-1/+1
* 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-03builtins.c (get_memory_rtx): Properly set MEM alias set and attributes.Richard Kenner1-7/+9
* builtins.c (get_memory_rtx): Properly set MEM alias set and attributes. From-SVN: r46732
2001-11-02builtins.c (apply_args_size): Handle vector arguments.Aldy Hernandez1-0/+32
* 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-10-28builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.Richard Kenner1-6/+32
* 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-23builtins.c (expand_builtin_setjmp): Only call convert_memory_address if needed.Richard Kenner1-3/+7
* 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-23alias.c (can_address_p): Compnonents are not addressable if the containing ↵Richard Kenner1-10/+17
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-07builtins.c (expand_builtin_setjmp_receiver): Const-ify.Kaveh R. Ghazi1-1/+1
* 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-09-22* builtins.c (c_getstr): Remove unused variable.Andreas Jaeger1-1/+0
From-SVN: r45746
2001-09-11builtins.c (c_strlen): Treat an offset too large for a HOST_WIDE_INT as out ↵Matt Kraai1-1/+3
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-10builtins.c (c_getstr): Correct thinko in last change and further cleanup.Richard Kenner1-14/+7
* builtins.c (c_getstr): Correct thinko in last change and further cleanup. From-SVN: r45519
2001-09-10alias.c (clear_reg_alias_info): Use K&R format definition.Richard Kenner1-57/+66
* 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-08-27function.c (expand_function_end): Don't init arg_pointer_save_area.Richard Henderson1-7/+2
* 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-27emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.Andreas Jaeger1-17/+15
* 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-22Makefile.in, [...]: replace "GNU CC" with "GCC".Lars Brinkhoff1-12/+12
* 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* builtins.c (type_to_class): Fix typo in last change.Kaveh R. Ghazi1-1/+1
From-SVN: r45092
2001-08-21stmt.c: Don't include insn-codes.h.Zack Weinberg1-45/+48
* 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