aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
AgeCommit message (Collapse)AuthorFilesLines
2004-05-01builtins.c (fold_builtin_round): Fix comment typo.Kaveh R. Ghazi1-1/+45
* builtins.c (fold_builtin_round): Fix comment typo. (fold_builtin_lround): New function. (fold_builtin): Use it. testsuite: * gcc.dg/torture/builtin-rounding-1.c: New test. * gcc.dg/builtins-25.c: Delete. * gcc.dg/builtins-29.c: Delete. From-SVN: r81380
2004-04-29builtins.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c: Fix comment typos. From-SVN: r81291
2004-04-26builtins.c (expand_builtin_update_setjmp_buf): New function.Richard Kenner1-0/+48
* builtins.c (expand_builtin_update_setjmp_buf): New function. (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case. * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code. From-SVN: r81198
2004-04-23Makefile.in (LIBGCOV): Add _gcov_fork...Zdenek Dvorak1-0/+74
* Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp, _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve. * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID, BT_FN_INT_CONST_STRING_PTR_CONST_STRING, BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New. * builtins.c (expand_builtin_fork_or_exec): New. (expand_builtin): Call it. * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE, BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New. * c-common.c (PID_TYPE): New macro. (c_common_nodes_and_builtins): Initialize pid_type_node. * calls.c (special_function_p): Do not handle fork and exec. (expand_call): Do not handle ECF_FORK_OR_EXEC. * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, __gcov_execv, __gcov_execvp, __gcov_execve): Declare. * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, __gcov_execv, __gcov_execvp, __gcov_execve): New. * tree.h (enum tree_index): Add TI_PID_TYPE. (pid_type_node): New macro. (ECF_FORK_OR_EXEC): Removed. From-SVN: r81118
2004-04-20optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.Uros Bizjak1-0/+14
2004-04-20 Uros Bizjak <uros@kss-loka.si> * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos. (asin_optab, acos_optab): Define corresponding macros. * optabs.c (init_optabs): Initialize asin_optab and acos_optab. * genopinit.c (optabs): Implement asin_optab and acos_optab using asin?f2 and acos?f2 patterns. * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L} using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab. (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L} using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2, acossf2, acosxf2): New expanders to implement asin, asinf, asinl, acos, acosf and acosl built-ins as inline x87 intrinsics. * gcc.dg/builtins-39.c: New test. From-SVN: r80921
2004-04-20fold-const.c (fold_convert): Make function extern/public.Roger Sayle1-42/+41
* fold-const.c (fold_convert): Make function extern/public. * tree.h (fold_convert): Prototype here. * builtins.c (expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr, expand_builtin_strpbrk, expand_builtin_mempcpy, expand_builtin_bcopy, expand_builtin_bzero, expand_builtin_memcmp, expand_builtin_strcmp, expand_builtin_strncmp, stabilize_va_list, expand_builtin_sprintf, fold_trunc_transparent_mathfn, fold_builtin_logarithm, fold_builtin_exponent, fold_builtin_mempcpy, fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp, fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))". From-SVN: r80878
2004-04-19builtins.c (fold_builtin_cabs): Remove fndecl parameter.Andrew Pinski1-6/+6
* builtins.c (fold_builtin_cabs): Remove fndecl parameter. (fold_builtin): Update caller to match. From-SVN: r80850
2004-04-19re PR bootstrap/15009 (Latest CVS: Stage2 Error: bb-reorder.c needs ↵Andrew Pinski1-1/+1
initialization) 2004-04-19 Andrew PInski <pinskia@physics.uc.edu> PR bootstrap/15009 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump. PR bootstrap/14999 * builtins.c (fold_builtin_cabs): Mark fndecl as unused. From-SVN: r80849
2004-04-15PR/middle-end 14915Kaveh R. Ghazi1-1/+1
PR/middle-end 14915 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not BITS_BIG_ENDIAN. From-SVN: r80732
2004-04-15optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.Uros Bizjak1-0/+14
2004-04-14 Uros Bizjak <uros@kss-loka.si> * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb. (logb_optab, ilogb_optab): Define corresponding macros. * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab. * genopinit.c (optabs): Implement logb_optab and ilogb_optab using logb?f2 and ilogb?i2 patterns. * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L} using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab. (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L} using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT and UNSPEC_XTRACT_EXP. * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New patterns to implement fxtract x87 instruction. (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87 intrinsics. (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent x87's fxtract insn. * gcc.dg/builtins-38.c: New test. From-SVN: r80709
2004-04-14builtins.c (fold_builtin_isdigit): New.Kaveh R. Ghazi1-0/+25
* builtins.c (fold_builtin_isdigit): New. (fold_builtin): Handle BUILT_IN_ISDIGIT. * defaults.h: Add TARGET_DIGIT0 and sort. * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0. testsuite: * gcc.dg/torture/builtin-ctype-2.c: Test builtin isdigit. From-SVN: r80681
2004-04-14builtins.c (fold_builtin_cabs, [...]): Use `mathfn_built_in' to determine ↵Kaveh R. Ghazi1-23/+2
the new builtin. * builtins.c (fold_builtin_cabs, fold_builtin): Use `mathfn_built_in' to determine the new builtin. * fold-const.c (fold): Likewise. From-SVN: r80680
2004-04-14optabs.c (expand_twoval_unop): Reorder function arguments.Uros Bizjak1-2/+2
2004-04-13 Uros Bizjak <uros@kss-loka.si>: * optabs.c (expand_twoval_unop): Reorder function arguments. * builtins.c (expand_builtin_mathfn_3): Update calls to expand_twoval_unop. * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE and UNSPEC_TAN_TAN. Add missing comment. * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New patterns to implement fptan x87 instruction. (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf and tanl built-ins as inline x87 intrinsics. Define corresponding peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence. (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent x87's fptan insn. * gcc.dg/i386-387-1.c: Add new test for __builtin_tan. * gcc.dg/i386-387-2.c: Likewise. * gcc.dg/i386-387-7.c: New test. * gcc.dg/i386-387-8.c: New test. * gcc.dg/builtins-37.c: New test. From-SVN: r80677
2004-04-09builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not TYPE_MODE.Kaveh R. Ghazi1-4/+3
* builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not TYPE_MODE. From-SVN: r80567
2004-04-08builtins.c (fold_builtin_isascii, [...]): New.Kaveh R. Ghazi1-0/+43
* builtins.c (fold_builtin_isascii, fold_builtin_toascii): New. (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII. testsuite: * gcc.dg/torture/builtin-ctype-2.c: New test. From-SVN: r80508
2004-04-06builtins.c: Implement support for sincos function.Uros Bizjak1-15/+147
2004-04-06 Uros Bizjak <uros@kss-loka.si> * builtins.c: Implement support for sincos function. (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and BUILT_IN_COS{,F,L}. (expand_builtin_mathfn_3): New function. (expand_builtin): Expand BUILT_IN_SIN{,F,L} and BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if flag_unsafe_math_optimization is set. * optabs.h (enum optab_index): Add new OTI_sincos. (sincos_optab): Define corresponding macro. * optabs.c (init_optabs): Initialize sincos_optab. (expand_twoval_unop): New function. * genopinit.c (optabs): Implement sincos_optab using sincos?f3 patterns. * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS and UNSPEC_SINCOS_SIN. * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3): New patterns to implement sincos, sincosf and sincosl built-ins as inline x87 intrinsics. Define splits for sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2, cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding sincos patterns. (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2. (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2. (UNSPEC_SINCOS_SIN, UNPEC_SINCOS_COS): New unspecs to represent x87's unspec insn. * gcc.dg/builtins-36.c: New test. From-SVN: r80463
2004-03-31builtins.c, [...]: Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.Richard Kenner1-1/+1
* builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c: Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED. * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise. * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise. * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise. * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise. * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise. * config/mips/mips.c, config/rs6000/rs6000.c: Likewise. * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise. * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for REAL_TYPE, not INTEGER_TYPE. (layout_type, case VECTOR_TYPE): Simplify code. * tree.c (build_vector_type_for_mode): Remove dup unsigned setting. * tree.h: Update comments. (STRIP_NOPS): Use TYPE_UNSIGNED. (TYPE_UNSIGNED): New macro. (TYPE_TRAP_SIGNED): Remove now redundant check. (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED. * cp/call.c (joust): Use TYPE_UNSIGNED, not TREE_UNSIGNED. * cp/class.c (check_bitfield_decl): Likewise. * cp/cvt.c (type_promotes_to): Likewise. * cp/decl.c (finish_enum): Likewise. * cp/mangle.c (write_builtin_type): Likewise. * cp/semantics.c (finish_switch_cond, finish_unary_op_expr): Likewise. * cp/typeck.c (type_after_usual_arithmetic_conversions): Likewise. (build_binary_op): Likewise. * f/com.c (ffecom_arrayref_): Use TYPE_UNSIGNED, not TREE_UNSIGNED. (ffecom_expr_): Likewise. * java/jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED. * treelang/treetree.c (tree_lang_signed_or_unsigned_type): Use TYPE_UNSIGNED, not TREE_UNSIGNED. * ada/decl.c (gnat_to_gnu_entity, make_type_from_size): Use TYPE_UNSIGNED, not TREE_UNSIGNED. * ada/trans.c (tree_transform, convert_with_check): Likewise. * ada/utils.c (gnat_signed_or_unsigned_type): Likewise. (build_vms_descriptor, unchecked_convert): Likewise. * ada/utils2.c (nonbinary_modular_operation): Likewise. From-SVN: r80287
2004-03-26* builtins.c (fold_builtin): Fix error in last change.Kaveh R. Ghazi1-2/+2
From-SVN: r79975
2004-03-25builtins.c (fold_builtin): Add new builtin optimizations for sqrt and/or cbrt.Kaveh R. Ghazi1-0/+73
* builtins.c (fold_builtin): Add new builtin optimizations for sqrt and/or cbrt. * fold-const.c (fold): Likewise. testsuite: * gcc.dg/torture/builtin-explog-1.c: Add new cases. * gcc.dg/torture/builtin-math-1.c: Likewise. * builtin-power-1.c: New test. From-SVN: r79959
2004-03-22bt-load.c, [...]: Remove unnecessary casts.Kazu Hirata1-1/+1
* bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c, ggc-page.c, integrate.c, var-tracking.c, web.c: Remove unnecessary casts. From-SVN: r79811
2004-03-22real.h (struct real_value): Use the same type for all bitfields.Alexandre Oliva1-1/+1
* real.h (struct real_value): Use the same type for all bitfields. Rename exp to uexp. (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp. Adjust all uses of exp... * builtins.c: ... here, ... * emit-rtl.c: ... here, and ... * real.c: ... and here. From-SVN: r79802
2004-03-20alias.c, [...]: Replace calls via (*targetm.foo) () with targetm.foo ().Kazu Hirata1-1/+1
* alias.c, attribs.c, bt-load.c, builtins.c, c-common.c, c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c, cse.c, dbxout.c, dwarf2out.c, except.c, final.c, haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c, sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c, vmsdbgout.c: Replace calls via (*targetm.foo) () with targetm.foo (). From-SVN: r79729
2004-03-17builtins.c (apply_args_size): Use reg_raw_mode.Eric Christopher1-87/+20
2004-03-17 Eric Christopher <echristo@redhat.com> * builtins.c (apply_args_size): Use reg_raw_mode. (apply_result_size): Ditto. From-SVN: r79609
2004-03-17builtins.c (integer_valued_real_p): Add builtin rint.Kaveh R. Ghazi1-0/+6
* builtins.c (integer_valued_real_p): Add builtin rint. (fold_builtin): Likewise. * convert.c (convert_to_real): Likewise. testsuite: * gcc.dg/torture/builtin-integral-1.c: Also check for `rint'. From-SVN: r79572
2004-03-14alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) () with ↵Roger Sayle1-1/+1
lang_hooks.foo (). * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) () with lang_hooks.foo (). * builtins.c (expand_builtin_va_arg): Likewise. * c-common.c (fname_as_string, c_common_truthvalue_conversion, c_common_type_for_mode, c_common_nodes_and_builtins, handle_mode_attribute, handle_vector_size_attribute): Likewise. * c-convert.c (convert): Likewise. * c-format.c (check_format_types): Likewise. * c-objc-common.c (c_tree_printer): Likewise. * c-typeck.c (build_unary_op, build_conditional_expr, build_binary_op): Likewise. * calls.c (try_to_integrate, expand_call, emit_library_call_value_1): Likewise. * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p): Likewise. * cgraphunit.c (record_call_1, cgraph_analyze_function, cgraph_expand_function): Likewise. * convert.c (convert_to_pointer, convert_to_integer): Likewise. * coverage.c (build_fn_info_type, build_ctr_info_type, build_gcov_info, create_coverage): Likewise. * dbxout.c (dbxout_init): Likewise. * diagnostic.c (diagnostic_report_current_function): Likewise. * dojump.c (do_jump): Likewise. * dwarf2out.c (dwarf2_name): Likewise. * except.c (init_eh): Likewise. * explow.c (expr_size, int_expr_size): Likewise. * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add): Likewise. * expr.c (store_expr, store_constructor, safe_from_p, expand_expr_real, do_store_flag, try_casesi): Likewise. * function.c (push_function_context_to, pop_function_context_from, free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type, put_var_into_stack, allocate_struct_function, current_function_name): Likewise. * integrate.c (copy_decl_for_inlining, expand_inline_function): Likewise. * langhooks.c (lhd_clear_binding_stack, write_global_declarations, lhd_print_error_function): Likewise. * opts.c (handle_option, decode_options): Likewise. * passes.c (open_dump_file): Likewise. * print-tree.c (print_node): Likewise. * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands, expand_decl_cleanup, emit_case_nodes): Likewise. * stor-layout.c (variable_size): Likewise. * toplev.c (announce_function, wrapup_global_declarations, check_global_declarations, compile_file, default_tree_printer, process_options, lang_dependent_init, finalize): Likewise. * tree-dump.c (dequeue_and_dump): Likewise. * tree-inline.c (remap_decl, remap_block, copy_body_r, initialize_inlined_parameters, declare_return_variable, inlinable_function_p, expand_call_inline, optimize_inline_calls, walk_tree, copy_tree_r): Likewise. * tree-optimize.c (tree_rest_of_compilation): Likewise. * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp, unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl, variably_modified_type_p, dump_tree_statistics): Likewise. * varasm.c (assemble_variable, compare_constant, copy_constant, force_const_mem, compute_reloc_for_constant, output_constant, output_addressed_constants, initializer_constant_valid_p): Likewise. From-SVN: r79481
2004-03-12builtins.c (expand_builtin_mathfn): Add pow10* to the existing exp10* case.Kaveh R. Ghazi1-0/+6
* builtins.c (expand_builtin_mathfn): Add pow10* to the existing exp10* case. (expand_builtin): Likewise. testsuite: * gcc.dg/builtins-34.c: Also check pow10*. From-SVN: r79383
2004-03-10optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.Uros Bizjak1-0/+14
2004-03-10 Uros Bizjak <uros@kss-loka.si> * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2. (exp10_optab, exp2_optab): Define corresponding macros. * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab. * genopinit.c (optabs): Implement exp10_optab and exp2_optab using exp10?f2 and exp2?f2 patterns. * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L} using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab. (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L} using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l, exp2, exp2f and exp2l built-ins as inline x87 intrinsics. * gcc.dg/builtins-34.c: New test. From-SVN: r79279
2004-03-06tree.h (BUILTIN_EXP10_P, [...]): New macros.Kaveh R. Ghazi1-18/+6
* tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P, BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros. * builtins.c (fold_builtin_logarithm, fold_builtin): Use new macros. * fold-const.c (fold_mathfn_compare, fold): Likewise. From-SVN: r79023
2004-03-06* builtins.c: Consistently use logN not log* in comments.Kaveh R. Ghazi1-4/+4
From-SVN: r79009
2004-03-02builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.Kazu Hirata1-5/+1
* builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove. (expand_builtin_setjmp_setup): Use targetm.builtin_setjmp_frame_value instead of BUILTIN_SETJMP_FRAME_VALUE. * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison. * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New. (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE. * target.h (gcc_target): Add builtin_setjmp_frame_value. * targhooks.c (default_builtin_setjmp_frame_value): New. * targhooks.h: Add a prototype for default_builtin_setjmp_frame_value. * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to TARGET_BUILTIN_SETJMP_FRAME_VALUE. From-SVN: r78789
2004-02-26builtins.c (apply_args_register_offset): Remove.Kazu Hirata1-14/+0
* builtins.c (apply_args_register_offset): Remove. * tree.h: Remove the corresponding prototype. From-SVN: r78533
2004-02-23re PR c/14188 (Suggestion: improve warning message for call through ↵Eric Botcazou1-0/+1
incompatible type) PR c/14188 * builtins.c (expand_builtin_va_arg): Emit an informative message if a trap is generated. * c-typeck.c (build_function_call): Likewise. Co-Authored-By: Falk Hueffner <falk@debian.org> From-SVN: r78294
2004-02-21alias.c (OUTGOING_REGNO): Don't define the default.Kazu Hirata1-12/+1
* alias.c (OUTGOING_REGNO): Don't define the default. * builtins.c (OUTGOING_REGNO): Likewise. (INCOMING_REGNO): Likewise. (apply_args_register_offset): Always use OUTGOING_REGNO. * combine.c (OUTGOING_REGNO): Likewise. * sibcall.c (OUTGOING_REGNO): Likewise. * defaults.h (INCOMING_REGNO): Provide the default. (OUTGOING_REGNO): Likewise. From-SVN: r78203
2004-02-11optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.Uros Bizjak1-0/+14
2004-02-11 Uros Bizjak <uros@kss-loka.si> * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2. (log10_optab, log2_optab): Define corresponding macros. * optabs.c (init_optabs): Initialize log10_optab and log2_optab. * genopinit.c (optabs): Implement log10_optab and log2_optab using log10?f2 and log2?f2 patterns. * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L} using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab. (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L} using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2): New patterns to implement log10, log10f, log10l, log2, log2f and log2l built-ins as inline x87 intrinsics. * gcc.dg/builtins-33.c: New test. From-SVN: r77675
2004-02-09re PR libstdc++/5625 ([mips] exception unwinding creates invalid pointer on ↵James E Wilson1-0/+3
mips) PR libstdc++/5625 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New. * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER. * builtins.def (BUILT_IN_EXTEND_POINTER): New. * except.c (expand_builtin_extend_pointer): New. * except.h (expand_builtin_extend_pointer): Declare. From-SVN: r77554
2004-02-07builtins.c (expand_builtin_signbit): Use extract_bit_field instead of ↵Roger Sayle1-22/+23
gen_highpart or gen_lowpart when... * builtins.c (expand_builtin_signbit): Use extract_bit_field instead of gen_highpart or gen_lowpart when the floating point format is wider than the result mode. Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com> From-SVN: r77439
2004-02-02alias.c (record_set): Use hard_regno_nregs.Jan Hubicka1-1/+1
* alias.c (record_set): Use hard_regno_nregs. * bt-load.c (find_btr_reference, note_btr_set): Likewise. * builtins.c (apply_args_size): Likewise. * caller-save.c (setup_save_areas, save_call_clobbered_regs, mark_set_regs, add_stored_regs, mark_referenced_regs, insert_restore, insert_save, insert_one_insn): Likewise. * cfgcleanup.c: Include regs.h (mark_effect, mentions_nonequal_regs): Likewise. * cfgrtl.c (mark_killed_regs): Likewise * combine.c (update_table_tick, record_value_for_reg, record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p, reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths, reg_bitfield_target_p, distribute_notes): Likewise. * cse.c (mention_regs, insert, invalidate, invalidate_for_call, exp_equiv_p, cse_insn): Likewise. * cselib.c (cselib_lookup): Likewise. (cselib_invalidate_regno, cselib_record_set): Likewise. * df.c (df_ref_record): Likewise. * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor): Likewise. * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg, count_or_remove_death_notes_bb): Likewise. * function.c (aggregate_value_p, keep_stack_depressed): Likewise. * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts, mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise. * integrate.c (mark_stores): Likewise. * jump.c (delete_prior_computation): Likewise. * lcm.c (reg_dies, reg_becomes_live): Likewise. * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise. * loop.c (LOOP_REGNO_NREGS): Likewise. * postreload.c (reload_combine, reload_combine_note_store, reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise. * ra-colorize.c (combine, color_usable_p, get_free_reg, calculate_dont_begin, calculate_dont_begin, colorize_one_web, try_recolor_web, insert_coalesced_conflicts, check_colors, break_precolored_alias): Likewise. * ra-debug.c: Include regs.h (ra_print_rtx_object): Likewise. * ra-rewrite (choose_spill_colors): Likewise. (spill_same_color_p, update_spill_colors, spill_is_free): Likewise. * ra.c (init_ra): Likewise. * recog.c (reg_fits_class_p, peep2_reg_dead_p, peep2_find_free_register): Likewise. * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise. * regclass.c (hard_regno_nregs): New array. (init_reg_modes_once): Initialize it. (choose_hard_reg_mode): Use it. (record_reg_classes): Likewise. * regmove.c (mark_flags_life_zones): Likewise. * regrename.c (note_sets, clear_dead_regs, regrename_optimize, scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno, copy_value, maybe_mode_change, find_oldest_value_reg, copyprop_hardreg_forward_1): * regs.h (hard_regno_nregs): Declare. * realod.c (reload_inner_reg_of_subreg): Use it. (push_reload, combine_reloads, find_dummy_reload, hard_reg_set_here_p, operands_match_p, decompose, find_reloads, refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p, reload_adjust_reg_for_mode): Likewise. * reload1.c (compute_use_by_pseudos, count_pseudo, count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live, spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use, clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p allocate_reload_reg, choose_reload_regs, emit_reload_insns, delete_output_reload): Likewise. * resource.c (update_live_status, mark_referenced_resources, mark_set_resources, mark_target_live_regs): Likewise. * rtlanal.c: Include regs.h (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p, find_regno_note, find_reg_fusage, subreg_regno_offset, subreg_offset_representable_p, hoist_test_store): Likewise. * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise. * sched-rgn.c (check_live_1, update_live_1): Likewise. * stmt.c: Include regs.h (decl_conflicts_with_clobbers_p): Likewise. * varasm.c (make_decl_rtl): Likewise. * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy. From-SVN: r77088
2004-02-01builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations isn't set...Roger Sayle1-3/+4
* builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations isn't set, don't call expand_builtin_mathfn_2 to use the pow optab. (expand_builtin): Always call expand_builtin_pow. From-SVN: r77071
2004-02-01builtins.def (BUILT_IN_SIGNBIT, [...]): New GCC builtins.Roger Sayle1-0/+144
* builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF, BUILT_IN_SIGNBITL): New GCC builtins. * builtins.c (expand_builtin_signbit): New function to RTL expand calls to signbit, signbitf and signbitl as inline intrinsics. (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*. (fold_builtin_signbit): New function to perform constant folding of signbit, signbitf and signbitl. (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*. * doc/extend.texi: Document new signbit{,f,l} builtins. * gcc.dg/builtins-1.c: Also test for __builtin_signbit{,f,l}. * gcc.dg/builtins-31.c: New testcase. * gcc.dg/builtins-32.c: New testcase. From-SVN: r77070
2004-01-23real.c (real_floor, real_ceil): Tweak to allow input and output arguments to ↵Roger Sayle1-0/+35
overlap. * real.c (real_floor, real_ceil): Tweak to allow input and output arguments to overlap. (real_round): New function to implement round(3m) semantics. * real.h (real_round): Prototype here. * builtins.c (fold_builtin_round): New function to constant fold round, roundf and roundl. (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}. * gcc.dg/builtins-29.c: New test case. From-SVN: r76428
2004-01-18builtins.c (expand_builtin_expect_jump): Fix thinko of reusing live "next" ↵Roger Sayle1-8/+12
variable, which can lead to an infinite loop. * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing live "next" variable, which can lead to an infinite loop. From-SVN: r76111
2004-01-17builtins.c (expand_builtin_expect_jump): Fix mistake in my last patch.Roger Sayle1-6/+6
* builtins.c (expand_builtin_expect_jump): Fix mistake in my last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL. From-SVN: r76064
2004-01-15builtins.c (expand_builtin_va_end): Don't use EXPAND_BUILTIN_VA_END.Kazu Hirata1-5/+0
* builtins.c (expand_builtin_va_end): Don't use EXPAND_BUILTIN_VA_END. * system.h (EXPAND_BUILTIN_VA_END): Poison. * config/d30v/d30v.h: Remove a commented-out definition of EXPAND_BUILTIN_VA_END. * config/stormy16/stormy16.h: Likewise. From-SVN: r75906
2004-01-14builtins.c (std_expand_builtin_va_arg): Align operand when needed.Jan Hubicka1-0/+22
* builtins.c (std_expand_builtin_va_arg): Align operand when needed. * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic functions accepting SSE arguments (function_arg): Warn only when asked to warn. * i386.h (ix86_args): Add warn_sse/warn_mmx fiels. From-SVN: r75892
2004-01-13builtins.c (expand_builtin_expect_jump): Simplify logic.Roger Sayle1-44/+52
* builtins.c (expand_builtin_expect_jump): Simplify logic. Handle conditional jumps that drop through to unconditional jumps or the end of the sequence. From-SVN: r75780
2004-01-11Update Copyright year.Jakub Jelinek1-1/+1
From-SVN: r75685
2004-01-11re PR middle-end/13392 (ICE in convert_from_eh_region_ranges_1, at ↵Jakub Jelinek1-35/+11
except.c:1133) PR middle-end/13392 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps to drop through label. Don't fall back to SCC even when conditional jump has not been found. * g++.dg/opt/expect2.C: New test. From-SVN: r75684
2004-01-06alias.c: Fix comment typos.Kazu Hirata1-1/+1
* alias.c: Fix comment typos. * builtins.c: Likewise. * cfg.c: Likewise. * df.c: Likewise. * dominance.c: Likewise. * dwarf2out.c: Likewise. * emit-rtl.c: Likewise. * expr.c: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * gcse.c: Likewise. * genattrtab.c: Likewise. * genrecog.c: Likewise. * gensupport.c: Likewise. * ggc-zone.c: Likewise. * integrate.c: Likewise. * local-alloc.c: Likewise. * loop.c: Likewise. * recog.c: Likewise. * regmove.c: Likewise. * reg-stack.c: Likewise. * reorg.c: Likewise. * rtlanal.c: Likewise. * rtl.h: Likewise. * sched-ebb.c: Likewise. * simplify-rtx.c: Likewise. * toplev.c: Likewise. * varasm.c: Likewise. From-SVN: r75475
2004-01-01builtins.c (expand_builtin_apply_args_1): Call force_operand on ↵Hans-Peter Nilsson1-2/+5
plus_constant result. * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]: Call force_operand on plus_constant result. From-SVN: r75306
2003-12-30builtins.c (expand_builtin_apply_args_1): Fix typo in previous change.Nathan Sidwell1-1/+1
* builtins.c (expand_builtin_apply_args_1): Fix typo in previous change. From-SVN: r75234