aboutsummaryrefslogtreecommitdiff
path: root/gcc/optabs.c
AgeCommit message (Collapse)AuthorFilesLines
2003-08-22cfgcleanup.c: Fix comment typos.Kazu Hirata1-2/+2
* cfgcleanup.c: Fix comment typos. * emit-rtl.c: Likewise. * optabs.c: Likewise. * ra-build.c: Likewise. * rtlanal.c: Likewise. * tree.h: Likewise. From-SVN: r70678
2003-07-22combine.c (if_then_else_cond): Simplify the comparison of rtx against -1, 0, ↵Kazu Hirata1-4/+4
and 1. * combine.c (if_then_else_cond): Simplify the comparison of rtx against -1, 0, and 1. * loop.c (check_dbra_loop): Likewise. * optabs.c (emit_conditional_move): Likewise. (emit_conditional_add): Likewise. * config/i386/i386.md (*movsi_or): Likewise. (*movdi_or_rex6): Likewise. From-SVN: r69658
2003-07-19alias.c [...]: Remove unnecessary casts.Kaveh R. Ghazi1-1/+1
* alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c gcse.c genattr.c genattrtab.c genautomata.c genconditions.c genemit.c genextract.c genoutput.c genrecog.c gensupport.c ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c postreload.c prefix.c print-tree.c protoize.c ra-build.c ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c regmove.c regrename.c reload.c reload1.c reorg.c resource.c sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary casts. From-SVN: r69587
2003-07-18optabs.c (prepare_operand): Fail gracefully instead of abort if the ↵Richard Henderson1-1/+11
predicate doesn't satisfy. 2003-07-18 Richard Henderson <rth@redhat.com> * optabs.c (prepare_operand): Fail gracefully instead of abort if the predicate doesn't satisfy. (gen_cond_trap): Allow prepare_operand to fail. From-SVN: r69578
2003-07-11optabs.c (prepare_cmp_insn): Try cmpmemM first if it exists, then fall back ↵Jakub Jelinek1-0/+34
to cmpstrM. * optabs.c (prepare_cmp_insn): Try cmpmemM first if it exists, then fall back to cmpstrM. * builtins.c (expand_builtin_memcmp): Likewise. * config/s390/s390-protos.h (s390_expand_cmpstr): Rename to... (s390_expand_cmpmem): ... this. * config/s390/s390.md (cmpmemdi, cmpmemsi, cmpmem_short_64, cmpmem_short_31, cmpmem_long_64, cmpmem_long_31): Renamed from cmpstr* patterns. Rename call to s390_expand_cmpstr to s390_expand_cmpmem. * config/s390/s390.c (s390_expand_cmpstr): Rename to... (s390_expand_cmpstr): ... this. Rename cmpstr* instructions to cmpmem*. * config/i370/i370.md (cmpmemsi, cmpmemsi_1): Renamed from cmpstr* patterns. * doc/md.texi (cmpstrM): Describe as String compare insn, not Block compare insn. (cmpmemM): Add. * gcc.dg/20030711-1.c: New test. From-SVN: r69243
2003-07-06jump.c: Convert prototypes to ISO C90.Andreas Jaeger1-334/+179
* jump.c: Convert prototypes to ISO C90. * langhooks-def.h: Likewise. Add extern to prototypes. * langhooks.c: Likewise. * langhooks.h: Likewise. * lcm.c: Likewise. * local-alloc.c: Likewise. * loop-init.c: Likewise. * loop-unroll.c: Likewise. * loop-unswitch.c: Likewise. * loop.c: Likewise. * loop.h: Likewise. Add extern to prototypes. * machmode.h: Likewise. * main.c: Likewise. * mbchar.c: Likewise. * mbchar.h: Likewise. * mkdeps.c: Likewise. * mkdeps.h: Likewise. * optabs.c: Likewise. * optabs.h: Likewise. * output.h: Likewise. * gccspec.c: Likwise. * postreload.c: Likewise. * prefix.c: Likewise. * prefix.h: Likewise. * print-rtl.c: Likewise. * print-tree.c: Likewise. * profile.c: Likewise. * read-rtl.c: Likewise. * real.c: Likewise. * real.h: Likewise. * recog.c: Likewise. * recog.h: Likewise. * reg-stack.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * regrename.c: Likewise. * regs.h: Likewise. * reload.c: Likewise. * reload.h: Likewise. * reload1.c: Likewise. * reorg.c: Likewise. * resource.c: Likewise. * resource.h: Likewise. * rtl-error.c: Likewise. * rtl.c: Likewise. * rtl.h: Likewise. * rtlanal.c: Likewise. From-SVN: r68998
2003-07-01basic-block.h: Fix comment typos.Kazu Hirata1-1/+1
* basic-block.h: Fix comment typos. * bb-reorder.c: Likewise. * c-format.c: Likewise. * cfgcleanup.c: Likewise. * cfghooks.h: Likewise. * cfgloop.c: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * cgraph.h: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * convert.c: Likewise. * dbxout.c: Likewise. * df.c: Likewise. * df.h: Likewise. * diagnostic.c: Likewise. * dwarf2out.c: Likewise. * et-forest.h: Likewise. * flow.c: Likewise. * fold-const.c: Likewise. * function.h: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genautomata.c: Likewise. * ggc-common.c: Likewise. * ggc-page.c: Likewise. * loop-unroll.c: Likewise. * loop-unswitch.c: Likewise. * loop.c: Likewise. * mips-tfile.c: Likewise. * optabs.c: Likewise. * ra-build.c: Likewise. * ra-colorize.c: Likewise. * ra-rewrite.c: Likewise. * ra.h: Likewise. * regmove.c: Likewise. * reload.c: Likewise. * rtlanal.c: Likewise. * sched-ebb.c: Likewise. * sched-int.h: Likewise. * sched-vis.c: Likewise. * sreal.c: Likewise. * ssa-ccp.c: Likewise. * ssa.c: Likewise. * toplev.c: Likewise. * tree-inline.c: Likewise. * value-prof.c: Likewise. * value-prof.h: Likewise. From-SVN: r68770
2003-06-29alloc-pool.c: Fix comment formatting.Kazu Hirata1-2/+2
* alloc-pool.c: Fix comment formatting. * bitmap.c: Likewise. * bitmap.h: Likewise. * bt-load.c: Likewise. * builtins.c: Likewise. * caller-save.c: Likewise. * cfganal.c: Likewise. * cfgrtl.c: Likewise. * collect2.c: Likewise. * cse.c: Likewise. * df.c: Likewise. * diagnostic.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * expmed.c: Likewise. * final.c: Likewise. * flags.h: Likewise. * fold-const.c: Likewise. * gcc.c: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * genattrtab.c: Likewise. * genautomata.c: Likewise. * libgcov.c: Likewise. * mips-tfile.c: Likewise. * optabs.c: Likewise. * prefix.c: Likewise. * rtlanal.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * toplev.c: Likewise. * varasm.c: Likewise. * vmsdbgout.c: Likewise. From-SVN: r68672
2003-06-16optabs.h (enum optab_index): Add new OTI_tan and OTI_atan.Roger Sayle1-0/+2
* optabs.h (enum optab_index): Add new OTI_tan and OTI_atan. (tan_optab, atan_optab): Define corresponding macros. * optabs.c (init_optabs): Initialize tan_optab and atan_optab. * genopinit.c (optabs): Implement tan_optab and atan_optab using tan?f2 and atan?f2 patterns. * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_TAN{,F,L} using tan_optab, and BUILT_IN_ATAN{,F,L} using atan_optab. Change the default value of errno_set to false. (expand_builtin): Expand BUILT_IN_TAN{,F,L} and BUILT_IN_ATAN{,F,L} using expand_builtin_mathfn. * config/i386/i386.md (atansf2, atandf2, atanxf2, atantf2): New expander patterns implemented using existing atan2?f3 patterns. * gcc.dg/i386-387-5.c: New test case. * gcc.dg/i386-387-6.c: New test case. * gcc.dg/builtins-23.c: New test case. From-SVN: r68013
2003-06-16* optabs.c (emit_libcall_block): Don't hoist insns past a label.Richard Sandiford1-0/+5
From-SVN: r68001
2003-06-10* optabs.c (gen_cond_trap): Fix prepare_operand typo.Richard Henderson1-1/+1
From-SVN: r67753
2003-06-08optabs.c (expand_abs): Set result_unsignedp to 1 if flag_trav is zero.Kazu Hirata1-0/+3
* optabs.c (expand_abs): Set result_unsignedp to 1 if flag_trav is zero. From-SVN: r67611
2003-06-05optabs.c (HAVE_conditional_trap): Provide default.David Miller1-41/+33
* optabs.c (HAVE_conditional_trap): Provide default. (gen_conditional_trap): Likewise. (init_optabs): Merge init_traps. (gen_cond_trap): Use prepare_operand. Restructure and avoid ifdef. * gcc.c-torture/compile/20030605-1.c: New. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r67497
2003-06-04optabs.c (expand_binop): Optimize complex multiplication for the case of ↵Roger Sayle1-2/+7
squaring a complex argument. * optabs.c (expand_binop): Optimize complex multiplication for the case of squaring a complex argument. From-SVN: r67418
2003-06-04optabs.c (expand_binop): Attempt to reuse pseudos for duplicate non-volatile ↵Roger Sayle1-4/+22
operands of binary operations. * optabs.c (expand_binop): Attempt to reuse pseudos for duplicate non-volatile operands of binary operations. (prepare_cmp_insn): Likewise. From-SVN: r67417
2003-06-03optabs.c (expand_abs_nojump): Split out from ...Richard Henderson1-3/+19
* optabs.c (expand_abs_nojump): Split out from ... (expand_abs): ... here. * optabs.h (expand_abs_nojump): Declare. * ifcvt.c: (noce_try_abs): Use expand_abs_nojump. * Makefile.in (ifcvt.o): Depend on optabs.h. From-SVN: r67404
2003-04-15optabs.c (expand_binop): In multi-word add cases, ensure XTARGET is copied ↵Richard Kenner1-1/+2
to TARGET if they are different. * optabs.c (expand_binop): In multi-word add cases, ensure XTARGET is copied to TARGET if they are different. From-SVN: r65632
2003-04-11rtl.def (SYMBOL_REF): Add two 0 fields.Richard Henderson1-2/+9
* rtl.def (SYMBOL_REF): Add two 0 fields. * gengtype.c (adjust_field_rtx_def): Handle them. * print-rtl.c (print_rtx): Print them. * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New. (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New. (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New. (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New. (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New. (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New. (SYMBOL_FLAG_MACH_DEP): New. * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL. * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL. (assemble_static_space): Set SYMBOL_REF_FLAGS. (assemble_trampoline_template): Likewise. (output_constant_def, force_const_mem): Likewise. (default_encode_section_info): New. * output.h: Declare it. * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it. From-SVN: r65479
2003-04-11libfuncs.h (LTI_setbits, [...]): New.Richard Henderson1-2/+5
* libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New. (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New. * optabs.c (init_optabs): Initialize them. (init_libfuncs): Use init_one_libfunc. * calls.c (expand_call): Use gcov_flush_libfunc. * expr.c (store_constructor): Use setbits_libfunc. * function.c (expand_main_function): Use init_one_libfunc. * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL. From-SVN: r65478
2003-04-09optabs.c: Comment that gen_add2_insn and others may actually return emitted ↵Alexandre Oliva1-2/+3
insns... * optabs.c: Comment that gen_add2_insn and others may actually return emitted insns, if the gen functions turn out to return emitted insns. * reload1.c (reload_cse_move2add): Cope with emitted insns from gen_add2_insn. From-SVN: r65400
2003-03-21optabs.c (init_integral_libfuncs): Make sure we init at least up to "long ↵DJ Delorie1-1/+4
long" size words. * optabs.c (init_integral_libfuncs): Make sure we init at least up to "long long" size words. From-SVN: r64670
2003-03-09optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC moves from ↵Hans-Peter Nilsson1-61/+0
here ... * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC moves from here ... * expr.c (emit_move_insn_1): ... to here. From-SVN: r64015
2003-03-03re PR c/7872 ([m68k]ICE on legal code, regression from 3.0 and 2.9*)James E Wilson1-4/+2
* optabs.c (add_equal_note): Delete SUBREG_REG use. Fixes PR c/7872. From-SVN: r63762
2003-02-26objc-act.c: Include cgraph.hJan Hubicka1-5/+16
* objc-act.c: Include cgraph.h (mark_referenced_methods): New function. (objc_init): Call it. * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set. * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time mode. * optabs.c (expand_fix): Do not widen the input operand. * expr.c (emit_group_store): Fix crash when converting single register into complex register. * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h * alias.c: Include timevar.h (init_alias_analysis): Set timevar * jump.c: Include timevar.h (rebuild_jump_labels): Set timevar * regcalss.c: Include timevar.h (reg_scan): Set timevar * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New From-SVN: r63464
2003-02-11optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.Roger Sayle1-0/+2
* optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2. (pow_optab, atan2_optab): Define corresponding macros. * optabs.c (init_optabs): Initialize pow_optab and atan2_optab. * genopinit.c (optabs): Implement pow_optab and atan2_optab using pow?f3 and atan2?f3 patterns. * builtins.c (expand_errno_check): New function to update errno if necessary, split out from expand_builtin_mathfn. (expand_builtin_mathfn): Use expand_errno_check. (expand_builtin_mathfn_2): New function to handle expanding binary math functions, reusing the code in expand_errno_check. (expand_builtin): Handle the pow and atan2 math built-ins, BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function expand_builtin_mathfn_2. * doc/md.texi: Document new pow?f3 and atan2?f3 patterns. From-SVN: r62708
2003-02-09libgcc-std.ver (__clztf2): New.Richard Henderson1-13/+15
* libgcc-std.ver (__clztf2): New. (__ctztf2, __popcounttf2, __paritytf2): New. * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2, __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode; adjust code to match the different type sizes. * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2, __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros. * optabs.c (init_integral_libfuncs): Don't hard-code SImode and TImode; select word_mode and twice that. (init_floating_libfuncs): Don't hard-code SFmode and TFmode; select the modes from float, double, and long double. (init_optabs): Remove duplicate initializations. From-SVN: r62606
2003-02-09optabs.c (expand_unop): Widen clz properly when clz is done via libcall.Kazu Hirata1-0/+8
* optabs.c (expand_unop): Widen clz properly when clz is done via libcall. From-SVN: r62595
2003-02-07* optabs.c (expand_float): Search wider integer modes first.Andrey Petrov1-4/+4
From-SVN: r62535
2003-02-03libgcc2.c (__ffsdi2, [...]): Change return type to "int".Richard Henderson1-1/+1
* libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2, __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change return type to "int". Shuffle declarations and undef int trap. * libgcc2.h: Remove their declarations. * optabs.c (expand_unop): Force outmode to int for bitops. From-SVN: r62353
2003-02-01[multiple changes]Richard Henderson1-2/+133
2003-02-01 Richard Henderson <rth@redhat.com> * optabs.c (expand_unop): Use word_mode for outmode of bit scaners. * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2, __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change return type to Wtype. * libgcc-std.ver (GCC_3.4): Fix inheritance. * config/i386/i386.md (ffssi2): Use nonimmediate_operand for expander input constraint. 2003-02-01 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and OTI_parity. (clz_optab, ctz_optab, popcount_optab, parity_optab): New. * optabs.c (widen_clz, expand_parity): New. (expand_unop): Handle clz and parity. Hardcode SImode as outmode for libcalls to clz, ctz, popcount, and parity. (init_optabs): Init clz_optab, ctz_optab, popcount_optab and parity_optab, and set up libfunc handlers. * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2, __popcountsi2, __popcountdi2, __paritysi2 __paritydi2, __popcount_tab): New. * libgcc2.h: Declare them. * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c. * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab and parity_optab. * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New. * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT, BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL, BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL, BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL, BUILT_IN_PARITYLL): New. * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs and add optab argument. (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*. * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New. * expr.c (expand_expr): Handle them. * fold-const.c (tree_expr_nonnegative_p): Likewise. * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New. * reload1.c (eliminate_regs): Handle them. (elimination_effects): Likewise. * function.c (instantiate_virtual_regs_1): Likewise * genattrtab.c (check_attr_value): Likewise. * simplify-rtx.c (simplify_unary_operation): Likewise. * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR. * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY. (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY. * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New. * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to __builtin_arm_clz. * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move... * mklibgcc.in (lib2funcs): ...here and merge. Add new members. * doc/extend.texi (Other Builtins): Add new builtins. * doc/md.texi (Standard Names): Add new patterns. From-SVN: r62252
2003-01-26optabs.c (expand_binop): Return xtarget if we haven't been able to move the ↵Alexandre Oliva1-0/+2
result to target. * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't been able to move the result to target. From-SVN: r61829
2003-01-15re PR middle-end/9009 (floating-point negate and abs optimizations incorrect ↵Roger Sayle1-1/+17
for ARM) PR middle-end/9009 * optabs.c (expand_unop): When manipulating the FP sign bit using integer operations, account for targets with different integer and FP word orders. (expand_abs): Likewise. From-SVN: r61335
2003-01-09Makefile.in (optabs.o): Add dependency on basic-block.h.Josef Zlomek1-5/+22
* Makefile.in (optabs.o): Add dependency on basic-block.h. * basic-block.h (control_flow_insn_p): Fuction was exported. * cfgbuild.c (control_flow_insn_p): Fuction was made non-static. * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL notes only when the region is contained in a single basic block. From-SVN: r61101
2003-01-07re PR target/8322 (SSE2 intrinsics broken?)Jan Hubicka1-0/+129
* genopinit.c (optabs): Add addc_optab. * ifcvt.c (noce_try_store_flag): Rename to ... (noce_try_addcc): ... this one; handle generic conditional increment. (noce_process_if_block): Update noce_try_addcc call. * optabs.c (emit_conditional_add): New. (init_obtabs): Initialize addc_optab. * optabs.h (optab_index): Add OTI_addcc. (addcc_optab): New macro. * md.texi: Document addMcc PR target/8322 * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads. * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts. * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts. * reload1.c (delete_output_reload): Avoid repeated attempts to delete insn. From-SVN: r61019
2002-12-16Merge basic-improvements-branch to trunkZack Weinberg1-0/+73
From-SVN: r60174
2002-11-20emit-rtl.c (gen_reg_rtx): Simplify mapping of Complex type to component type ↵Steve Ellcey1-12/+3
using GET_MODE_INNER. * emit-rtl.c (gen_reg_rtx): Simplify mapping of Complex type to component type using GET_MODE_INNER. * expr.c (emit_move_insn_1): Ditto. * optabs.c (expand_binop): Ditto. (expand_unop): Ditto. (expand_complex_abs): Ditto. From-SVN: r59317
2002-11-19re PR c/8588 (ICE in extract_insn, at recog.c:2148)Eric Botcazou1-6/+5
2002-11-19 �Eric Botcazou �<ebotcazou@libertysurf.fr> PR c/8588 * optabs.c (expand_binop): Convert CONST_INTs in shift operations too. From-SVN: r59274
2002-11-16* optabs.c: Fix formatting.Kazu Hirata1-54/+55
From-SVN: r59151
2002-10-24optabs.c (expand_binop): Don't reuse the shift target in the middle of shift ↵Richard Sandiford1-2/+2
sequences. * optabs.c (expand_binop): Don't reuse the shift target in the middle of shift sequences. From-SVN: r58487
2002-09-26c-common.h: Follow spelling conventions.Kazu Hirata1-2/+2
* c-common.h: Follow spelling conventions. * cpplex.c: Likewise. * cpplib.h: Likewise. * gthr-dce.h: Likewise. * gthr-posix.h: Likewise. * optabs.c: Likewise. * output.h: Likewise. * profile.c: Likewise. * protoize.c: Likewise. * ra-rewrite.c: Likewise. * real.c: Likewise. * recog.c: Likewise. * reg-stack.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * reload.c: Likewise. * reload.h: Likewise. * reload1.c: Likewise. * reorg.c: Likewise. * resource.c: Likewise. * rtl.h: Likewise. * rtlanal.c: Likewise. From-SVN: r57555
2002-09-17optabs.c (prepare_cmp_insn): Let emit_library_call_value generate a pseudo ↵Kazu Hirata1-30/+17
reg that receives the result of a... * optabs.c (prepare_cmp_insn): Let emit_library_call_value generate a pseudo reg that receives the result of a libcall. (prepare_float_lib_cmp): Likewise. From-SVN: r57255
2002-09-16calls.c (emit_library_call_value_1): Don't refer to hard_libcall_value.Kazu Hirata1-7/+2
* calls.c (emit_library_call_value_1): Don't refer to hard_libcall_value. * optabs.c (prepare_float_lib_cmp): Likewise. From-SVN: r57207
2002-09-16real.c, real.h: Rewrite from scratch.Richard Henderson1-5/+3
gcc/ * real.c, real.h: Rewrite from scratch. * Makefile.in (simplify-rtx.o): Depend on TREE_H. (paranoia): New target. * builtins.c (fold_builtin_inf): Use new real.h interface. * c-common.c (builtin_define_with_hex_fp_value): Likewise. * c-lex.c (interpret_float): Likewise. * emit-rtl.c (gen_lowpart_common): Likewise. * optabs.c (expand_float): Use real_2expN. * config/ia64/ia64.md (divsi3, udivsi3): Likewise. * defaults.h (INTEL_EXTENDED_IEEE_FORMAT): New. (FLOAT_WORDS_BIG_ENDIAN): New. * cse.c (find_comparison_args): Don't pass FLOAT_STORE_FLAG_VALUE directly to REAL_VALUE_NEGATIVE. * loop.c (canonicalize_condition): Likewise. * simplify-rtx.c: Include tree.h. (simplify_unary_operation): Don't handle FIX and UNSIGNED_FIX with floating-point result modes. * toplev.c (backend_init): Call init_real_once. * fold-const.c (force_fit_type): Don't call CHECK_FLOAT_VALUE. * tree.c (build_real): Likewise. * config/alpha/alpha.c, config/vax/vax.c (float_strings, float_values, inited_float_values, check_float_value): Remove. * config/alpha/alpha.h, config/m68hc11/m68hc11.h, config/m88k/m88k.h, config/vax/vax.h (CHECK_FLOAT_VALUE): Remove. * doc/tm.texi (CHECK_FLOAT_VALUE): Remove. gcc/f/ * target.c (ffetarget_real1): Don't pass FFETARGET_ATOF_ directly to ffetarget_make_real1. (ffetarget_real2): Similarly. * target.h (ffetarget_cvt_r1_to_rv_, ffetarget_cvt_rv_to_r2_, ffetarget_cvt_r2_to_rv_): Use new real.h interface and simplify. gcc/java/ * jcf-parse.c (get_constant): Runtime check for IEEE format; use new real.h interface. * jcf-write.c (find_constant_index): Use new real.h interface. * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL. contrib/ * paranoia.cc: New file. From-SVN: r57198
2002-09-11optabs.c (expand_binop): Minor cleanup.Eric Botcazou1-14/+22
* optabs.c (expand_binop): Minor cleanup. (expand_twoval_binop): Convert CONST_INTs like in expand_binop. From-SVN: r57046
2002-09-04re PR c/7102 (unsigned char divisision results in floating exception)Eric Botcazou1-13/+7
PR c/7102 * optabs.c (expand_binop): Convert CONST_INTs in all cases. From-SVN: r56815
2002-08-03builtins.def: Define new builtin functions exp...Roger Sayle1-0/+2
* builtins.def: Define new builtin functions exp, expf, expl, log, logf and logl (and their __builtin_* variants). * optabs.h (enum optab_index): Add new OTI_exp and OTI_log. Define exp_optab and log_optab. * optabs.c (init_optans): Initialize exp_optab and log_optab. * genopinit.c (optabs): Implement exp_optab and log_optab using exp?f2 and log?f2 patterns. * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP* and BUILT_IN_LOG* using exp_optab and log_optab respectively. (expand_builtin): Ignore the new builtins (and all cos and sin variants) when not optimizing. Expand new builtins via expand_builtin_mathfn when flag_unsafe_math_optimizations. * doc/extend.texi: Document new exp and log builtins. * doc/md.texi: Document new exp?f2 and log?f2 patterns (and previously undocumented cos?f2 and sin?f2 patterns). From-SVN: r56010
2002-08-02df.c (df_insn_table_realloc): Change parameter to unsigned.Kaveh R. Ghazi1-1/+1
* df.c (df_insn_table_realloc): Change parameter to unsigned. * optabs.c (expand_binop): Make variable unsigned. * simplify-rtx.c (simplify_subreg): Likewise. * unroll.c (unroll_loop): Cast to avoid signed/unsigned warnings. From-SVN: r55960
2002-07-22optabs.c (expand_vector_unop): Don't expand using sub_optab if we got the ↵J"orn Rennecke1-1/+4
wrong mode. * optabs.c (expand_vector_unop): Don't expand using sub_optab if we got the wrong mode. From-SVN: r55648
2002-07-10Revert all patches for optimization of Complex .op.Toon Moene1-28/+8
2002-07-10 Toon Moene <toon@moene.indiv.nluug.nl> Revert all patches for optimization of Complex .op. Real. * complex_part_zero_p: Remove * expand_cmplxdiv_straight: Replace complex_part_zero_p(x) with x. * expand_cmplxdiv_wide: Ditto. * expand_binop: Ditto. From-SVN: r55379
2002-07-03optabs.c (expand_vector_binop): Don't store using a SUBREG smaller than ↵J"orn Rennecke1-30/+132
UNITS_PER_WORD... gcc: * optabs.c (expand_vector_binop): Don't store using a SUBREG smaller than UNITS_PER_WORD, unless this is little endian and the first unit in this word. Let extract_bit_field decide how to load an element. Force arguments to matching mode. (expand_vector_unop): Likewise. * simplify-rtx.c (simplify_subreg): Don't assume that all vectors consist of word_mode elements. * c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR, BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR. (build_unary_op): Allow vector types for BIT_NOT_EPR. * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for CONST_VECTOR. * optabs.c (expand_vector_binop): Try to perform operation in smaller vector modes with same inner size. Add handling of AND, IOR and XOR. Reject expansion to inner-mode sized scalars when using OPTAB_DIRECT. Use simplify_gen_subreg on constants. (expand_vector_unop): Try to perform operation in smaller vector modes with same inner size. Add handling of one's complement. When there is no vector negate operation, try a vector subtract operation. Use simplify_gen_subreg on constants. * simplify-rtx.c (simplify_subreg): Add capability to convert vector constants into smaller vectors with same inner mode, and to integer CONST_DOUBLEs. gcc/testsuite: * gcc.c-torture/execute/simd-1.c (main): Also test &, |, ^, ~. * gcc.c-torture/execute/simd-2.c (main): Likewise. From-SVN: r55209