summaryrefslogtreecommitdiff
path: root/gcc/optabs.h
Commit message (Collapse)AuthorAgeFilesLines
* 2011-06-24 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2011-06-241-0/+2
| | | | | | | | MELT branch merged with trunk rev 175370 using svnmerge. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@175371 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-06-04 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2011-06-041-0/+2
| | | | | | | | MELT branch merged with trunk rev 174636 using svnmerge git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@174639 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-05-11 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2011-05-111-2/+155
| | | | | | | | MELT branch merged with trunk rev 173647 using svnmerge git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@173652 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-03 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2011-01-031-1/+1
| | | | | | | | | MELT branch merged with trunk rev 168441 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@168442 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-05 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2010-11-051-0/+6
| | | | | | | | | | | | | | MELT branch merged with trunk rev 166377 2010-11-05 Basile Starynkevitch <basile@starynkevitch.net> MELT branch merged with trunk rev 166377 * gcc/Makefile.in (MELT_RAW_CFLAGS): removed LIBELFINC git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@166380 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-16 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2010-10-161-0/+3
| | | | | | | | MELT branch merged with trunk rev 165564 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@165565 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-19 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2010-09-191-75/+203
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MELT branch merged with trunk rev 164348, with some improvements in gcc/melt-runtime.[ch] 2010-09-19 Basile Starynkevitch <basile@starynkevitch.net> [[merged with trunk rev.164348, so improved MELT runtime!]] * gcc/melt-runtime.h: improved comments. (melt_debug_garbcoll, melt_debuggc_eprintf): Moved from melt-runtime.c. (melt_obmag_string): New declaration. (struct meltobject_st, struct meltclosure_st, struct meltroutine_st, struct meltmixbigint_st, struct meltstring_st): using GTY variable_size and @@MELTGTY@@ comment. (melt_mark_special): added debug print. * gcc/melt-runtime.c: Improved comments. Include bversion.h, realmpfr.h, gimple-pretty-print.h. (ggc_force_collect) Declared external. (melt_forward_counter): Added. (melt_obmag_string): New function. (melt_alptr_1, melt_alptr_2, melt_break_alptr_1_at) (melt_break_alptr_2_at, melt_break_alptr_1,melt_break_alptr_1) (melt_allocate_young_gc_zone, melt_free_young_gc_zone): New. (delete_special, meltgc_make_special): Improved debug printf and use melt_break_alptr_1... (ggc_alloc_*) macros defined for backport to GCC 4.5 (melt_forwarded_copy): Don't clear the new destination zone in old GGC heap. (meltgc_add_out_raw_len): Use ggc_alloc_atomic. (meltgc_raw_new_mappointers, meltgc_raw_put_mappointers) (meltgc_raw_remove_mappointers): Corrected length argument to ggc_alloc_cleared_vec_entrypointermelt_st. (melt_really_initialize): Call melt_allocate_young_gc_zone. (melt_initialize): Set flag_plugin_added. (melt_val2passflag): TODO_verify_loops only in GCC 4.5 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@164424 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-11-30 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2009-11-301-1/+1
| | | | | | | | MELT branch merged with trunk rev 154750 (or near) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@154757 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-09-30 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2009-09-301-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [merged with trunk while LTO is merging inside trunk, however the trunk's gengtype should now work for MELT, unchanged except by addition of "melt-runtime.h"] MELT branch merged with trunk rev 152324 --This line, and those below, will be ignored- - _M . M configure M Makefile.in M libgomp/configure M libgomp/ChangeLog M libgomp/acinclude.m4 M config.guess M gcc/tree-vrp.c M gcc/doc/plugins.texi M gcc/doc/extend.texi M gcc/doc/tm.texi M gcc/doc/invoke.texi M gcc/doc/gty.texi M gcc/doc/install.texi M gcc/tree-into-ssa.c M gcc/targhooks.c M gcc/tree-complex.c M gcc/targhooks.h M gcc/gengtype.c M gcc/java/builtins.c M gcc/java/ChangeLog M gcc/java/lang.c M gcc/optabs.c M gcc/optabs.h M gcc/DATESTAMP M gcc/value-prof.c M gcc/tree.c M gcc/tree.h M gcc/tree-pass.h M gcc/target.h M gcc/configure M gcc/builtins.c M gcc/final.c M gcc/fold-const.c M gcc/cfgloopanal.c M gcc/toplev.c M gcc/ChangeLog A + gcc/testsuite/gcc.c-torture/execute/pr41463.c M gcc/testsuite/gcc.c-torture/execute/980526-2.c A + gcc/testsuite/gcc.c-torture/execute/pr41395-2.c A + gcc/testsuite/gcc.c-torture/execute/ifcvt-onecmpl-abs-1.c A + gcc/testsuite/gcc.c-torture/execute/pr41395-1.c A + gcc/testsuite/gcc.c-torture/compile/pr39779.c A + gcc/testsuite/gcc.c-torture/compile/pr41469.c A + gcc/testsuite/gcc.target/alpha/pr22093.c M gcc/testsuite/gcc.target/i386/i386.exp M gcc/testsuite/gcc.target/i386/isa-1.c A + gcc/testsuite/gcc.target/i386/isa-12.c A + gcc/testsuite/gcc.target/i386/fma4-maccXX.c A + gcc/testsuite/gcc.target/i386/fma4-256-maccXX.c A + gcc/testsuite/gcc.target/i386/fma4-check.h A + gcc/testsuite/gcc.target/i386/fma4-msubXX.c A + gcc/testsuite/gcc.target/i386/isa-3.c A + gcc/testsuite/gcc.target/i386/fma4-256-msubXX.c M gcc/testsuite/gcc.target/i386/isa-14.c A + gcc/testsuite/gcc.target/i386/fma4-fma.c M gcc/testsuite/gcc.target/i386/isa-5.c A + gcc/testsuite/gcc.target/i386/isa-7.c A + gcc/testsuite/gcc.target/i386/funcspec-2.c A + gcc/testsuite/gcc.target/i386/isa-9.c M gcc/testsuite/gcc.target/i386/funcspec-4.c M gcc/testsuite/gcc.target/i386/pr12329.c A + gcc/testsuite/gcc.target/i386/ifcvt-onecmpl-abs-1.c M gcc/testsuite/gcc.target/i386/funcspec-6.c A + gcc/testsuite/gcc.target/i386/fma4-vector.c A + gcc/testsuite/gcc.target/i386/fma4-256-vector.c M gcc/testsuite/gcc.target/i386/funcspec-8.c A + gcc/testsuite/gcc.target/i386/sse-12.c M gcc/testsuite/gcc.target/i386/avx-2.c A + gcc/testsuite/gcc.target/i386/isa-11.c A + gcc/testsuite/gcc.target/i386/sse-14.c M gcc/testsuite/gcc.target/i386/sse-23.c A + gcc/testsuite/gcc.target/i386/isa-2.c A + gcc/testsuite/gcc.target/i386/isa-13.c A + gcc/testsuite/gcc.target/i386/isa-4.c A + gcc/testsuite/gcc.target/i386/fma4-nmaccXX.c M gcc/testsuite/gcc.target/i386/isa-6.c A + gcc/testsuite/gcc.target/i386/fma4-nmsubXX.c A + gcc/testsuite/gcc.target/i386/isa-8.c A + gcc/testsuite/gcc.target/i386/fma4-256-nmaccXX.c M gcc/testsuite/gcc.target/i386/funcspec-5.c A + gcc/testsuite/gcc.target/i386/fma4-256-nmsubXX.c M gcc/testsuite/gcc.target/i386/avx-1.c R + gcc/testsuite/gcc.target/i386/funcspec-9.c A + gcc/testsuite/gcc.target/i386/isa-10.c A + gcc/testsuite/gcc.target/i386/sse-13.c A + gcc/testsuite/gcc.target/i386/sse-22.c _M gcc/testsuite/gcc.target/x86_64/abi/callabi A + gcc/testsuite/gcc.target/vsx-vectorize-1.c M gcc/testsuite/gcc.target/mips/code-readable-1.c M gcc/testsuite/gcc.target/mips/code-readable-2.c M gcc/testsuite/gcc.target/mips/code-readable-3.c A + gcc/testsuite/gcc.target/vsx-vectorize-2.c A + gcc/testsuite/gcc.target/vsx-vectorize-3.c A + gcc/testsuite/gcc.target/vsx-vectorize-4.c A + gcc/testsuite/gcc.target/vsx-vectorize-5.c A + gcc/testsuite/gcc.target/vsx-vectorize-6.c A + gcc/testsuite/gcc.target/vsx-vectorize-7.c A + gcc/testsuite/gcc.target/vsx-vectorize-8.c M gcc/testsuite/gnat.dg/array7.adb M gcc/testsuite/gnat.dg/array7.ads A + gcc/testsuite/gnat.dg/nested_proc.adb A + gcc/testsuite/gnat.dg/array9.adb A + gcc/testsuite/gnat.dg/sse_nolib.adb A + gcc/testsuite/gnat.dg/tagged_alloc_free.adb A + gcc/testsuite/gcc.dg/pr41470.c A + gcc/testsuite/gcc.dg/guality/pr41353-1.c M gcc/testsuite/gcc.dg/guality/guality.h M gcc/testsuite/gcc.dg/guality/guality.exp A + gcc/testsuite/gcc.dg/debug/dwarf2/global-used-types.c M gcc/testsuite/gcc.dg/debug/dwarf2/const-1.c A + gcc/testsuite/gcc.dg/cond-constqual-1.c A + gcc/testsuite/gcc.dg/20090922-1.c A + gcc/testsuite/gcc.dg/pr40209.c M gcc/testsuite/gcc.dg/builtins-44.c A + gcc/testsuite/gcc.dg/pr41454.c M gcc/testsuite/gcc.dg/torture/builtin-math-7.c _M gcc/testsuite/gcc.dg/torture/pr36227.c A + gcc/testsuite/gcc.dg/tree-ssa/pr41469-1.c M gcc/testsuite/gcc.dg/tree-ssa/fre-vce-1.c M gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c A + gcc/testsuite/gcc.dg/pr41248.c A + gcc/testsuite/gcc.dg/pr41295.c M gcc/testsuite/gcc.dg/vect/vect.exp M gcc/testsuite/ChangeLog M gcc/testsuite/gcc.test-framework/dg-bogus-exp-XF.c M gcc/testsuite/gcc.test-framework/dg-warning-exp-P.c M gcc/testsuite/g++.dg/other/i386-2.C M gcc/testsuite/g++.dg/other/i386-6.C M gcc/testsuite/g++.dg/other/i386-3.C M gcc/testsuite/g++.dg/other/i386-5.C M gcc/testsuite/g++.dg/tree-ssa/pr19637.C A + gcc/testsuite/g++.dg/tree-ssa/pr41428.C M gcc/testsuite/g++.dg/dg.exp A + gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C M gcc/testsuite/g++.dg/debug/dwarf2/explicit-constructor.C M gcc/testsuite/g++.dg/debug/dwarf2/imported-module-2.C M gcc/testsuite/g++.dg/debug/dwarf2/imported-module-3.C M gcc/testsuite/g++.dg/debug/dwarf2/const1.C M gcc/testsuite/g++.dg/debug/dwarf2/imported-module-4.C M gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C M gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C M gcc/testsuite/g++.dg/debug/dwarf2/namespace-1.C M gcc/testsuite/g++.dg/debug/dwarf2/template-params-4.C M gcc/testsuite/g++.dg/vect/vect.exp A + gcc/testsuite/g++.dg/cpp0x/lambda A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-lookup-neg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-neg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-type.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-field-names.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-neg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref-default.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-pass.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mixed.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref-neg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-std-function.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctor-neg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-const.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class-neg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctors.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-use.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nop.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-neg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default-neg.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-recursive.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-array.C _M gcc/testsuite/g++.dg/cpp0x/decltype-38655.C A + gcc/testsuite/g++.dg/gomp/pr41429.C A + gcc/testsuite/g++.dg/torture/pr38747.C A + gcc/testsuite/g++.dg/dfp A + gcc/testsuite/g++.dg/dfp/dfp.exp A + gcc/testsuite/g++.dg/dfp/mangle-mode.C M gcc/testsuite/objc.dg/dwarf-2.m M gcc/testsuite/lib/profopt.exp M gcc/testsuite/lib/scanasm.exp M gcc/testsuite/lib/prune.exp M gcc/testsuite/lib/target-supports.exp M gcc/testsuite/gfortran.dg/warnings_are_errors_1.f A + gcc/testsuite/gfortran.dg/block_2.f08 A + gcc/testsuite/gfortran.dg/block_4.f08 A + gcc/testsuite/gfortran.dg/round_1.f03 A + gcc/testsuite/gfortran.dg/block_6.f08 M gcc/testsuite/gfortran.dg/debug/pr37738.f M gcc/testsuite/gfortran.dg/debug/pr35154-dwarf2.f A + gcc/testsuite/gfortran.dg/block_8.f08 A + gcc/testsuite/gfortran.dg/empty_label.f M gcc/testsuite/gfortran.dg/f2003_io_3.f03 A + gcc/testsuite/gfortran.dg/block_1.f08 A + gcc/testsuite/gfortran.dg/block_5.f08 A + gcc/testsuite/gfortran.dg/block_3.f90 A + gcc/testsuite/gfortran.dg/block_7.f08 A + gcc/testsuite/gfortran.dg/empty_label.f90 M gcc/testsuite/gfortran.dg/vect/vect.exp M gcc/testsuite/c-c++-common/dfp/func-vararg-mixed.c M gcc/testsuite/c-c++-common/dfp/func-vararg-alternate-d32.c M gcc/testsuite/c-c++-common/dfp/func-vararg-mixed-2.c M gcc/testsuite/c-c++-common/dfp/func-vararg-dfp.c M gcc/unwind-dw2-fde-glibc.c M gcc/df-scan.c M gcc/objcp/Make-lang.in M gcc/objcp/ChangeLog M gcc/objcp/objcp-lang.c M gcc/cp/typeck.c M gcc/cp/class.c M gcc/cp/decl.c M gcc/cp/method.c M gcc/cp/error.c M gcc/cp/tree.c M gcc/cp/ChangeLog M gcc/cp/cp-gimplify.c M gcc/cp/typeck2.c M gcc/cp/cp-lang.c M gcc/cp/pt.c M gcc/cp/semantics.c M gcc/cp/parser.c M gcc/cp/cp-tree.def M gcc/cp/cp-objcp-common.c M gcc/cp/cp-objcp-common.h _M gcc/cp/ChangeLog-2007 _M gcc/cp/ChangeLog-2008 M gcc/cp/mangle.c M gcc/cp/cp-tree.h M gcc/cp/search.c M gcc/cp/name-lookup.c M gcc/cp/lex.c M gcc/tree-ssa-ccp.c M gcc/builtins.def M gcc/tree-ssa-dom.c M gcc/tree-ssa-propagate.c M gcc/tree-ssa-propagate.h M gcc/crtstuff.c M gcc/ifcvt.c M gcc/dwarf2out.c M gcc/expr.h M gcc/libgcc2.c M gcc/ada/ChangeLog M gcc/ada/gcc-interface/utils.c M gcc/ada/gcc-interface/Makefile.in M gcc/ada/gcc-interface/decl.c M gcc/ada/gcc-interface/targtyps.c M gcc/ada/gcc-interface/utils2.c M gcc/ada/gcc-interface/gigi.h M gcc/ada/gcc-interface/trans.c M gcc/ada/gcc-interface/ada-tree.h M gcc/ada/gcc-interface/ada.h M gcc/ada/gcc-interface/misc.c M gcc/melt-runtime.c M gcc/c-decl.c M gcc/tree-eh.c M gcc/fortran/decl.c M gcc/fortran/gfortran.h M gcc/fortran/error.c M gcc/fortran/ChangeLog M gcc/fortran/trans-stmt.c M gcc/fortran/trans-stmt.h M gcc/fortran/trans.c M gcc/fortran/trans.h M gcc/fortran/io.c M gcc/fortran/resolve.c M gcc/fortran/f95-lang.c M gcc/fortran/st.c M gcc/fortran/match.c M gcc/fortran/trans-decl.c M gcc/fortran/match.h M gcc/fortran/parse.c M gcc/fortran/parse.h M gcc/fortran/simplify.c M gcc/configure.ac M gcc/function.c M gcc/langhooks.h M gcc/function.h M gcc/stor-layout.c M gcc/alias.c M gcc/ggc.h M gcc/c-typeck.c M gcc/gcc-plugin.h M gcc/calls.c M gcc/tree-ssa-coalesce.c M gcc/ggc-common.c M gcc/tree-dfa.c M gcc/except.c M gcc/emit-rtl.c M gcc/except.h M gcc/cfgexpand.c M gcc/c-opts.c M gcc/loop-iv.c M gcc/print-tree.c M gcc/tree-ssa-copy.c M gcc/tree-ssa-forwprop.c M gcc/common.opt M gcc/varasm.c M gcc/tree-nested.c M gcc/target-def.h M gcc/rtl.h M gcc/tree-vect-stmts.c M gcc/tree-inline.c M gcc/var-tracking.c M gcc/system.h M gcc/plugin.c M gcc/c-common.c M gcc/tree-flow.h M gcc/c-common.h M gcc/config.gcc M gcc/Makefile.in M gcc/tree-cfg.c M gcc/passes.c M gcc/c-parser.c M gcc/config/alpha/vms.h M gcc/config/alpha/alpha.c M gcc/config/alpha/alpha.h M gcc/config/alpha/openbsd.h M gcc/config/alpha/alpha.md M gcc/config/frv/frv.h M gcc/config/frv/frv-protos.h M gcc/config/frv/frv.c M gcc/config/s390/s390.c M gcc/config/s390/s390.h M gcc/config/s390/s390-protos.h M gcc/config/m32c/m32c.c M gcc/config/m32c/m32c.h M gcc/config/m32c/m32c-protos.h M gcc/config/spu/spu-protos.h M gcc/config/spu/spu.c M gcc/config/spu/spu.h M gcc/config/sparc/sparc.md M gcc/config/sparc/sparc-protos.h M gcc/config/sparc/sparc.c M gcc/config/sparc/sparc.h M gcc/config/mep/mep-protos.h M gcc/config/mep/mep.c M gcc/config/mep/mep.h M gcc/config/m32r/m32r.c M gcc/config/m32r/m32r.h A + gcc/config/openbsd-stdint.h M gcc/config/i386/i386.h M gcc/config/i386/cygming.h M gcc/config/i386/cygwin.h M gcc/config/i386/i386.md M gcc/config/i386/smmintrin.h M gcc/config/i386/cpuid.h M gcc/config/i386/x86intrin.h M gcc/config/i386/sse.md M gcc/config/i386/i386-c.c M gcc/config/i386/i386.opt A + gcc/config/i386/fma4intrin.h M gcc/config/i386/openbsdelf.h D gcc/config/i386/mmintrin-common.h M gcc/config/i386/mingw32.h M gcc/config/i386/i386-protos.h M gcc/config/i386/i386.c D gcc/config/sh/symbian.c M gcc/config/sh/sh-protos.h A + gcc/config/sh/symbian-base.c A + gcc/config/sh/symbian-cxx.c M gcc/config/sh/symbian-post.h M gcc/config/sh/sh.c A + gcc/config/sh/sh-symbian.h M gcc/config/sh/sh.h A + gcc/config/sh/symbian-c.c M gcc/config/sh/t-symbian M gcc/config/pdp11/pdp11.c M gcc/config/pdp11/pdp11.h M gcc/config/avr/avr.c M gcc/config/avr/avr.h M gcc/config/crx/crx.h M gcc/config/xtensa/xtensa.c M gcc/config/xtensa/xtensa.h M gcc/config/xtensa/xtensa-protos.h M gcc/config/stormy16/stormy16.c M gcc/config/stormy16/stormy16.h M gcc/config/fr30/fr30.h M gcc/config/fr30/fr30.c M gcc/config/moxie/moxie.c M gcc/config/moxie/moxie.h M gcc/config/m68hc11/m68hc11-protos.h M gcc/config/m68hc11/m68hc11.c M gcc/config/m68hc11/m68hc11.h A + gcc/config/openbsd-libpthread.h M gcc/config/cris/cris.c M gcc/config/cris/cris.h M gcc/config/netbsd.h M gcc/config/iq2000/iq2000.h M gcc/config/iq2000/iq2000.c M gcc/config/mn10300/mn10300.c M gcc/config/mn10300/mn10300.h M gcc/config/ia64/predicates.md M gcc/config/ia64/ia64.c M gcc/config/ia64/ia64.h M gcc/config/ia64/ia64.md M gcc/config/ia64/ia64-protos.h M gcc/config/m68k/openbsd.h M gcc/config/m68k/m68k.c M gcc/config/m68k/netbsd-elf.h M gcc/config/m68k/m68k.h M gcc/config/rs6000/predicates.md M gcc/config/rs6000/rs6000-protos.h M gcc/config/rs6000/rs6000.c M gcc/config/rs6000/vsx.md M gcc/config/rs6000/rs6000.h M gcc/config/rs6000/rs6000.md M gcc/config/picochip/picochip.c M gcc/config/picochip/picochip.h M gcc/config/picochip/picochip-protos.h M gcc/config/arc/arc.c M gcc/config/arc/arc.h M gcc/config/mcore/mcore.c M gcc/config/mcore/mcore.h M gcc/config/darwin.c M gcc/config/darwin.h M gcc/config/score/score3.c M gcc/config/score/score7.c M gcc/config/score/score3.h M gcc/config/score/score-protos.h M gcc/config/score/score7.h M gcc/config/score/score.c M gcc/config/score/score.h M gcc/config/arm/arm.c M gcc/config/arm/arm.h M gcc/config/pa/pa-protos.h M gcc/config/pa/pa.c M gcc/config/pa/pa.h M gcc/config/mips/openbsd.h M gcc/config/mips/mips.c M gcc/config/mips/mips.h M gcc/config/t-freebsd M gcc/config/openbsd.h M gcc/config/freebsd-spec.h M gcc/config/vax/vax.c M gcc/config/vax/openbsd.h M gcc/config/vax/vax.h M gcc/config/h8300/h8300.c M gcc/config/h8300/h8300.h M gcc/config/v850/v850.c M gcc/config/v850/v850.h M gcc/config/mmix/mmix.h M gcc/config/mmix/mmix-protos.h M gcc/config/mmix/mmix.c M gcc/config/bfin/bfin-protos.h M gcc/config/bfin/bfin.c M gcc/config/bfin/bfin.h M gcc/stmt.c M gcc/collect2.c M gcc/langhooks-def.h M gcc/reload1.c M config.sub M libstdc++-v3/configure M libstdc++-v3/doc/xml/manual/intro.xml M libstdc++-v3/doc/html/ext/lwg-closed.html M libstdc++-v3/doc/html/ext/lwg-active.html M libstdc++-v3/doc/html/ext/lwg-defects.html M libstdc++-v3/include/parallel/multiway_merge.h M libstdc++-v3/include/parallel/find_selectors.h M libstdc++-v3/include/parallel/losertree.h M libstdc++-v3/include/parallel/list_partition.h M libstdc++-v3/include/parallel/for_each.h M libstdc++-v3/include/parallel/multiseq_selection.h M libstdc++-v3/include/parallel/workstealing.h M libstdc++-v3/include/parallel/base.h M libstdc++-v3/include/parallel/par_loop.h M libstdc++-v3/include/parallel/numeric M libstdc++-v3/include/parallel/equally_split.h M libstdc++-v3/include/parallel/for_each_selectors.h M libstdc++-v3/include/parallel/omp_loop_static.h M libstdc++-v3/include/parallel/random_shuffle.h M libstdc++-v3/include/parallel/merge.h M libstdc++-v3/include/parallel/multiway_mergesort.h M libstdc++-v3/include/parallel/numericfwd.h M libstdc++-v3/include/parallel/search.h M libstdc++-v3/include/parallel/partition.h M libstdc++-v3/include/parallel/algobase.h M libstdc++-v3/include/parallel/find.h M libstdc++-v3/include/parallel/algo.h M libstdc++-v3/include/parallel/omp_loop.h M libstdc++-v3/include/parallel/checkers.h M libstdc++-v3/include/parallel/sort.h M libstdc++-v3/include/bits/random.tcc M libstdc++-v3/include/tr1/random.tcc M libstdc++-v3/libsupc++/eh_terminate.cc M libstdc++-v3/libsupc++/vec.cc M libstdc++-v3/libsupc++/vterminate.cc M libstdc++-v3/libsupc++/new_opnt.cc M libstdc++-v3/ChangeLog _M libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc _M libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc _M libstdc++-v3/testsuite/27_io/basic_fstream/open/char/1.cc _M libstdc++-v3/testsuite/27_io/basic_fstream/cons/1.cc _M libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc _M libstdc++-v3/testsuite/18_support/pthread_guard.cc _M libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc _M libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc _M libstdc++-v3/testsuite/30_threads/condition_variable/members _M libstdc++-v3/testsuite/30_threads/this_thread _M libstdc++-v3/testsuite/30_threads/thread/members _M libstdc++-v3/testsuite/30_threads/thread/swap A + libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constants.cc A + libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constants.cc A + libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constants.cc A + libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constants.cc _M libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/constants.cc A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/constants.cc A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/constants.cc A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/constants.cc A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/constants.cc A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/constants.cc _M libstdc++-v3/testsuite/23_containers/list/pthread1.cc _M libstdc++-v3/testsuite/23_containers/list/pthread5.cc _M libstdc++-v3/testsuite/23_containers/map/pthread6.cc _M libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc _M libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc _M libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc M libstdc++-v3/acinclude.m4 M configure.ac M libgfortran/configure M libgfortran/ChangeLog M libgfortran/config.h.in M libgfortran/configure.ac M libgfortran/io/io.h M libgfortran/io/unit.c M libgfortran/io/transfer.c M libgfortran/io/format.c M libgfortran/io/write_float.def M Makefile.tpl M libmudflap/ChangeLog M libmudflap/mf-runtime.c M include/ChangeLog M include/demangle.h M include/dwarf2.h M libiberty/ChangeLog M libiberty/testsuite/demangle-expected M libiberty/cplus-dem.c M libiberty/Makefile.in M libiberty/choose-temp.c M libiberty/cp-demangle.c M ChangeLog M ChangeLog.MELT M libffi/src/arm/sysv.S M libffi/src/x86/win64.S M libffi/ChangeLog M libjava/Makefile.in M libjava/libltdl/Makefile.in M libjava/libltdl/ltdl.h M libjava/libltdl/ChangeLog M libjava/libltdl/Makefile.am M libjava/configure.host M libjava/configure.ac _M libjava/classpath M libjava/ChangeLog M libjava/sysdep/i386/backtrace.h M libjava/configure M libjava/Makefile.am M libcpp/configure M libcpp/files.c M libcpp/ChangeLog M libcpp/configure.ac M MAINTAINERS git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@152327 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-08-29 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2009-08-291-4/+3
| | | | | | | | MELT branch merged with trunk rev 151199 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@151206 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-07-09 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2009-07-091-1/+0
| | | | | | | | MELT branch merged with trunk rev 149427 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@149430 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-06-22 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2009-06-221-0/+3
| | | | | | | | MELT branch merged with trunk r148777 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@148778 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2009-05-261-9/+10
| | | | | | | | MELT branch merged with trunk r147859 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@147861 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-15 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2009-05-151-23/+6
| | | | | | | | | | | | | | MELT branch merged with trunk r147550 2009-05-15 Basile Starynkevitch <basile@starynkevitch.net> merged with trunk rev147539 * gcc/melt/warmelt-normal.melt (normexp_defcmatcher): use obj_hash instead of hashcode! * gcc/Makefile.in: TEXI_GCCINT_FILES has both plugins.texi & melt.texi git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@147552 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-04-27 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2009-04-271-1/+0
| | | | | | | | | | | MERGED WITH TRUNK r146824:: * gcc/basilys.h: all GTY goes before the identifiers. * gcc/basilys.c: removed errors.h include. * gcc/run-basilys.h: ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@146839 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-08-14 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-08-141-0/+1
| | | | | | | | MELT branch merged with trunk r139100 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@139113 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-06-06 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-06-061-3/+3
| | | | | | | | MELT branch merged with trunk r136492 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@136504 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-06-02 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-06-021-4/+0
| | | | | | | | MELT branch merged with trunk r136272 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@136278 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-17 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-05-171-8/+32
| | | | | | | | MELT branch merged with trunk r135459 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@135460 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/33335jakub2007-11-181-185/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * optabs.h (optab_table): Change type to struct optab from optab. (convert_optab_table): Similarly. Adjust all _optab macros to expand to addresses of optab_table resp. convert_optab_table elements rather than the values of the elements. * optabs.c (optab_table): Change typype to struct optab from optab. If compiled by recent GCC, initialize all the insn_code fields in the array using designated range initializers. (convert_optab_table): Similarly. (convert_optab_libfunc, optab_libfunc, set_optab_libfunc, set_conv_libfunc): Into libfunc_entry's optab field store index within optab_table resp. convert_optab_table array instead of difference between two separately malloced addresses. (new_optab): Add op argument, don't return anything. Initialize just the insn_code field in handlers array and only when needed. (init_optab, init_optabv): Add op argument, don't return anything. Adjust new_optab caller. (new_convert_optab): Removed. (init_convert_optab): Add op argument, don't return anything, don't call new_convert_optab. If needed, initialize insn_code field in handlers array. (init_optabs): Adjust init_optab, init_optabv and init_convert_optab callers. (debug_optab_libfuncs): Adjust uses of optab_table and convert_optab_table arrays. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130274 138bc75d-0d04-0410-961f-82ee72b054a4
* * ginclude/stdfix.h: New file.chaoyingfu2007-09-071-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h. (convert.o): Add dependence on fixed-value.h. * c-convert.c (convert): Support FIXED_POINT_TYPE. * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function to define fixed-point constants. (c_cpp_builtins): Define fixed-point constants. * convert.c (fixed-value.h): New include. (convert_to_real): Update comment to include fixed-point. Support FIXED_POINT_TYPE. (convert_to_integer): Update comment to include fixed-point. Support FIXED_POINT_TYPE. (convert_to_complex): Support FIXED_POINT_TYPE. (convert_to_fixed): New function. * convert.h (convert_to_fixed): Declare. * genopinit.c: Add comment about $Q for only fixed-point modes. (optabs): Add fract_optab, fractuns_optab, satfract_optab, satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab, sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab, usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab, usneg_optab for fixed-point modes. (gen_insn): Add force_fixed to track the $Q format for all fixed-point modes. * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR, PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or unsigned saturation optabs, when type is saturating. (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT. (expand_fixed_convert): New function. (gen_fixed_libfunc, gen_signed_fixed_libfunc, gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc, gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc, gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc, gen_fract_conv_libfunc, gen_fractuns_conv_libfunc, gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New functions. (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab, usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab, ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab, usneg_optab, fract_optab, fractuns_optab, satfract_optab, satfractuns_optab. Initialize fixed-point libraries, including add, ssadd, usadd, sub, sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl, ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract, fractuns, satfractuns. * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub, OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg, OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen, OTI_ssmsub_widen, OTI_usmsub_widen. (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab, usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab, ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab, umsub_widen_optab, usmsub_widen_optab): Define. (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract, COI_satfractuns. (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab): Define. (expand_fixed_convert): Declare. * expr.c (convert_move): Support the move of fixed-point modes. (emit_move_insn_1): Handle fixed-point mode to move via integer. (categorize_ctor_elements_1): Handle FIXED_CST. (count_type_elements): Handle FIXED_POINT_TYPE. (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. Support FIXED_CST. For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating multiply and add/subtract for fixed-point types. For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point mode, we jump to binop directly. Support FIXED_CONVERT_EXPR. (do_store_flag): Check FIXED_CST to put a constant second. (vector_mode_valid_p): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. (const_vector_from_tree): Support FIXED_CST. * doc/extend.texi (Fixed-Point): New node. * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv, ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract, satfract, fractuns, satfractuns): Document them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128218 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c (debug_optab_libfunc): Update; make available to gdb.hubicka2007-09-041-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (libfunc_entry): New structure. (libfunc_hash): New hashtable. (hash_libfunc): New function. (eq_libfunc): New function. (convert_optab_libfunc): New function. (optab_libfunc): New function. (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc, expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn, expand_float, expand_fix, new_optab, new_convert_optab): Update for new libfunc API. (init_libfunc, init_integral_libfuncs, init_floating_libfuncs, init_interclass_conv_libfuncs init_intraclass_conv_libfuncs): Remove; reorganize all logic to: (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc, gen_intv_fp_libfunc, gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc, gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc, gen_extend_conv_libfunc): New. (init_one_libfunc): Revamp for hashtables. (set_conv_libfunc): Likewise. (init_optabs): Initialize hashtable; use lazy initialization where possible. * optabs.h (optab_handlers): Move out of GGC. (optab, convert_optab): Move out of GGC; add lazy gen info. (code_to_optab, convert_optab_table, optab_table): Move out of GGC. (optab_libfunc, convert_optab_libfunc): New. * builtins.c (expand_builtin_powi): Update for new API. * expr.c (convert_move): Likewise. * expmed.c (expand_divmod): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128083 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (vector_types_convertible_p,ghazi2007-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | decl_with_nonnull_addr_p, c_promoting_integer_type_p, self_promoting_args_p): Constify. * c-common.h (has_c_linkage, decl_with_nonnull_addr_p, c_promoting_integer_type_p, self_promoting_args_p, anon_aggr_type_p, vector_types_convertible_p): Likewise. * c-decl.c (anon_aggr_type_p): Likewise. * * c-dump.c (dump_stmt): Likewise. * c-objc-common.c (has_c_linkage): Likewise. * c-tree.h (same_translation_unit_p): Likewise. * c-typeck.c (null_pointer_constant_p, tagged_types_tu_compatible_p, function_types_compatible_p, type_lists_compatible_p, lvalue_or_else, lvalue_p, comptypes_internal, struct tagged_tu_seen_cache, same_translation_unit_p, alloc_tagged_tu_seen_cache, c_size_in_bytes): Likewise. * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor, hash_ptr, eq_ptr): Likewise. * langhooks-def.h (lhd_decl_ok_for_sibcall, LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise. * langhooks.c (lhd_decl_ok_for_sibcall): Likewise. * langhooks.h (ok_for_sibcall, omp_privatize_by_reference): Likewise. * optabs.c (optab_for_tree_code): Likewise. * optabs.h (optab_for_tree_code): Likewise. * rtl.h (simplify_rtx): Likewise. * simplify-rtx.c (simplify_rtx): Likewise. * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type, dump_flag, dump_node): Likewise. * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index, queue_and_dump_type, dump_flag): Likewise. * tree-flow.h (vect_can_force_dr_alignment_p): Likewise. * tree-pass.h (dump_node): Likewise. * tree-vectorizer.c (vect_can_force_dr_alignment_p, supportable_narrowing_operation): Likewise. * tree-vectorizer.h (vect_can_force_dr_alignment_p, supportable_narrowing_operation): Likewise. * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity, is_negative_overflow_infinity, is_positive_overflow_infinity, is_overflow_infinity, vrp_val_is_max, vrp_val_is_min, nonnull_arg_p, get_value_range, vrp_operand_equal_p, update_value_range, add_equivalence, ssa_name_nonnegative_p, ssa_name_nonzero_p, fp_predicate): Likewise. * tree.c (auto_var_in_fn_p, empty_body_p): Likewise. * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p, ssa_name_nonnegative_p): Likewise. cp: * call.c (sufficient_parms_p): Constify. * class.c (same_signature_p): Likewise. * cp-gimplify.c (is_invisiref_parm, cxx_omp_privatize_by_reference): Likewise. * cp-objcp-common.c (has_c_linkage): Likewise. * cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK, sufficient_parms_p, same_signature_p, copy_fn_p, move_fn_p, grok_ctor_properties, nothrow_libfn_p, skip_artificial_parms_for, num_artificial_parms_for, comp_template_parms, template_parameter_pack_p, any_dependent_template_arguments_p, any_type_dependent_arguments_p, any_value_dependent_elements_p, repo_export_class_p, cxx_omp_privatize_by_reference, pod_type_p, zero_init_p, member_p, cp_lvalue_kind, builtin_valid_in_constant_expr_p, decl_anon_ns_mem_p, varargs_function_p, is_dummy_object, special_function_kind, string_conv_p, type_unknown_p, comp_except_specs, compparms, comp_cv_qualification, is_bitfield_expr_with_lowered_type, unlowered_expr_type, ptr_reasonably_similar, cp_type_readonly, cp_has_mutable_p, at_least_as_qualified_p, invalid_nonstatic_memfn_p, lvalue_or_else, lvalue_p): Likewise. * decl.c (copy_fn_p, move_fn_p, grok_ctor_properties): Likewise. * except.c (nothrow_libfn_p): Likewise. * method.c (skip_artificial_parms_for, num_artificial_parms_for): Likewise. * pt.c (comp_template_parms, template_parameter_pack_p, any_type_dependent_arguments_p, any_value_dependent_elements_p, any_dependent_template_arguments_p): Likewise. * repo.c (repo_export_class_p): Likewise. * semantics.c (anon_aggr_type_p): Likewise. * tree.c (lvalue_p_1, real_lvalue_p, lvalue_p, builtin_valid_in_constant_expr_p, decl_anon_ns_mem_p, varargs_function_p, member_p, is_dummy_object, pod_type_p, zero_init_p, special_function_p): Likewise. * typeck.c (comp_array_types, type_unknown_p, comp_except_specs, comp_array_types, at_least_as_qualified_p, comp_cv_qualification, compparms, invalid_nonstatic_memfn_p, is_bitfield_expr_with_lowered_type, unlowered_expr_type, string_conv_p, ptr_reasonably_similar, cp_type_readonly, cp_has_mutable_p, lvalue_or_else): Likewise. fortran: * trans-openmp.c (gfc_omp_privatize_by_reference): Constify. * trans.h (gfc_omp_privatize_by_reference): Likewise. java: * lang.c (java_decl_ok_for_sibcall): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127799 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c (expand_widen_pattern_expr): Use optabs accestors.hubicka2007-08-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (expand_ternary_op): Likewise. (expand_vec_shift_expr): Likewise. (expand_binop_directly): Likewise. (expand_binop): Likewise. (sign_expand_binop): Likewise. (expand_twoval_unop): Likewise. (expand_twoval_binop): Likewise. (expand_twoval_binop_libfunc): Likewise. (widen_clz): Likewise. (widen_bswap): Likewise. (expand_parity): Likewise. (expand_unop): Likewise. (expand_abs_nojump): Likewise. (expand_copysign): Likewise. (emit_no_conflict_block): Likewise. (emit_libcall_block): Likewise. (can_compare_p): Likewise. (prepare_cmp_insn): Likewise. (emit_cmp_and_jump_insn_1): Likewise. (prepare_float_lib_cmp): Likewise. (emit_conditional_add): Likewise. (gen_add2_insn): Likewise. (have_add2_insn): Likewise. (gen_sub2_insn): Likewise. (have_sub2_insn): Likewise. (can_extend_p): Likewise. (can_fix_p): Likewise. (can_float_p): Likewise. (expand_float): Likewise. (expand_fix): Likewise. (expand_sfix_optab): Likewise. (new_optab): Likewise. (new_convert_optab): Likewise. (init_libfuncs): Likewise. (init_interclass_conv_libfuncs): Likewise. (init_intraclass_conv_libfuncs): Likewise. (set_conv_libfunc): Likewise. (init_optabs): Likewise. (debug_optab_libfuncs): Likewise. (gen_cond_trap): Likewise. * optabs.h (optab_handler, convert_optab_hanlder): New. * genopinit.c: Update optabs generation table. * reload.c (find_reloads_address_1): Use optabs accestors. * builtins.c (expand_builtin_mathfn): Likewise. (expand_builtin_mathfn_2): Likewise. (expand_builtin_mathfn_3): Likewise. (expand_builtin_interclass_mathfn): Likewise. (expand_builtin_sincos): Likewise. (expand_builtin_cexpi): Likewise. (expand_builtin_powi): Likewise. (expand_builtin_strlen): Likewise. * dojump.c (do_jump): Likewise. * expr.c (convert_move): Likewise. (move_by_pieces): Likewise. (move_by_pieces_ninsns): Likewise. (can_store_by_pieces): Likewise. (store_by_pieces_1): Likewise. (emit_move_via_integer): Likewise. (emit_move_complex): Likewise. (emit_move_ccmode): Likewise. (emit_move_insn_1): Likewise. (emit_single_push_insn): Likewise. (store_constructor): Likewise. (expand_expr_real_1): Likewise. (do_store_flag): Likewise. * ada/misc.c (gnat_compute_largest_alignment): Likewise. (enumerate_modes): Likewise. * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise. (supportable_widening_operation): Likewise. (supportable_narrowing_operation): Likewise. * expmed.c (store_bit_field_1): Likewise. (extract_bit_field_1): Likewise. (expand_mult_highpart_optab): Likewise. (expand_smod_pow2): Likewise. (expand_divmod): Likewise. (emit_store_flag): Likewise. * tree-vect-patterns.c (vect_pattern_recog_1): Likewise. * tree-ssa-loop-prefetch.c (nontemporal_store_p): Likewise. * tree-vect-transform.c (vect_model_reduction_cost): Likewise. (vect_create_epilog_for_reduction): Likewise. (vectorizable_reduction): Likewise. (vectorizable_operation): Likewise. (vect_strided_store_supported): Likewise. (vectorizable_store): Likewise. (vect_strided_load_supported): Likewise. (vectorizable_load): Likewise. * combine.c (simplify_comparison): Likewise. * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. (expand_vector_operations_1): Likewise. * config/spu/spu.c (spu_expand_mov): Likewise. (spu_emit_vector_compare): Likewise. * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Likewise. * stmt.c (add_case_node): Likewise. * reload1.c (gen_reload): git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127317 138bc75d-0d04-0410-961f-82ee72b054a4
* Change copyright header to refer to version 3 of the GNU General Public ↵nickc2007-07-261-4/+3
| | | | | | License and to point readers at the COPYING3 file and the FSF's license web page. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126948 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.h (enum optab_index): Add new OTI_signbit.uros2007-07-211-5/+3
| | | | | | | | | | | | | | | | | | | | (signbit_optab): Define corresponding macro. (enum insn_code signbit_optab[]): Remove array. * optabs.c (init_optabs): Initialize signbit_optab using init_optab. (expand_copysign_absneg): If back end provides signbit insn, use it instead of bit operations on floating point argument. * builtins.c (enum insn_code signbit_optab[]): Remove array. (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for availability of signbit insn. * config/i386/i386.md (signbit<mode>2): New insn pattern to implement signbitf, signbit and signbitl built-ins as inline x87 intrinsics when SSE mode is not active. (isinf<mode>2): Disable for mfpmath=sse,387. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126813 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>uweigand2007-07-091-0/+3
| | | | | | | | | | | | | * optabs.h: Added declaration for signbit_optab. * optabs.c: (init_optabs): Added initialization for signbit_optab. * genoptinit.c (optabs): Added entry for signbit insns. * builtins.c (expand_builtin_signbit): Added code to use a signbit insn, if available. * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant. * config/s390/s390.md (signbit<mode>2): New expander. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126495 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge dataflow branch into mainlinedberlin2007-06-111-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125624 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.rakdver2007-06-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-predcom.c (mark_virtual_ops_for_renaming): Exported. * tree-ssa-loop-prefetch.c: Include optabs.h. (FENCE_FOLLOWING_MOVNT): New macro. (struct mem_ref): Add independent_p and storent_p fields. (record_ref): Initalize the new fields. (gather_memory_references_ref): Return true if the reference could be analysed. (gather_memory_references): Check whether all memory accesses in loop were recorded. (should_issue_prefetch_p): Return false for nontemporal stores. (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop, may_use_storent_in_loop_p, mark_nontemporal_stores): New functions. (determine_loop_nest_reuse): Detect independent memory references. (loop_prefetch_arrays): Call mark_nontemporal_stores. * tree-flow.h (mark_virtual_ops_for_renaming): Declare. * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency. * config/i386/i386.h (x86_mfence): Declare. (FENCE_FOLLOWING_MOVNT): Return x86_mfence. * config/i386/i386.c (x86_mfence): New variable. (ix86_init_mmx_sse_builtins): Initialize x86_mfence. * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores. * optabs.c (init_optabs): Initialize storent_optab. * optabs.h (enum optab_index): Add OTI_storent. (storent_optab): Declare. * genopinit.c (optabs): Add initialization for storent_optab. * tree.h (MOVE_NONTEMPORAL): New macro. * expr.c (expand_assignment, store_expr, store_constructor_field, store_constructor, store_field, expand_expr_real_1): Propagate nontemporality of the expanded store. (emit_storent_insn): New function. * expr.h (expand_assignment, store_expr): Declaration changed. * function.c (assign_parm_setup_reg): Pass false as nontemporality to expand_assignment. * stmt.c (expand_asm_expr): Ditto. * calls.c (initialize_argument_information): Pass false as nontemporality to store_expr. * config/i386/sse.md (storentv4sf, storentv2df, storentv2di, storentsi): New. * gcc.dg/tree-ssa/prefetch-7.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125604 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,kazu2007-05-251-2/+2
| | | | | | | | | | | haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c, tree-predcom.c, tree-ssa-alias-warnings.c, tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix comment typos. Follow spelling conventions. * doc/cpp.texi, doc/invoke.texi: Fix typos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125080 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/24659uros2007-05-171-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi, OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi, OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and OTI_vec_pack_ufix_trunc. (vec_unpacks_float_hi_optab): Define new macro. (vec_unpacks_float_lo_optab): Ditto. (vec_unpacku_float_hi_optab): Ditto. (vec_unpacku_float_lo_optab): Ditto. (vec_pack_sfix_trunc_optab): Ditto. (vec_pack_ufix_trunc_optab): Ditto. * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab and vec_pack_[s|u]fix_trunc_optab using vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns * tree-vectorizer.c (supportable_widening_operation): Handle FLOAT_EXPR and CONVERT_EXPR. Update comment. (supportable_narrowing_operation): New function. * tree-vectorizer.h (supportable_narrowing_operation): Prototype. * tree-vect-transform.c (vectorizable_conversion): Handle (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases. (vect_gen_widened_results_half): Move before vectorizable_conversion. (vectorizable_type_demotion): Call supportable_narrowing_operation() to check for target support. * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab for VEC_PACK_FIX_TRUNC_EXPR. (expand_binop): Special case mode of the result for vec_pack_[u|s]fix_trunc_optab. (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and vec_pack_[u|s]fix_trunc_optab. * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR, VEC_PACK_FIX_TRUNC_EXPR): New tree codes. * tree-pretty-print.c (dump_generic_node): Handle VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and VEC_PACK_FIX_TRUNC_EXPR. (op_prio): Ditto. * expr.c (expand_expr_real_1): Ditto. * tree-inline.c (estimate_num_insns_1): Ditto. * tree-vect-generic.c (expand_vector_operations_1): Ditto. * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander. (vec_unpacks_float_lo_v8hi): Ditto. (vec_unpacku_float_hi_v8hi): Ditto. (vec_unpacku_float_lo_v8hi): Ditto. (vec_unpacks_float_hi_v4si): Ditto. (vec_unpacks_float_lo_v4si): Ditto. (vec_pack_sfix_trunc_v2df): Ditto. * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]: Document. [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto. [VEC_PACK_FIX_TRUNC_EXPR]: Ditto. * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document. [vec_pack_ufix_trunc]: Ditto. [vec_unpacks_float_hi]: Ditto. [vec_unpacks_float_lo]: Ditto. [vec_unpacku_float_hi]: Ditto. [vec_unpacku_float_lo]: Ditto. testsuite/ChangeLog: PR tree-optimization/24659 * gcc.dg/vect/vect-floatint-conversion-2.c: New test. * gcc.dg/vect/vect-intfloat-conversion-1.c: Require vect_float, not vect_int target. * gcc.dg/vect/vect-intfloat-conversion-2.c: Require vect_float, not vect_int target. Loop is vectorized for vect_intfloat_cvt targets. * gcc.dg/vect/vect-intfloat-conversion-3.c: New test. * gcc.dg/vect/vect-intfloat-conversion-4a.c: New test. * gcc.dg/vect/vect-intfloat-conversion-4b.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124784 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.chaoyingfu2007-05-081-0/+8
| | | | | | | | | | | | | | | | | | | | | * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes. (smsub_widen_optab, umsub_widen_optab): Define. * optabs.c (init_optabs): Initialize smsub_widen_optab and umsub_widen_optab. * genopinit.c (optabs): Fill in smsub_widen_optab and umsub_widen_optab. * expr.c (expand_expr_real_1): Try to use smsub_widen_optab and umsub_widen_optab to implement multiply-subtract sequences. * config/mips/mips.md (*msac<u>_di): Rename to... (<u>msubsidi4): ...this. Extend condition to include GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint of operand 0 to "ka" and use the three-operand form of msub<u> for TARGET_DSPR2. * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert to define_expands. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124558 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2007-04-241-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-xx-xx Chao-ying Fu <fu@mips.com> Richard Sandiford <richard@nildram.co.uk> * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document. * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes. (smadd_widen_optab, umadd_widen_optab): Define. * optabs.c (init_optabs): Initialize smadd_widen_optab and umadd_widen_optab. * genopinit.c (optabs): Fill in smadd_widen_optab and umadd_widen_optab. * expr.c (expand_expr_real_1): Try to use smadd_widen_optab and umadd_widen_optab to implement multiply-add sequences. * config/mips/mips.md (*<su>mul_acc_di): Rename to... (<u>maddsidi4): ...this. Extend condition to include GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint of operand 0 to "ka" and use the three-operand form of madd<u> for TARGET_DSPR2. * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert to define_expands. * config/mips/constraints.md (ka): New register constraint. gcc/testsuite/ 2007-xx-xx Richard Sandiford <richard@nildram.co.uk> * gcc.target/mips/madd-1.c, gcc.target/mips/madd-2.c, * gcc.target/mips/madd-3.c, gcc.target/mips/madd-4.c, * gcc.target/mips/maddu-1.c, gcc.target/mips/maddu-2.c, * gcc.target/mips/maddu-3.c, gcc.target/mips/maddu-4.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124095 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-04-22 Uros Bizjak <ubizjak@gmail.com>uros2007-04-221-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR tree-optimization/24659 * optabs.h (enum optab_index) [OTI_vec_unpacks_hi, OTI_vec_unpacks_lo]: Update comment to mention floating point operands. (vec_pack_trunc_optab): Rename from vec_pack_mod_optab. * genopinit.c (optabs): Rename vec_pack_mod_optab to vec_pack_trunc_optab. * tree-vect-transform.c (vectorizable_type_demotion): Do not fail early for scalar floating point operands for NOP_EXPR. (vectorizable_type_promotion): Ditto. * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return vec_pack_trunc_optab. (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab. * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR. * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]: Rename from VEC_PACK_MOD_EXPR. (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto. * expr.c (expand_expr_real_1): Ditto. * tree-inline.c (estimate_num_insns_1): Ditto. * tree-vect-generic.c (expand_vector_operations_1): Ditto. * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander. (vec_unpacks_lo_v4sf): Ditto. (vec_pack_trunc_v2df): Ditto. (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi. (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si. (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di. * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi. (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si. * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]: Rename from VEC_PACK_MOD_EXPR. This expression also represent packing of floating point operands. [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also represent unpacking of floating point operands. * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation. [vec_unpacks_hi]: Ditto. [vec_unpacks_lo]: Ditto. testsuite/ChangeLog: 2007-04-22 Uros Bizjak <ubizjak@gmail.com> PR tree-optimization/24659 * gcc.dg/vect/vect-float-extend-1.c: New test. * gcc.dg/vect/vect-float-truncate-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124045 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.h (enum optab_index): Add new OTI_scalb.uros2007-02-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | (scalb_optab): Define corresponding macro. * optabs.c (init_optabs): Initialize scalb_optab. * genopinit.c (optabs): Implement scalb_optab using scalb?f3 patterns. * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}. (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set. * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders to implement scalbf, scalb and scalbl built-ins as inline x87 intrinsics. testsuite/ChangeLog * gcc.dg/builtins-34.c: Add scalb/scalbn/scalbln cases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122162 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.h (enum optab_index): Add new OTI_isinf.uros2007-01-311-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | (isinf_optab): Define corresponding macro. * optabs.c (init_optabs): Initialize isinf_optab. * genopinit.c (optabs): Implement isinf_optab using isinf?f2 patterns. * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}. (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L} using isinf_optab. (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using expand_builtin_interclass_mathfn. * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM. * config/i386/i386.md (UNSPEC_FXAM): New constant. (fxam<mode>2_i387): New insn pattern. (isinf<mode>2) New expander to implement isinf, isinff and isinfl built-in functions as x87 inline asm. testsuite/ChangeLog: * gcc.dg/builtins-63.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121419 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/c-tree.texi: Document new tree codes.irar2006-11-221-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/md.texi: Document new optabs. * tree-pretty-print.c (dump_generic_node): Handle print of new tree codes. * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs. * optabs.h (optab_index): Add new. (vec_extract_even_optab, vec_extract_odd_optab, vec_interleave_high_optab, vec_interleave_low_optab): New optabs. * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab, vec_interleave_high_optab, vec_interleave_low_optab): Initialize new optabs. * expr.c (expand_expr_real_1): Add implementation for new tree codes. * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields. * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving along with macros for their access. * tree-data-ref.h (first_location_in_loop, data_reference): Update comment. * tree-vect-analyze.c (toplev.h): Include. (vect_determine_vectorization_factor): Fix indentation. (vect_insert_into_interleaving_chain, vect_update_interleaving_chain, vect_equal_offsets): New functions. (vect_analyze_data_ref_dependence): Add argument for interleaving check. Check for interleaving if it's true. (vect_check_dependences): New function. (vect_analyze_data_ref_dependences): Call vect_check_dependences for every ddr. Call vect_analyze_data_ref_dependence with new argument. (vect_update_misalignment_for_peel): Update for interleaving. (vect_verify_datarefs_alignment): Check only first data-ref for interleaving. (vect_enhance_data_refs_alignment): Update for interleaving. Check only first data-ref for interleaving. (vect_analyze_data_ref_access): Check interleaving, update interleaving data. (vect_analyze_data_refs): Call compute_data_dependences_for_loop with different parameters. * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes. * tree-inline.c (estimate_num_insns_1): Add cases for new codes. * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Update step in case of interleaving. (vect_strided_store_supported, vect_permute_store_chain): New functions. (vectorizable_store): Handle strided stores. (vect_strided_load_supported, vect_permute_load_chain, vect_transform_strided_load): New functions. (vectorizable_load): Handle strided loads. (vect_transform_stmt): Add argument. Handle strided stores. Check that vectorized stmt exists for patterns. (vect_gen_niters_for_prolog_loop): Update calculation for interleaving. (vect_transform_loop): Remove stmt_vec_info for strided stores after whole chain vectorization. * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD, UNSPEC_INTERHI, UNSPEC_INTERLO): New constants. (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even<mode>, vec_extract_odd<mode>, altivec_vmrghsf, altivec_vmrglsf, vec_interleave_high<mode>, vec_interleave_low<mode>): Implement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119088 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>dorit2006-11-081-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take enum argument instead of bool. (vect_analyze_operations): Call vectorizable_type_promotion. * tree-vectorizer.h (type_promotion_vec_info_type): New enum stmt_vec_info_type value. (supportable_widening_operation, vectorizable_type_promotion): New function declarations. * tree-vect-transform.c (vect_gen_widened_results_half): New function. (vectorizable_type_promotion): New function. (vect_transform_stmt): Call vectorizable_type_promotion. * tree-vect-analyze.c (supportable_widening_operation): New function. * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Add implementation. * tree-vect-generic.c (expand_vector_operations_1): Consider correct mode. * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR): (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes. * tree-inline.c (estimate_num_insns_1): Add cases for above new tree-codes. * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. * expr.c (expand_expr_real_1): Likewise. * optabs.c (optab_for_tree_code): Likewise. (init_optabs): Initialize new optabs. * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab, vec_widen_smult_hi_optab, vec_widen_smult_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab, vec_unpacku_lo_optab): Initialize new optabs. * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo): (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi, OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New optab indices. (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab): (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab): (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab): (vec_unpacku_lo_optab): New optabs. * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi): (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo): (vec_widen_smult_hi, vec_widen_smult_lo): New. * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR): (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New. * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB): (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH): (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New. (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New. (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to implement the unsigned unpacking patterns. (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi): (vec_unpacks_lo_v8hi): New signed unpacking patterns. (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi): (vec_unpacku_lo_v8hi): New unsigned unpacking patterns. (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi): (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi): (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi): (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening multiplication patterns. * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New. * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New. * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New. (rs6000_builtin_mul_widen_odd): New. (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined. (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined. * tree-vectorizer.h (enum vect_relevant): New enum type. (_stmt_vec_info): Field relevant chaned from bool to enum vect_relevant. (STMT_VINFO_RELEVANT_P): Updated. (STMT_VINFO_RELEVANT): New. * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT instead of STMT_VINFO_RELEVANT_P. * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT, and boolean variable with enum vect_relevant. (vect_mark_stmts_to_be_vectorized): Likewise + update documentation. * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New. (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New. 2006-11-08 Richard Henderson <rth@redhat.com> * config/i386/sse.md (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi): New. (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si, vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New. * config/i386/i386.c (ix86_expand_sse_unpack): New. * config/i386/i386-protos.h (ix86_expand_sse_unpack): New. * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi, vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi, vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si, vec_unpacks_lo_v4si): New. 2006-11-08 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vectorizable_type_demotion): New function. (vect_transform_stmt): Add case for type_demotion_vec_info_type. (vect_analyze_operations): Call vectorizable_type_demotion. * tree-vectorizer.h (type_demotion_vec_info_type): New enum stmt_vec_info_type value. (vectorizable_type_demotion): New function declaration. * tree-vect-generic.c (expand_vector_operations_1): Consider correct mode. * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes. * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and VEC_PACK_SAT_EXPR. * tree-iniline.c (estimate_num_insns_1): Likewise. * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. * optabs.c (optab_for_tree_code): Likewise. * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode compared against the predicate of the result is not 'mode' (the input to the function) but a mode with half the size of 'mode'. (init_optab): Initialize new optabs. * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat): New optab indices. (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New optabs. * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab): (vec_pack_usat_optab): Initialize new optabs. * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New. * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New. 2006-11-08 Richard Henderson <rth@redehat.com> * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi): (vec_interleave_highv8hi, vec_interleave_lowv8hi): (vec_interleave_highv4si, vec_interleave_lowv4si): (vec_interleave_highv2di, vec_interleave_lowv2di): New. 2006-11-08 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vectorizable_reduction): Support multiple datatypes. (vect_transform_stmt): Removed redundant code. 2006-11-08 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vectorizable_operation): Support multiple datatypes. 2006-11-08 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vect_align_data_ref): Removed. (vect_create_data_ref_ptr): Added additional argument - ptr_incr. Updated function documentation. Return the increment stmt in ptr_incr. (bump_vector_ptr): New function. (vect_get_vec_def_for_stmt_copy): New function. (vect_finish_stmt_generation): Create a stmt_info to newly created vector stmts. (vect_setup_realignment): Call vect_create_data_ref_ptr with additional argument. (vectorizable_reduction, vectorizable_assignment): Not supported yet if VF is greater than the number of elements that can fit in one vector word. (vectorizable_operation, vectorizable_condition): Likewise. (vectorizable_store, vectorizable_load): Support the case that the VF is greater than the number of elements that can fit in one vector word. (vect_transform_loop): Don't fail in case of multiple data-types. * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail in case of multiple data-types; the smallest type determines the VF. (vect_analyze_data_ref_dependence): Don't record datarefs as same_align if they are of different sizes. (vect_update_misalignment_for_peel): Compare misalignments in terms of number of elements rather than number of bytes. (vect_enhance_data_refs_alignment): Fix/Add dump printouts. (vect_can_advance_ivs_p): Fix a dump printout git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118577 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-07 Eric Christopher <echristo@apple.com>geoffk2006-11-011-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Falk Hueffner <falk@debian.org> * doc/extend.texi (__builtin_bswap32): Document. (__builtin_bswap64): Ditto. * doc/libgcc.texi (bswapsi2): Document. (bswapdi2): Ditto. * doc/rtl.texi (bswap): Document. * optabs.c (expand_unop): Don't widen a bswap. (init_optabs): Init bswap. Set libfuncs explicitly for bswapsi2 and bswapdi2. * optabs.h (OTI_bswap): New. (bswap_optab): Ditto. * genopinit.c (optabs): Handle bswap_optab. * tree.h (tree_index): Add TI_UINT32_TYPE and TI_UINT64_TYPE. (uint32_type_node): New. (uint64_type_node): Ditto. * tree.c (build_common_tree_nodes_2): Initialize uint32_type_node and uint64_type_node. * builtins.c (expand_builtin_bswap): New. (expand_builtin): Call. (fold_builtin_bswap): New. (fold_builtin_1): Call. * fold-const.c (tree_expr_nonnegative_p): Return true for bswap. * builtin-types.def (BT_UINT32): New. (BT_UINT64): Ditto. (BT_FN_UINT32_UINT32): Ditto. (BT_FN_UINT64_UINT64): Ditto. * builtins.def (BUILT_IN_BSWAP32): New. (BUILT_IN_BSWAP64): Ditto. * rtl.def (BSWAP): New. * genattrtab.c (check_attr_value): New. * libgcc2.c (__bswapSI2): New. (__bswapDI2): Ditto. * libgcc2.h (__bswapSI2): Declare. (__bswapDI2): Ditto. * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2. * simplify-rtx.c (simplify_const_unary_operation): Return 0 for BSWAP. * libgcc-std.ver (__bwapsi2): Add. (__bswapdi2): Ditto. * reload1.c (eliminate_regs_1): Add bswap. (elimination_effects): Ditto. * config/i386/i386.h (x86_bswap): New. (TARGET_BSWAP): Use. * config/i386/i386.c (x86_bswap): Set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118361 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-29 Richard Guenther <rguenther@suse.de>rguenth2006-10-291-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * genopinit.c (optabs): Change lfloor_optab and lceil_optab to conversion optabs. * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab as conversion optab. * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil. (enum convert_optab_index): Add COI_lfloor and COI_lceil. (lfloor_optab, lceil_optab): Adjust defines. * builtins.c (expand_builtin_int_roundingfn): Adjust for lfloor and lceil optabs now being conversion optabs. * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare. * config/i386/i386.c (ix86_expand_sse_compare_and_jump): New static helper function. (ix86_expand_lfloorceil): New function to expand lfloor and lceil inline. * config/i386/i386.md (lfloor<mode>2): Split into ... (lfloorxf<mode>2): ... x87 variant (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants using ix86_expand_lfloorceil. (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2): Likewise. * doc/md.texi (lfloorMN, lceilMN): Document. * gcc.target/i386/math-torture/lfloor.c: New testcase. * gcc.target/i386/math-torture/lceil.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118143 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-28 Richard Guenther <rguenther@suse.de>rguenth2006-10-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | PR target/28806 * builtins.c (expand_builtin_int_roundingfn_2): Expand BUILT_IN_LROUND and BUILT_IN_LLROUND from here. (expand_builtin): Adjust likewise. * genopinit.c (optabs[]): Add lround optab. * optabs.c (init_optabs): Initialize lround_optab. * optabs.h (enum convert_optab_index): Add COI_lround. (lround_optab): Define. * config/i386/i386-protos.h (ix86_expand_lround): Declare. * config/i386/i386.c (ix86_sse_copysign_to_positive): New static function. (ix86_expand_lround): New function. * config/i386/i386.md (lround<mode>di2, lround<mode>si2): New expanders. * doc/md.texi (lroundMN2): Document. * gcc.target/i386/math-torture/lround.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118105 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-25 Richard Guenther <rguenther@suse.de>rguenth2006-10-251-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | * optabs.h (enum optab_index): Remove OTI_lrint. (enum convert_optab_index): Add COI_lrint. (lrint_optab): Adjust. (expand_sfix_optab): Declare. * optabs.c (expand_sfix_optab): New function. (init_optabs): Init lrint_optab as conversion optab. * genopinit.c (lrint_optab): Change to a conversion optab. * builtins.c (expand_builtin_int_roundingfn_2): Adjust to expansion via conversion optab. * config/i386/i386.md (*fistdi2_1): Remove flag_unsafe_math_optimizations guard. (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2, fist<mode>2_with_temp): Likewise. (lrint<mode>2): Split into... (lrintxf<mode>2): ... x87 part (lrint<mode>di2, lrint<mode>si2): ... and SSE parts. * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2, sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for UNSPEC_FIX_NOTRUNC matching non-vector float modes. * doc/md.texi (lrintMN2): Document. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118029 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.uros2006-10-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (remainder_optab): Define corresponding macro. (drem_optab): Remove. * optabs.c (init_optabs): Initialize remainder_optab. Remove drem_optab initialization. * genopinit.c (optabs): Implement remainder_optab using remainder?f3 patterns. Remove drem_optab. * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_REMAINDER{,F,L} using remainder_optab. (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using expand_builtin_mathfn_2. (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not depend on flag_unsafe_math_optimizations. * config/i386/i386.md ("remaindersf3", "remainderdf3") ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders. Do not depend on flag_unsafe_math_optimizations. Use truncxf?f expander instead of truncxf?f_i387_noop. ("fpremxf4", "fprem1xf4"): Do not depend on flag_unsafe_math_optimizations. ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on flag_unsafe_math_optimizations. Use truncxf?f expander instead of truncxf?f_i387_noop. * doc/md.texi (fmod, remainder): Document standard named pattern. testsuite/ChangeLog: * gcc.dg/builtins-40.c: Also check remainder(), remainderf() and remainderl() built-in functions. Remove -ffast-math from dg-options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118024 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (tree-vect-patterns.o): Add rule for new file.dorit2006-01-191-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-vect-analyze.c (vect_determine_vectorization_factor): Use existing STMT_VINFO_VECTYPE if available. (vect_mark_relevant): Add special handling for stmts that are marked as STMT_VINFO_IN_PATTERN_P. (vect_analyze_loop): Call vect_pattern_recog. * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields. * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in stmt_info. (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros. (vect_recog_func_ptr): New function-pointer type. * tree-vect-patterns.c: New file. (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern): (vect_recog_dot_prod_pattern, vect_pattern_recog): (vect_pattern_recog_1): New functions. (vect_pattern_recog_funcs): New array of function pointers. * tree-vectorizer.h (ternary_op): New enum value. * tree-vect-transform.c (vect_create_epilog_for_reduction): Added declaration. Revised documentation. Removed redundant dump prints. Removed redundant argument. Added support for reduction patterns. (vectorizable_reduction): Added support for reduction patterns. (vect_transform_stmt): Added support for patterns. * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR. * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize. * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR. (expand_widen_pattern_expr): New function. (init_optabs): Initialize new optabs udot_prod_optab, sdot_prod_optab. * optabs.h (OTI_sdot_prod, OTI_udot_prod): New. (sdot_prod_optab, udot_prod_optab): Define new optabs. (expand_widen_pattern_expr): New function declaration. * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New tree-codes. * tree-inline.c (estimate_num_insns_1): Added cases for new tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. * tree-pretty-print.c (dump_generic_node): Likewise. (op_prio): Likewise. (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. * tree-ssa-operands.c (get_expr_operands): Added case for DOT_PROD_EXPR. * tree-vect-patterns.c (widened_name_p): New function. (vect_recog_dot_prod_pattern): Added function implementation. * tree-vect-transform.c (get_initial_def_for_reduction): Added cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR. * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New. * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New. * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR. * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize. * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR. (init_optabs): Initialize new optabs widen_ssum_optab, widen_usum_optab. * optabs.h (OTI_widen_ssum, OTI_widen_usum): New. (widen_ssum_optab, widen_usum_optab): Define new optabs. * tree-vect-generic.c: (expand_vector_operations_1): Check type of use instead of type of def. * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added function implementation. * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi, widen_ssumv8hi): New. * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109954 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_expr_real): Use usmul_optab for wideningbernds2005-11-201-0/+3
| | | | | | | | | | | | | | | signed * unsigned multiplies. * genopinit.c (optabs): Add usmul_widen_optab. * optabs.c (init_optabs): Likewise. * optabs.h (enum optab_index): Add OTI_usmul_widen. (usmul_widen_optab): Define. * config/bfin/bfin.md (usmulhisi3): New pattern. * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107258 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-08-19 Eric Christopher <echristo@apple.com>echristo2005-08-191-22/+22
| | | | | | | | * optabs.h: Change CTI_ to COI_. * optabs.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103295 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-07-12 Adrian Straetling <straetling@de.ibm.com>uweigand2005-07-121-0/+1
| | | | | | | | | | | | | | | | | | * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp): s/cmpstrsi/cmpstrnsi (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and 'cmpstrnsi'. * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'. (init_optabs): Initialize cmpstrn_optab. * optabs.h: (enum insn_code cmpstrn_optab): Declare. * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation. * expr.c: (enum insn_code cmpstrn_optab): Declare. * config/i386/i386.md: s/cmpstr/cmpstrn * config/c4x/c4x.md: s/cmpstr/cmpstrn * doc/md.texi: Update documentation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101916 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-06-28 Adrian Straetling <straetling@de.ibm.com>uweigand2005-06-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * builtins.c: (expand_builtin_memset): Rewrite to support 'set_storage_via_setmem'. * expr.c: (enum insn_code setmem_optab): Define. (enum insn_code clrmem_optab): Remove. (set_storage_via_setmem): New function. (clear_storage_via_setmem): Remove. (clear_storage): Replace call to "clear_storage_via_clrmem" with "set_storage_via_setmem". * expr.h: (set_storage_via_setmem): Declare. (CLEAR_RATIO): Redefine using HAVE_setmemM. * optabs.h: (enum insn_code setmem_optab): Declare. (enum insn_code clrmem_optab): Remove. * optabs.c: (init_optabs): Initialize setmem_optab. (enum insn_code clrmem_optab): Remove. * genopinit.c: (otabs): Likewise. * doc/md.texi: Document new standard pattern 'setmem'. Remove 'clrmem'. * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust 'operands' ordering. * config/frv/frv.c: (frv_expand_block_clear): Likewise. * config/rs6000/rs6000.c: (expand_block_clear): Likewise. * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM". FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering. * config/avr/avr.md: ("clrmemhi"): Likewise. * config/frv/frv.md: ("clrmemsi"): Likewise. * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise. * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise. * config/rs6000/rs6000.md: ("clrmemsi"): Likewise. * config/s390/s390.md: ("clrmem<mode>"): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101386 138bc75d-0d04-0410-961f-82ee72b054a4
* Update FSF address.kcook2005-06-251-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101317 138bc75d-0d04-0410-961f-82ee72b054a4
* * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.dorit2005-06-211-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (reduc_plus_optab): Removed. Replcaed with... (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs. * optabs.c (optab_for_tree_code): Return reduc_splus_optab or reduc_uplus_optab instead of reduc_plus_optab. (expand_vec_shift_expr): New function. (init_optabs): Initialize new optabs. Remove initialization of reduc_plus_optab. (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR. * optabs.h (OTI_reduc_plus): Removed. Replaced with... (OTI_reduc_splus, OTI_reduc_uplus): New. (reduc_plus_optab): Removed. Replcaed with... (reduc_splus_optab, reduc_uplus_optab): New optabs. (vec_shl_optab, vec_shr_optab): New optabs. (expand_vec_shift_expr): New function declaration. * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes. * tree-inline.c (estimate_num_insns_1): Handle new tree-codes. * expr.c (expand_expr_real_1): Handle new tree-codes. * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise. * tree-vect-generic.c (expand_vector_operations_1): Add assert. * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two alternatives for generating reduction epilog code. (vectorizable_reduction): Don't fail of direct reduction support is not available. (vectorizable_target_reduction_pattern): Likewise. * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf, reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si, reduc_plus_v4si, reduc_plus_v4sf): Removed. (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode, reduc_splus_<mode>, reduc_uplus_v16qi): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101231 138bc75d-0d04-0410-961f-82ee72b054a4