aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
AgeCommit message (Collapse)AuthorFilesLines
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
2001-08-18optabs.h (OTI_flodiv, [...]): Kill.Zack Weinberg1-6/+4
* optabs.h (OTI_flodiv, flodiv_optab): Kill. * genopinit.c: Put floating point divide insns in sdiv_optab. * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab. * config/gofast.h, config/c4x/c4x.h, config/ia64/hpux_longdouble.h, config/mips/mips.h, config/pa/long_double.h, config/rs6000/sysv4.h, config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab. * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv. (init_optabs): Use init_optabv for overflow-trapping optabs. Don't init flodiv_optab. Give mov_optab, movstrict_optab, and cmp_optab RTX codes so have_insn_for can find them. * optabs.c (expand_simple_binop, expand_simple_unop, have_insn_for, gen_sub3_insn): New interfaces. * expr.h: Prototype new functions. (enum optab_methods): Move here from optabs.h. * builtins.c, combine.c, doloop.c, function.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c: Use new functions instead of working directly with optabs. * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c, unroll.c: Don't include optabs.h. * caller-save.c, combine.c, function.c, stmt.c: Just include insn-codes.h, not optabs.h. * Makefile.in: Update dependencies. * combine.c (make_compound_operation, simplify_comparison): Fix typos testing for this or that instruction. From-SVN: r45008
2001-08-13expr.h: Split out optab- and libfunc-related code to...Zack Weinberg1-0/+2
* expr.h: Split out optab- and libfunc-related code to... * optabs.h, libfuncs.h: ... these new headers. * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h. (OPTABS_H): New. (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to dependencies. * mkconfig.sh: Don't include insn-codes.h from config.h. * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether enum insn_code is available. Move reload_in_optab and reload_out_optab array declarations to optabs.h. * regmove.c (gen_add3_insn): Move to optabs.c, export from there, prototype in expr.h. * gencodes.c: Cleanup: zap global variables, don't use printf where puts will do, don't bother defining MAX_INSN_CODE which nothing uses, let CODE_FOR_nothing get its value implicitly. * genemit.c, genopinit.c: Include optabs.h in generated file. * genoutput.c: Include insn-codes.h in generated file. * builtins.c, caller-save.c, combine.c, doloop.c, explow.c, expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c, reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c, config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c, config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c: Include optabs.h. * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c, optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c, config/m88k/m88k.c, config/sparc/sparc.c: Include libfuncs.h. * reload.c: Include expr.h and optabs.h before reload.h. * config/alpha/alpha.c: Include tree.h before reload.h. * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h, and reload.h in that order. * config/sparc/sparc.c: Include debug.h. * recog.c: Include insn-codes.h. cp: * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. * except.c: Include libfuncs.h. java: * Make-lang.in (java/decl.o): Update dependencies. * decl.c: Include libfuncs.h, don't include toplev.h. From-SVN: r44858
2001-08-04builtins.c (fold_builtin_constant_p): Return integer_zero_node for complex ↵Zack Weinberg1-2/+6
expressions when cfun == 0. * builtins.c (fold_builtin_constant_p): Return integer_zero_node for complex expressions when cfun == 0. * doc/extend.texi: Document that __builtin_constant_p can be used in data initializers as well as functions. * gcc.dg/bconstp-1.c: New test. From-SVN: r44619
2001-08-01alias.c: Fix comment formatting.Kazu Hirata1-7/+7
* alias.c: Fix comment formatting. * bitmap.c: Likewise. * builtins.c: Likewise. * calls.c: Likewise. * c-common.c: Likewise. * c-decl.c: Likewise. * c-dump.c: Likewise. * c-lex.c: Likewise. * collect2.c: Likewise. * combine.c: Likewise. * conflict.c: Likewise. * cppfiles.c: Likewise. * cppinit.c: Likewise. * cpplex.c: Likewise. * cpplib.c: Likewise. * cppmacro.c: Likewise. * cppspec.c: Likewise. * c-pragma.c: Likewise. * crtstuff.c: Likewise. * cse.c: Likewise. * cselib.c: Likewise. * c-semantics.c: Likewise. * c-typeck.c: Likewise. From-SVN: r44547
2001-07-25stmt.c (expand_goto): A nonlocal goto can be a call too.Andrew MacLeod1-1/+1
2001-07-25 Andrew MacLeod <amacleod@redhat.com> Janis Johnson <janis@us.ibm.com> * stmt.c (expand_goto): A nonlocal goto can be a call too. * builtins.c (expand_builtin_longjmp): Reverse label and static chain pointer parameters to match documented usage of nonlocal_goto. * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain parameters to their correct order. * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain parameters to their correct order. Co-Authored-By: Janis Johnson <janis@us.ibm.com> From-SVN: r44353
2001-07-24stor-layout.c (get_mode_alignment): make it work when BITS_PER_UNIT is not a ↵Lars Brinkhoff1-2/+2
power of two. * stor-layout.c (get_mode_alignment): make it work when BITS_PER_UNIT is not a power of two. * builtins.c (get_pointer_alignment): Likewise. From-SVN: r44322
2001-07-17calls.c (prepare_call_address): New parameter SIBCALLP.Richard Henderson1-1/+1
* calls.c (prepare_call_address): New parameter SIBCALLP. If true, don't force the function address into a register. (expand_call, emit_library_call_value_1): Update callers. * builtins.c (expand_builtin_apply): Likewise. * expr.h (prepare_call_address): Update decl. From-SVN: r44095
2001-07-11alias.c (set_mem_alias_set): New function.Richard Kenner1-12/+12
* alias.c (set_mem_alias_set): New function. * rtl.h (set_mem_alias_set): Declare it. * builtins.c (expand_builtin_return_addr): Call it instead of using MEM_ALIAS_SET accessor. (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise. (get_memory_rtx, expand_builtin_va_arg): Likewise. (expand_builtin_va_copy):Likewise. * caller-save.c (setup_save_areas): Likewise. * calls.c (compute_argument_addresses): Likewise. * explow.c (set_mem_attributes): Likewise. * expr.c (emit_single_push_insn, emit_push_insn): Likewise. (expand_assignment, store_constructor_field, store_field): Likewise. (expand_expr_unaligned): Likewise. * function.c (assign_stack_temp_for_type): Likewise. (put_reg_into_stack, gen_mem_addressof): Likewise. * ifcvt.c (noce_try_cmove_arith): Likewise. * reload1.c (reload, alter_reg): Likewise. * config/alpha/alpha.c (get_aligned_mem): Likewise. (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise. (alpha_expand_unaligned_store): Likewise (alpha_expand_unaligned_load_words): Likewise. (alpha_expand_unaligned_store_words): Likewise. (alpha_expand_block_clear, alpha_expand_prologue): Likewise. (alpha_expand_epilogue): Likewise. * config/arc/arc.c (arc_setup_incoming_varargs): Likewise. * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise. * config/i386/i386.c (legitimize_pic_address): Likewise. * config/i960/i960.c (setup_incoming_varargs): Likewise. * config/ia64/ia64.c (spill_restore_mem): Likewise. * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise. * config/mips/mips.c (mips_va_arg): Likewise. * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise. * config/pa/pa.c (hppa_builtin_saveregs): Likewise. * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. (setup_incoming_varargs, rs6000_va_arg): Likewise. (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise. (rs6000_emit_epilogue): Likewise. * config/sh/sh.c (sh_builtin_saveregs): Likewise. * config/sparc/sparc.c (sparc_va_arg): Likewise. * config/v850/v850.c (v850_va_arg): Likewise. From-SVN: r43951
2001-07-10target.h (struct gcc_target): New fields init_builtins and expand_builtin.Stan Shebs1-3/+22
* target.h (struct gcc_target): New fields init_builtins and expand_builtin. * target-def.h (TARGET_INIT_BUILTINS): New macro. (TARGET_EXPAND_BUILTIN): New macro. (TARGET_INITIALIZER): Add them. * builtins.c: Include target.h. (expand_builtin): Use targetm.expand_builtin. (default_init_builtins): New function. (default_expand_builtin): New function. * expr.h (default_init_builtins): Declare. (default_expand_builtin): Declare. * c-common.c (c_common_nodes_and_builtins): Use targetm.init_builtins. * defaults.h (MD_INIT_BUILTINS): Remove. * Makefile.in (builtins.o): Depend on target.h. * config/arm/arm.c (TARGET_INIT_BUILTINS): Define. (TARGET_EXPAND_BUILTIN): Define. * config/arm/arm.h (MD_INIT_BUILTINS): Remove. (MD_EXPAND_BUILTIN): Remove. * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define. (TARGET_EXPAND_BUILTIN): Define. (c4x_init_builtins): Make endlink arg a local. (c4x_print_operand): Fix typos in adjust_address usages. * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl. * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove. (MD_EXPAND_BUILTIN): Remove. * config/i386/i386.c (TARGET_INIT_BUILTINS): Define. (TARGET_EXPAND_BUILTIN): Define. (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins. (ix86_init_builtins): Call new function only if TARGET_MMX. * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare. * config/i386/i386.h (MD_INIT_BUILTINS): Remove. (MD_EXPAND_BUILTIN): Remove. * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define. (TARGET_EXPAND_BUILTIN): Define. * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove. (MD_EXPAND_BUILTIN): Remove. * doc/tm.texi: Document these changes. From-SVN: r43888
2001-07-02emit-rtl.c (adjust_address): New function.Richard Kenner1-26/+8
* emit-rtl.c (adjust_address): New function. * expr.h (adjust_address): Add declaration. * builtins.c: Replace some calls to change_address with calls to it or to validize_mem. * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise. * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise. * config/arm/arm.c, config/convex/convex.c: Likewise. * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise. * config/i386/i386.c, config/i386/i386.md: Likewise. * config/ia64/ia64.c, config/ia64/ia64.md: Likewise. * config/m32r/m32r.c, config/m68k/m68k.md: Likewise. * config/m88k/m88k.c, config/mips/mips.md: Likewise. * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise. * config/sh/sh.c, config/sparc/sparc.md: Likewise. From-SVN: r43702
2001-06-24builtins.c (expand_builtin_expect_jump): Disable if the expression can't be ↵Richard Henderson1-0/+16
re-evaluated. * builtins.c (expand_builtin_expect_jump): Disable if the expression can't be re-evaluated. From-SVN: r43543
2001-06-20Fix __builtin_expect on PowerPCsMichael Meissner1-2/+113
From-SVN: r43470
2001-05-25builtins.def: Encode additional information, such as names and types, here.Mark Mitchell1-11/+30
* builtins.def: Encode additional information, such as names and types, here. * builtin-types.def: New file. * builtins.c (built_in_names): Adjust use of DEF_BUILTIN. (built_in_decls): Likewise. Don't explicitly initialize global data to NULL. (expand_builtin_mathfn): Handle float and long double variants of math builtins. (expand_builtin): Likewise. * c-common.c (c_common_nodes_and_builtins): Make it table-driven. (expand_tree_builtin): Handle long, long long, float, and long double variants of math functions. * c-common.h (c_tree_index): Remove some unused nodes. (void_ftype): Remove. (void_type_ptr): Likewise. (int_ftype_int): Likewise. (ptr_ftype_sizetype): Likewise. * c-decl.c (init_decl_processing): Remove creation of DWARF builtins. * defaults.h (MD_INIT_BUILTINS): Provide default definition. * tree.h (built_in_function): Adjust definition of DEF_BUILTIN. * Makefile.in (c-common.o): Depend on builtin-types.def. * decl.c (init_decl_processing): Tweak. From-SVN: r42583
2001-05-22builtins.c (expand_builtin_longjmp): A longjmp can be a call too.Andrew MacLeod1-6/+11
2001-05-22 Andrew MacLeod <amacleod@redhat.com> * builtins.c (expand_builtin_longjmp): A longjmp can be a call too. * config/ia64/ia64.md (nonlocal_goto): Reverse label and frame pointer parameters to __ia64_nonlocal_goto. Flag as NO_RETURN. * config/ia64/ia64.c (ia64_expand_epilogue): Make sure we are issuing "r2" to the assembly file. Only issue allocs with non-zero parameters. From-SVN: r42467
2001-03-28IA-64 ABI Exception Handling.Richard Henderson1-2/+5
From-SVN: r40924
2001-03-27system.h: Include symcat.h.Kaveh R. Ghazi1-1/+1
* system.h: Include symcat.h. (STRINGIFY): Don't define. * configure.in: Adjust comment. * builtins.c: Use STRINGX, not STRINGIFY. * gencheck.c: Likewise. * gengenrtl.c: Likewise. * protoize.c: Likewise. * cpplex.c: Don't include symcat.h. * cpplib.c: Likewise. * gansidecl.h (HAVE_STRINGIZE): Don't define. From-SVN: r40875
2001-03-22mkconfig.sh: Include insn-flags.h.Richard Henderson1-2/+0
* mkconfig.sh: Include insn-flags.h. * Makefile.in (CONFIG_H): Include insn-flags.h. (lots of objects): Remove insn-codes.h and insn-flags.h. * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c, integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c, regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c, avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c, dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c, i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c, m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c, mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c, pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c, v850/v850.c, vax/vax.c: Don't include insn-flags.h. * diagnostic.c, expr.h, reload.c, toplev.c: Don't include insn-codes.h. * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c, final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c, c4x/c4x.c, i960/i960.c, mips/mips.c: Don't include insn-codes.h or insn-flags.h. * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h or insn-flags.h in the generated code. * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx". (main): Forward declare struct rtx_def. From-SVN: r40754
2001-03-07Brad's -ffast-math breakup.Brad Lucier1-5/+6
From-SVN: r40300
2001-02-07Avoid scheduling builtin setjmp receiversBernd Schmidt1-0/+7
From-SVN: r39515
2001-02-01builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space returns ↵Richard Kenner1-1/+11
Pmode pseudo, but we need ptr_mode. * builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space returns Pmode pseudo, but we need ptr_mode. * explow.c (allocate_dynamic_stack_space): Use plus_constant. Remove bogus conversions; use HOST_WIDE_INT for size. Don't use TARGET if wrong mode. From-SVN: r39390
2001-01-28configure.in: Arrange to include defaults.h in [ht]config.h/tm.h.Kaveh R. Ghazi1-1/+0
* configure.in: Arrange to include defaults.h in [ht]config.h/tm.h. * Makefile.in: Remove all dependencies on defaults.h. * builtins.c: Don't include defaults.h. * c-common.c: Likewise. * c-decl.c: Likewise. * c-pragma.c: Likewise. * c-typeck.c: Likewise. * combine.c: Likewise. * i386.c: Likewise. * frame-ia64.c: Likewise. * cppexp.c: Likewise. * crtstuff.c: Likewise. * dbxout.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * final.c: Likewise. * frame-dwarf2.c: Likewise. * libgcc2.c: Likewise. * optabs.c: Likewise. * profile.c: Likewise. * sdbout.c: Likewise. * toplev.c: Likewise. * tradcif.y: Likewise. * tree.c: Likewise. * varasm.c: Likewise. ch: * Makefile.in: Remove all dependencies on defaults.h. * decl.c: Don't include defaults.h. * timing.c: Likewise. cp: * Make-lang.in: Remove all dependencies on defaults.h. * call.c: Don't include defaults.h. * decl.c: Likewise. * decl2.c: Likewise. * except.c: Likewise. * pt.c: Likewise. * rtti.c: Likewise. * tree.c: Likewise. * typeck.c: Likewise. f: * Make-lang.in: Remove all dependencies on defaults.h. * com.c: Don't include defaults.h. java: * Make-lang.in: Remove all dependencies on defaults.h. * decl.c: Don't include defaults.h. * expr.c: Likewise. * parse.y: Likewise. From-SVN: r39308
2001-01-28builtins.c (expand_builtin_fputs): Use size_one_node when transforming into ↵Kaveh R. Ghazi1-1/+1
fwrite. * builtins.c (expand_builtin_fputs): Use size_one_node when transforming into fwrite. From-SVN: r39306
2001-01-11*** empty log message ***Alan Lehotsky1-1/+6
From-SVN: r38929
2001-01-05builtins.def (BUILT_IN_CONJ, [...]): Define.Joseph Myers1-0/+7
* builtins.def (BUILT_IN_CONJ, BUILT_IN_CREAL, BUILT_IN_CIMAG): Define. * builtins.c (expand_builtin): Abort on BUILT_IN_CONJ, BUILT_IN_CREAL and BUILT_IN_CIMAG. * c-common.c (c_common_nodes_and_builtins): Create builtin conjf, conj, conjl, crealf, creal, creall, cimagf, cimag and cimagl. (expand_tree_builtin): Handle BUILT_IN_CONJ, BUILT_IN_CREAL and BUILT_IN_CIMAG. * extend.texi: Document these builtins. testsuite: * gcc.c-torture/execute/builtin-complex-1.c: New test. From-SVN: r38716
2001-01-03update copyrightsKaveh Ghazi1-1/+1
From-SVN: r38665
2001-01-03builtins.c (expand_builtin_strncmp): Use host_integerp and tree_low_cst.Kaveh R. Ghazi1-33/+42
* builtins.c (expand_builtin_strncmp): Use host_integerp and tree_low_cst. Allow using cmpstrsi in more cases. testsuite: * gcc.c-torture/execute/string-opt-8.c: Add more testcases. Turn on cmpstrsi checks for __pj__ and __i370__. From-SVN: r38664
2001-01-03Don't use MEM_ALIAS_SET on a REGBernd Schmidt1-1/+2
From-SVN: r38653
2000-12-30Oops, fix style nit.Kaveh Ghazi1-1/+1
From-SVN: r38567
2000-12-30* builtins.c (validate_arglist): New function, use it.Kaveh R. Ghazi1-141/+86
From-SVN: r38566
2000-12-28builtins.c (build_function_call_expr): New function.Kaveh R. Ghazi1-41/+32
* builtins.c (build_function_call_expr): New function. Use it everywhere in lieu of manually constructing a CALL_EXPR. From-SVN: r38504
2000-12-23builtins.def (BUILT_IN_LABS, [...]): Don't define.Joseph Myers1-3/+0
* builtins.def (BUILT_IN_LABS, BUILT_IN_LLABS, BUILT_IN_IMAXABS): Don't define. * builtins.c (expand_builtin): Don't handle BUILT_IN_LABS, BUILT_IN_LLABS and BUILT_IN_IMAXABS. * c-common.c (c_common_nodes_and_builtins): Use BUILT_IN_ABS for builtin labs, llabs and imaxabs. (expand_tree_builtin): Don't handle BUILT_IN_LABS, BUILT_IN_LLABS and BUILT_IN_IMAXABS. From-SVN: r38475
2000-12-20rtl.h (REG_NON_LOCAL_GOTO): New.Richard Henderson1-1/+13
* rtl.h (REG_NON_LOCAL_GOTO): New. * rtl.c (reg_note_name): Update. * stmt.c (expand_goto): Emit a REG_NON_LOCAL_GOTO note. * builtins.c (expand_builtin_longjmp): Likewise. * flow.c (make_edges): Check for REG_NON_LOCAL_GOTO and do not emit an edge. From-SVN: r38408
2000-12-05builtins.c (expand_builtin_setjmp_setup): Set ↵Jeffrey A Law1-0/+4
current_function_has_nonlocal_label. * builtins.c (expand_builtin_setjmp_setup): Set current_function_has_nonlocal_label. From-SVN: r38060
2000-12-04builtins.c (expand_builtin_strspn, [...]): Handle another transformation.Kaveh R. Ghazi1-3/+13
* builtins.c (expand_builtin_strspn, expand_builtin_strcspn): Handle another transformation. testsuite: * gcc.c-torture/execute/string-opt-11.c: Add more strspn checks. * gcc.c-torture/execute/string-opt-12.c: Add more strcspn checks. From-SVN: r37986
2000-12-03bb-reorder.c (reorder_basic_blocks): Don't check for EH edges unless ↵Richard Henderson1-57/+78
exception handling is enabled... * bb-reorder.c (reorder_basic_blocks): Don't check for EH edges unless exception handling is enabled, and if not using sjlj. * builtins.c (expand_builtin_setjmp_setup): New. (expand_builtin_setjmp_receiver): New. (expand_builtin_setjmp): Split out _setup and _receiver functions. Move argument parsing in from ... (expand_builtin): ... here. * except.c (receive_exception_label): Branch around receiver unless new-style exceptions. Call expand_builtin_setjmp_receiver. (start_dynamic_handler): Call expand_builtin_setjmp_setup. * expr.h: Update builtin setjmp decls. From-SVN: r37982
2000-12-03builtins.c (expand_builtin_strcat, [...]): New functions.Kaveh R. Ghazi1-0/+234
* builtins.c (expand_builtin_strcat, expand_builtin_strncat, expand_builtin_strspn, expand_builtin_strcspn): New functions. (expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT, BUILT_IN_STRSPN and BUILT_IN_STRCSPN. * builtins.def (BUILT_IN_STRCAT, BUILT_IN_STRNCAT, BUILT_IN_STRSPN, BUILT_IN_STRCSPN): New entries. * c-common.c (c_common_nodes_and_builtins): Declare builtin strcat, strncat, strspn and strcspn. (string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'. * extend.texi (strcat, strcspn, strncat, strspn): Document new builtins. testsuite: * gcc.c-torture/execute/string-opt-9.c: New test. * gcc.c-torture/execute/string-opt-10.c: Likewise. * gcc.c-torture/execute/string-opt-11.c: Likewise. * gcc.c-torture/execute/string-opt-12.c: Likewise. From-SVN: r37964
2000-12-03builtins.c (expand_builtin_strcmp): Use const*_rtx when expanding strcmp at ↵Kaveh R. Ghazi1-24/+64
compile-time. * builtins.c (expand_builtin_strcmp): Use const*_rtx when expanding strcmp at compile-time. Add another transformation. (expand_builtin_strncmp): Add more transformations. Call expand_builtin_memcmp, not expand_builtin_strcmp, under appropriate conditions if HAVE_cmpstrsi. testsuite: gcc.c-torture/execute/string-opt-3.c: Add more strcmp checks. gcc.c-torture/execute/string-opt-8.c: Add more strncmp checks. From-SVN: r37963
2000-12-01builtins.def (BUILT_IN_IMAXABS): Add.Joseph Myers1-0/+1
* builtins.def (BUILT_IN_IMAXABS): Add. * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS. * c-common.c (c_common_nodes_and_builtins): Create builtin functions __builtin_imaxabs, and plain imaxabs unless flag_no_nonansi_builtin outside C99 mode. (expand_tree_builtin): Handle BUILT_IN_IMAXABS. * extend.texi: Document builtin imaxabs. From-SVN: r37932
2000-12-01builtins.c (target_char_cast): New function.Jakub Jelinek1-11/+86
* builtins.c (target_char_cast): New function. (expand_builtin_strchr): Use it. (expand_builtin_strrchr): Use it. (builtin_memset_read_str): New function. (expand_builtin_memset): Use target_char_cast. Try to optimize memset with second argument non-zero using store_by_pieces. * gcc.c-torture/execute/string-opt-5.c: Add some memset tests. From-SVN: r37918
2000-11-29expr.h (store_by_pieces): Add prototype.Jakub Jelinek1-8/+128
* expr.h (store_by_pieces): Add prototype. (can_store_by_pieces): Likewise. * expr.c (struct store_by_pieces): Renamed from clear_by_pieces. (can_store_by_pieces): New. (store_by_pieces): New. (clear_by_pieces): New. (clear_by_pieces_1): New. (store_by_pieces_1): Renamed from clear_by_pieces, handle storing arbitrary compiler generated constants into memory block. (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise. * builtins.c (c_readstr): New. (builtin_memcpy_read_str): New. (expand_builtin_memcpy): If src is string constant and emit_block_move would move it by pieces, compute integer constants from the string and store it into memory block instead. (builtin_strncpy_read_str): New. (expand_builtin_strncpy): If N is not constant zero and c_strlen does not return INTEGER_CST, don't optimize. If N is larger than strlen(src) + 1, try to copy the string including padding with store_by_pieces. (expand_builtin_strcmp): If both arguments have side effects, don't optimize. (expand_builtin_fputs): If STR has side effects, don't optimize. * gcc.c-torture/execute/string-opt-5.c: Add some strcmp and strncpy tests. * gcc.c-torture/execute/string-opt-6.c: New test. From-SVN: r37851
2000-11-27builtins.c (expand_builtin_strncmp, [...]): New functions.Kaveh R. Ghazi1-0/+151
* builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New functions. (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP. * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries. * c-common.c (c_common_nodes_and_builtins): Declare builtin strncpy and strncmp. * extend.texi (strncmp, strncpy): Document new builtins. testsuite: * gcc.c-torture/execute/string-opt-7.c: New test. * gcc.c-torture/execute/string-opt-8.c: Likewise. From-SVN: r37777