summaryrefslogtreecommitdiffstats
path: root/gcc/builtins.c
Commit message (Collapse)AuthorAgeFilesLines
* PR tree-optimization/19967kazu2005-02-161-36/+44
| | | | | | | | | | | | | | | | * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk, expand_builtin_strchr, expand_builtin_strrchr): Take a new argument TYPE. Adjust calls to fold_builtin_XXX. (expand_builtin, fold_builtin_1): Adjust calls to expand_builtin_XXX. (fold_builtin_strchr, fold_builtin_strpbrk, fold_builtin_strstr, fold_builtin_strrchr): Convert the folded result to a requested type TYPE. * testsuite/gcc.dg/pr19967.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95109 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.h (enum optab_index): Add new OTI_ldexp.uros2005-02-121-1/+14
| | | | | | | | | | | | | | | | | | | | | | (ldexp_optab): Define corresponding macro. * optabs.c (init_optabs): Initialize ldexp_optab. * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3 patterns. * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L} using ldexp_optab. (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set. * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders to implement ldexpf, ldexp and ldexpl built-ins as inline x87 intrinsics. testsuite: * gcc.dg/builtins-34.c: Also check ldexp*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94931 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-complex.c (expand_complex_libcall): New.rth2005-02-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | (expand_complex_multiplication): Use it for c99 compliance. (expand_complex_division): Likewise. * fold-const.c (fold_complex_add, fold_complex_mult): New. (fold): Call them. * builtins.c (built_in_names): Remove const. * tree.c (build_common_builtin_nodes): Build complex arithmetic builtins. * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New. (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New. (built_in_names): Remove const. * c-common.c (c_common_type_for_mode): Handle complex modes. * flags.h, toplev.c (flag_complex_method): Rename from flag_complex_divide_method. * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3, __mulsc3, __muldc3, __mulxc3, __multc3): New. * libgcc2.h: Declare them. * libgcc-std.ver: Export them. * mklibgcc.in (lib2funcs): Build them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94909 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-02-10 Richard Guenther <rguenth@gcc.gnu.org>rguenth2005-02-101-0/+53
| | | | | | | | | | * builtins.c (fold_builtin_powi): New function. (fold_builtin_1): Call it. * gcc.dg/builtins-52.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94831 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (DEF_BUILTIN): Add COND argument.rth2005-02-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree.h (DEF_BUILTIN): Likewise. * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN, DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to match. (DEF_BUILTIN_STUB): New. (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it. * c-common.c (DEF_BUILTIN): Add COND argument. * tree.c (local_define_builtin): New. (build_common_builtin_nodes): New. ada/ * utils.c (gnat_define_builtin): Remove. (gnat_install_builtins): Use build_common_builtin_nodes. fortran/ * f95-lang.c (gfc_init_builtin_functions): Call build_common_builtin_nodes; do not define any functions handled by it. java/ * builtins.c (initialize_builtins): Call build_common_builtin_nodes. * decl.c (java_init_decl_processing): Initialize const_ptr_type_node. treelang/ * treetree.c (treelang_init_decl_processing): Call build_common_builtin_nodes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94785 138bc75d-0d04-0410-961f-82ee72b054a4
* * fold-const.c (fold_strip_sign_ops): New function to simplify asayle2005-02-091-14/+34
| | | | | | | | | | | | | | | | | | | | | floating point expression ignoring the sign of the result. (fold) <ABS_EXPR>: Use it to simplify fabs(x). (fold) <MULT_EXPR>: Use it to simplify x*x. * tree.h (fold_strip_sign_ops): Prototype here. * builtins.c (fold_builtin_copysign): Take an additional FNDECL argument. Use fold_strip_sign_ops to simplify the first argument. (fold_builtin_pow): Use fold_strip_sign_ops to simplify the first argument when the second argument is an even integer constant, but only with -funsafe_math_optimizations. (fold_builtin_1): Update call to fold_builtin_copysign. * gcc.dg/builtins-48.c: New test case. * gcc.dg/builtins-49.c: New test case. * gcc.dg/builtins-50.c: New test case. * gcc.dg/builtins-51.c: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94779 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-02-09 Richard Guenther <rguenth@gcc.gnu.org>rguenth2005-02-091-0/+69
| | | | | | | | | | | | | | | | | | | | | PR middle-end/19402 * builtins.def: New __builtin_powi[lf]. * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI. (expand_builtin_powi): New function. (expand_builtin): Dispatch to expand_builtin_powi. * libgcc2.h: Add prototypes for __builtin_powi[lf]. * libgcc2.c: Add __builtin_powi[lf] implementation. * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs. * optabs.h: Add powi_optab. * optabs.c (init_optabs): Initialize powi_optab. * doc/extend.texi: Document __builtin_powi[lf]. * gcc.dg/pr19402-1.c: New testcase. * gcc.dg/pr19402-2.c: likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94774 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-02-07 Richard Guenther <rguenth@gcc.gnu.org>rguenth2005-02-071-3/+6
| | | | | | | | | | | | | | | | PR middle-end/19775 * builtins.c (fold_builtin_sqrt): Transform sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not pow(x,y*0.5). * gcc.dg/torture/builtin-power-1.c: Disable test for invalid transformation. * gcc.dg/builtins-10.c: Likewise. Disable one test we no longer optimize. * gcc.dg/builtins-47.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94701 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_copysign): New.rth2005-01-281-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (expand_builtin): Call it. * genopinit.c (optabs): Add copysign_optab. * optabs.c (init_optabs): Initialize it. (expand_copysign): New. * optabs.h (OTI_copysign, copysign_optab): New. (expand_copysign): Declare. * config/alpha/alpha.md (UNSPEC_COPYSIGN): New. (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New. * config/i386/i386.c (ix86_build_signbit_mask): Split from ... (ix86_expand_fp_absneg_operator): ... here. (ix86_split_copysign): New. * config/i386/i386-protos.h: Update. * config/i386/i386.md (UNSPEC_COPYSIGN): New. (copysignsf3, copysigndf3): New. * config/ia64/ia64.md (UNSPEC_COPYSIGN): New. (copysignsf3, ncopysignsf3): New. (copysigndf3, ncopysigndf3): New. (copysignxf3, ncopysignxf3): New. * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94357 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,jakub2005-01-241-13/+19
| | | | | | | | | | | | expand_builtin_printf, expand_builtin_fprintf, expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE checking against POINTER_TYPE. (validate_arglist): Handle POINTER_TYPE code by checking POINTER_TYPE_P. * g++.dg/tree-ssa/empty-1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94147 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (fold_builtin_fabs): Convert argument to the appropriatesayle2005-01-121-0/+2
| | | | | | | | type as args of unprototyped builtins aren't automatically promoted. (fold_builtin_abs): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93220 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/18916amodra2005-01-111-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap. * expr.h (struct locate_and_pad_arg_data): Add "boundary". * function.c (locate_and_pad_parm): Set new field. (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY. Tweak where_pad test to include "none". Always set mem align for stack_parm. (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment not sufficient for type. (assign_parm_setup_block): If stack_parm is zero on entry, always make a new stack local. Block move old stack parm if necessary to new aligned stack local. (assign_parm_setup_stack): Use a block move to handle potentially misaligned entry_parm. (assign_parms_unsplit_complex): Specify required alignment when creating stack local. * calls.c (compute_argument_addresses): Override alignment of stack arg calculated from its type with the alignment given by FUNCTION_ARG_BOUNDARY. (store_one_arg): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93179 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/18828jakub2005-01-071-52/+34
| | | | | | | | | | | | | | | | * builtins.c (expand_builtin_next_arg): Remove argument and all the argument checking. (expand_builtin): Adjust caller. (expand_builtin_va_start): Likewise. Remove error for too many arguments. (fold_builtin_next_arg): Issue error for too many arguments. After checking arguments, replace them with magic arguments that prevent further checking of the args. * gcc.dg/20050105-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93040 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/18951jakub2004-12-141-0/+4
| | | | | | | | | | | * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2, expand_builtin_mathfn_3): Avoid using arguments passed to save_expr after that call. * gcc.c-torture/execute/20041213-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92151 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.def (SET_TYPE): Remove.nathan2004-12-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (CONSTRUCTOR): Update description. * builtins.c (type_to_class) Remove SET_TYPE case. * dbxout.c (dbxout_type): Likewise. * dwarf2out.c (is_base_type): Likewise. (gen_set_type_die): Remove. (gen_type_die): Remove SET_TYPE case. * expr.c (count_type_elements): Likewise. (mostly_zeroes_p): Likewise. (store_constructor): Likewise. * print_tree.c (print_node): Likewise. * stor-layout.c (layout_type): Likewise. * tree-browser.c (browse_tree): Likewise. * tree-inline.c (remap_type): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. * tree.c (type_contains_plaeholder_1, type_hash_eq, variably_modified_type_p, initializer_zerop): Likewise. * tree.h (SET_OR_ARRAY_CHECK): Remove. (AGGREGATE_TYPE_P): Remove SET_TYPE check. (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK. * typeclass.h (enum type_class): Remove set_type_class. * varasm.c (const_hash_1): Remove SET_TYPE case. (compare_constant, copy_constant, output_constant): Likewise. * config/i386/i386.c (classify_argument): Likewise. * config/ia64/ia64.c (hfa_element_mode): Likewise. * config/sparc/sparc.c (sparc_type_code): Likewise. * ada/decl.c (gnat_substitute_in_type): Remove SET_TYPE case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91931 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c: Fix comment typos.kazu2004-12-051-4/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91749 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-12-04 Andrew Pinski <pinskia@physics.uc.edu>pinskia2004-12-041-9/+28
| | | | | | | | | | | | | | | | PR middle-end/17909 * builtins.c (fold_builtin_next_arg): Export and return true when there is a warning or an error. (expand_builtin_va_start): When fold_builtin_next_arg returns true, return const0_rtx. (expand_builtin): Likewise. * gimplify.c (gimplify_call_expr): Error out if there is not enough arguments to va_start. Call fold_builtin_next_arg also on the second argument. * tree.h (fold_builtin_next_arg): Prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91727 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.h (struct function): Remove calls_longjmp.zack2004-11-231-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (current_function_calls_longjmp): Delete. * tree.h (ECF_LONGJMP): Delete. (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN) (ECF_LIBCALL_BLOCK): Everybody slide down one. (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments. * builtins.c (expand_builtin_longjmp): Don't set current_function_calls_longjmp. * calls.c (special_function_p): Mark longjmp and siglongjmp with ECF_NORETURN, not ECF_LONGJMP. (emit_call_1, expand_call, emit_library_call_value_1): Don't check for ECF_LONGJMP. * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt) (need_fake_edge_p): Likewise. * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP. * system.h: Poison NON_SAVING_SETJMP. * function.c (use_register_for_decl) * gcse.c (compute_hash_table_work, compute_store_table) * postreload-gcse.c (record_opr_changes) * reload.c (find_equiv_reg) * reload1.c (reload) * config/i386/i386.c (ix86_can_use_return_insn_p): Remove code conditional on NON_SAVING_SETJMP. * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP. * config/i386/sysv3.h: Delete file. * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91101 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument"jsm282004-11-091-9/+10
| | | | | | | | | | instead of "arg" in diagnostics. testsuite: * gcc.dg/builtin-prefetch-1.c: Update expected diagnostic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90338 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,jsm282004-11-091-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c, gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c, tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c, config/avr/avr.c, config/c4x/c4x.c, config/darwin.c, config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c, config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c, config/iq2000/iq2000.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h, config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.c, config/rs6000/host-darwin.c, config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c, config/sh/symbian.c, config/stormy16/stormy16.c, config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %< and %> as appropriate. Use %' as apostrophe in diagnostics where applicable. Use %< and %> in place of '' quotes where applicable. Use %qs in place of %<%s%>. Consistently quote __builtin function names. ada: * misc.c (gnat_handle_option): Use %< and %> for quoting in warning message. cp: * call.c, class.c, decl.c, decl2.c, error.c, mangle.c, parser.c, pt.c, search.c, semantics.c, typeck.c: Use %q, %< and %> for quoting in diagnostics. * parser.c (cp_parser_sizeof_operand): Use '' instead of `' for quoting in printf format. * decl.c (duplicate_decls, start_decl): Use %qD instead of unquoted %D. objc: * objc-act.c: Use %q, %< and %> for quoting in diagnostics. testsuite: * gcc.dg/builtin-prefetch-1.c: Adjust expected messages. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90337 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_return_addr,kazu2004-11-041-3/+3
| | | | | | | | | | expand_builtin_longjmp, expand_builtin_trap): Make them static. * expr.h: Remove the prototypes for expand_builtin_longjmp and expand_builtin_trap. * tree.h: Remove the prototype for expand_builtin_return_addr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90087 138bc75d-0d04-0410-961f-82ee72b054a4
* * btest-gcc.sh (TESTLOGS): Examine regressions in libstdc++,geoffk2004-10-271-33/+27
| | | | | | | libffi, and libjava. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89629 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_memmove): If fold_builtin_memmoverth2004-10-191-1/+1
| | | | | | | succeeds, only expand the result. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89282 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c/17301jsm282004-10-101-0/+5
| | | | | | | | | | | * builtins.c (expand_builtin_va_start): Check for too few arguments to va_start. testsuite: * gcc.dg/pr17301-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88835 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lex.c (interpret_float): Give a pedwarn rather than a warningjsm282004-10-081-1/+8
| | | | | | | | | | | | for an out-of-range floating point constant. * builtins.c (fold_builtin_inf): Give a pedwarn rather than a warning if the target format does not support infinities. testsuite: * gcc.dg/float-range-1.c, gcc.dg/float-range-2.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88793 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_mempcpy): Move tree handling code toghazi2004-10-081-66/+42
| | | | | | | | | | fold_builtin_mempcpy. Accept a type parameter. Delete duplicate code. (expand_builtin_strcat): Accept a type parameter. (fold_builtin_mempcpy): Accept a type and endp parameter. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88762 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_strncpy): Delete duplicate code.ghazi2004-10-081-32/+12
| | | | | | | Accept an `exp' instead of an `arglist'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88761 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_strcpy): Delete duplicate code.ghazi2004-10-061-32/+17
| | | | | | | | | | | | | Accept an expression instead of an arglist. (expand_builtin_stpcpy): Accept an expression instead of an arglist. testsuite: * gcc.c-torture/execute/builtins/lib/strcpy.c: Don't abort when optimizing for size. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88604 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_memmove): Delete duplicate codeghazi2004-10-051-29/+17
| | | | | | | | | | and accept a tree type for the result. (expand_builtin_bcopy): Accept a tree type for the result. (fold_builtin_memmove): Accept an arglist and tree type for the result. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88563 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_memcpy): Delete duplicate codeghazi2004-10-041-18/+7
| | | | | | | and make the first parameter the expression not the arglist. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88466 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,ghazi2004-10-031-142/+20
| | | | | | | expand_builtin_strncmp): Delete duplicate code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88437 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_strstr, expand_builtin_strchr,ghazi2004-10-011-336/+43
| | | | | | | | | | expand_builtin_strrchr, expand_builtin_strpbrk, expand_builtin_strncat, expand_builtin_strspn, expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88378 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_strlen): Do not call emit_move_insnuweigand2004-09-301-7/+7
| | | | | | | | | with a PLUS as source operand. (expand_movstr): Likewise. (expand_builtin_stpcpy): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88322 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE touweigand2004-09-261-0/+8
| | | | | | | reflect size of memory regions being compared. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88142 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPRuweigand2004-09-261-6/+11
| | | | | | | expressions. Always clear MEM_SIZE and alias set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88141 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c: Fix a comment typo.kazu2004-09-231-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87947 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-22 Eric Christopher <echristo@redhat.com>echristo2004-09-231-213/+90
| | | | | | | | | | | | | | | * builtins.c (simplify_builtin_va_start): Remove. (simplify_builtin): Ditto. (fold_builtin_strchr): Ditto. (simplify_builtin_*): Rename remainders to fold_builtin_*. (expand_builtin): Fix up for above changes. (fold_builtin_1): Add new folders. Change for above. (expand_builtin_va_start): Call fold_builtin_next_arg. * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin. * tree.h: Remove prototype for simplify_builtin. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87921 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-20 Paolo Bonzini <bonzini@gnu.org>bonzini2004-09-201-1/+1
| | | | | | | | | | | | * builtins.c (fold_builtin): Call the new omonymous target hook for machine-dependent built-ins. * target-def.h (TARGET_FOLD_BUILTIN): New. * target.h (struct gcc_target): Add the fold_builtin hook. * targhooks.c (default_fold_builtin): New. * targhooks.h (default_fold_builtin): Declare it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87756 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>zack2004-09-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Zack Weinberg <zack@codesourcery.com> * alias.c (find_base_decl): Remove unreachable case '3' block. * expr.c (safe_from_p): Abort if passed a type. * tree-gimple.c (recalculate_side_effects): Abort if passed anything other than an expression. * tree-ssa-pre.c (phi_translate): Return expr immediately if is_gimple_min_invariant is true for it. Reorder cases for clarity. Abort on un-handled tree classes. (valid_in_set): Likewise. * tree.c (tree_code_class_strings): New static data. * tree.h (enum tree_code_class): New. (tree_code_class_strings): Declare. (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P) (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P) (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros. (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS) (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update. * tree.def, c-common.def, objc/objc-tree.def: Use tree_code_class enumeration constants instead of code letters. * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c Update to match. * LANGUAGES: Add note about change. ada: * ada-tree.def: Use tree_code_class enumeration constants instead of code letters. * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c: Update for new tree-class enumeration constants. cp: * cp-tree.def: Use tree_code_class enumeration constants instead of code letters. * call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c * mangle.c, pt.c, semantics.c, tree.c, typeck.c: Update for new tree-class enumeration constants. fortran: * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class enumeration constants. java: * java-tree.def: Use tree_code_class enumeration constants instead of code letters. * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for new tree-class enumeration constants. treelang: * treetree.c: Update for new tree-class enumeration constants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87675 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc:jsm282004-09-151-27/+27
| | | | | | | | | | | | | | | | | | | | | | | | | * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c, except.c, fold-const.c, function.c, langhooks.c, params.c, reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c, tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q for quoting in diagnostics going through pretty-print.c. Use '' for quoting in other diagnostic text. * langhooks.c: Include intl.h. Mark text locating diagnostics for translation. * Makefile.in (langhooks.o): Update dependencies. * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic formats. gcc/testsuite: * g++.dg/ext/member-attr.C, g++.dg/warn/deprecated.C, gcc.dg/deprecated.c, gcc.dg/noreturn-1.c, gcc.dg/noreturn-4.c: Update expected messages. libmudflap: * testsuite/libmudflap.c/pass35-frag.c: Update expected message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87563 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)jakub2004-09-151-0/+10
| | | | | | | | | | | into memcpy (x, y, 1) if memcpy can be expanded inline. * gcc.c-torture/execute/builtins/memmove.c (main_test): Formatting. * gcc.c-torture/execute/builtins/memmove-2.c: New test. * gcc.c-torture/execute/builtins/memmove-2-lib.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87539 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-09 Frank Ch. Eigler <fche@redhat.com>fche2004-09-091-5/+10
| | | | | | | | | | | | * builtins.c (build_va_arg_indirect_ref): New function. (std_gimplify_va_arg_expr): Call it instead of mudflap check and build_fold_indirect_ref. * config/i386/i386.c (ix86_gimplify_va_arg): Ditto. * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto. * tree.h: Declare new function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87242 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-08 Eric Christopher <echristo@redhat.com>echristo2004-09-091-1/+1
| | | | | | | * builtins.c: Fix prototype for fold_builtin_atan. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87214 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-08 Eric Christopher <echristo@redhat.com>echristo2004-09-081-294/+379
| | | | | | | | | | * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan, fold_builtin_atan): New functions. Migrate function bodies... (fold_builtin_1): ... from here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87206 138bc75d-0d04-0410-961f-82ee72b054a4
* [gcc/ChangeLog]zlaski2004-09-081-0/+1
| | | | | | | | | | 2004-09-08 Andreas Tobler <toa@pop.agri.ch> * Makefile.in (builtins.o): Depend on tree-mudflap.h. * builtins.c: Include tree-mudflap.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87175 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-07 Frank Ch. Eigler <fche@redhat.com>fche2004-09-081-2/+10
| | | | | | | | | | | | * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes generated from standard va_arg expansion. * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from marked nodes. (mf_varname_tree, mf_file_function_line_tree): Add some support for column numbers if compiled with USE_MAPPED_LOCATION. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87170 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (fold_builtin_strchr): Use build_int_cst, notnathan2004-09-071-15/+10
| | | | | | | | | | | | | | | | fold_convert. (fold_builtin_strpbrk): Likewise. * expr.c (array_ref_low_bound): Likewise. * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1, interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise. * tree-sra.c (generate_element_zero): Likewise. * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step, add_old_iv_candidates, add_iv_candidates): Likewise. * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87141 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-04 Uros Bizjak <uros@kss-loka.si>uros2004-09-041-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L} using rint_optab. (expand_builtin): Expand BUILT_IN_RINT{,F,L} using expand_builtin_mathfn. * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use btrunc?f patterns for btrunc_optab. Implement rint_optab using rint?f patterns. * optabs.c (init_optabs): Initialize rint_optab. * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc. Add new OTI_rint. (btrunc_optab): Rename macro from trunc_optab. (rint_optab): Define corresponding macro. * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM. * config/i386/i386-protos.h (emit_i387_cw_initialization): Change prototype. Add new int parameter. * config/i386/i386.c (emit_i387_cw_initialization): Handle new rounding modes. * config/i386/i386.h (enum fp_cw_mode): Delete. (MODE_NEEDED): Handle new rounding modes. (EMIT_MODE_SET): Change condition to handle new rounding modes. * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to represent different rounding modes of frndint insn. (type): Add frndint type. (i387, length, memory): Handle this type. (i387_cw): New attribute definition. (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory, *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory, *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory): Add "i387_cw" attribute defined to "trunc". (x86_fnstcw_1): Remove comment. (*frndintxf2): Rename insn definition to frndintxf2. Move insn definition near rint?f2 expanders. (rintdf2, rintsf2, rintxf2): New expanders to implement rint, rintf and rintl built-ins as inline x87 intrinsics. (frndintxf2_floor): New pattern to implement floor rounding mode with frndint x87 instruction. (floordf2, floorsf2, floorxf2): New expanders to implement floor, floorf and floorl built-ins as inline x87 intrinsics. (frndintxf2_ceil): New pattern to implement ceil rounding mode with frndint x87 instruction. (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil, ceilf and ceill built-ins as inline x87 intrinsics. (frndintxf2_trunc): New pattern to implement trunc rounding mode with frndint x87 instruction. (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc, truncf and truncl built-ins as inline x87 intrinsics. (frndintxf2_mask_pm): New pattern to implement rounding mode with exceptions with frndint x87 instruction. (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to implement nearbyint, nearbyintf and nearbyintl built-ins as inline x87 intrinsics. * testsuite/gcc.dg/builtins-46.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87076 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-02 Eric Christopher <echristo@redhat.com>echristo2004-09-021-38/+11
| | | | | | | | | | | | | | | | | | | * builtins.c (expand_builtin_cabs): Delete. (expand_builtin): If unable to fold the values do a normal library call for builtin_cab*. (fold_builtin_cabs): Depend on optimize and optimize_size. * optabs.c (expand_cmplxdiv_straight): Delete. (expand_cmplxdiv_wide): Ditto. (expand_vector_binop): Ditto. (expand_vector_unop): Ditto. (expand_complex_abs): Delete. (expand_binop): Remove calls to above functions. Remove open coding of complex arithmetic. (expand_unop): Ditto. * optabs.h: Remove prototypes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87000 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,nathan2004-08-301-48/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | record_set, rtx_equal_for_memref_p, init_alias_analysis): Use gcc_assert and gcc_unreachable instead of abort. * alloc-pool.c (abort, fancy_abort): Remove. (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use gcc_assert or gcc_unreachable. * attribs.c (init_attributes, decl_attributes): Likewise. * bb-reorder.c (FREE, find_traces_1_round, copy_bb, mark_bb_for_unlikely_executed_section, add_labels_and_missing_jumps, fix_crossing_conditional_branches, fix_crossing_unconditional_branches): Likewise. * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit, bitmap_operation): Likewise. * bt-load.c (insn_sets_btr_p, augment_live_range, move_btr_def): Likewise. * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size, apply_result_size, expand_builtin_apply, expand_builtin_mathfn, expand_builtin_mathfn_2, expand_builtin_mathfn_3, builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy, expand_builtin_memcmp, expand_builtin_args_info, std_gimplify_va_arg_expr, expand_builtin_unop, expand_builtin_fputs, expand_builtin_profile_func, expand_builtin_fork_or_exec, fold_builtin_bitop, fold_builtin_classify, fold_builtin_fputs): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86797 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud