| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[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
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk rev 151701
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@151702 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk rev 151367
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@151369 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk r147090
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@147091 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk r145646
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@145649 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk r144379
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@144380 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk r140370
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@140372 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MERGED WITH TRUNK rev139820
* gcc/melt/warmelt-first.bysl: added location argument to inform.
* gcc/warmelt-first-0.c: regenerated.
* gcc/warmelt-macro-0.c: regenerated.
* gcc/warmelt-normal-0.c: regenerated.
* gcc/warmelt-genobj-0.c: regenerated.
* gcc/warmelt-outobj-0.c: regenerated.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@139849 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk r138226 [after tuple merge into trunk]
some compiler probe stuff are missing
* gcc/compiler-probe.h: more gimple, less tree
* gcc/compiler-probe.c: incomplete merge.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@138247 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk r136046
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@136051 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk r134973
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@134974 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
MELT branch merged with trunk r134362
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@134378 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130459 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* tree-ssa-propagate.c (set_rhs): Remove the copied annotation
from the original statement.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127946 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
* tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
ccp_min_invariant.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126857 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
* tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
properly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126721 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
* tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
* tree-ssa-propagate.c (valid_gimple_expression_p): New
predicate, extracted from...
(set_rhs): ...here. Call it for the expression on entry.
* tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
* tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
(simplify_binary_expression): Use valid_gimple_expression_p
to validate the simplification.
* Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126545 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
predecessors at head rather than tail.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123906 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-vrp.c: Include "intl.h".
(usable_range_p): New static function.
(compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
overflowed values, juts set *strict_overflow_p.
(compare_values): Only return -2 if one of the operands is not a
constant.
(compare_ranges): Call usable_range_p.
(compare_range_with_value): Likewise.
(vrp_evaluate_conditional_warnv): Rename from
vrp_evaluate_conditional. Make static. Change all callers.
(vrp_evaluate_conditional): New function.
(simplify_div_or_mod_using_ranges): Issue warning about reliance
on signed overflow.
(simplify_abs_using_ranges): Likewise.
(simplify_stmt_for_jump_threading): Add within_stmt parameter.
* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
within_stmt parameter.
* tree-ssa-propagate.c (fold_predicate_in): Update call to
vrp_evaluate_conditional.
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts_at_dest): Change
simplify parameter to take a second tree parameter.
(simplify_control_stmt_condition): Likewise.
(thread_across_edge): Likewise.
* tree-flow.h (vrp_evaluate_conditional): Update declaration.
(thread_across_edge): Likewise.
* gcc/Makefile.in (tree-vrp.o): Depend upon intl.h.
testsuite/:
* gcc.dg/no-strict-overflow-5.c: New test.
* gcc.dg/no-strict-overflow-6.c: New test.
* gcc.dg/Wstrict-overflow-11.c: New test.
* gcc.dg/Wstrict-overflow-12.c: New test.
* gcc.dg/Wstrict-overflow-13.c: New test.
* gcc.dg/Wstrict-overflow-14.c: New test.
* gcc.dg/Wstrict-overflow-15.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122706 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-vrp.c (uses_overflow_infinity): New static function.
(supports_overflow_infinity): New static function.
(make_overflow_infinity): New static function.
(negative_overflow_infinity): New static function.
(positive_overflow_infinity): New static function.
(is_negative_overflow_infinity): New static function.
(is_positive_overflow_infinity): New static function.
(is_overflow_infinity): New static function.
(overflow_infinity_range_p): New static function.
(compare_values_warnv): New function split out of compare_values.
(compare_value): Call it.
(set_value_range_to_nonnegative): Add overflow_infinity
parameter. Change caller.
(vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
Change callers.
(vrp_expr_computes_nonzero): Likewise.
(compare_ranges, compare_range_with_value): Likewise.
(compare_name_with_value, compare_names): Likewise.
(vrp_evaluate_conditional): Likewise.
(set_value_range): Handle infinity
(vrp_operand_equal_p, operand_less_p): Likewise.
(extract_range_from_assert): Likewise.
(vrp_int_const_binop): Likewise.
(extract_range_from_binary_expr): Likewise.
(extract_range_from_unary_expr): Likewise.
(extract_range_from_comparison): Likewise.
(extract_range_from_expr): Likewise.
(dump_value_range): Likewise.
(vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
(test_for_singularity): Likewise.
(vrp_int_const_binop): Remove inline qualifier.
(adjust_range_with_scev): Add comment.
* tree-flow.h (vrp_evaluate_conditional): Update declaration.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122487 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
PR middle-end/30833
* tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
during CALL_EXPR representation conversion.
* tree-ssa-propagate.c (set_rhs): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122122 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
(execute_ssa_ccp): Return flags conditionally.
* tree-ssa-propagate.c (substitue_and_fold): Return if something was
changed.
* tree-ssa-propagate.h (substitute_and_fold): Update prototype.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120894 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/tree-ssa.texi: Update documentation for virtual operands
and the use of push_stmt_changes/pop_stmt_changes.
* doc/invoke.texi: Remove documentation for params
global-var-threshold.
Update documentation on max-aliased-vops.
* tree-into-ssa.c: Cleanup comments, variables and
spacing in various functions.
(regs_to_rename): Declare.
(mem_syms_to_rename): Declare.
(dump_update_ssa): Declare.
(debug_update_ssa): Declare.
(dump_names_replaced_by): Declare.
(debug_names_replaced_by): Declare.
(dump_def_blocks): Declare.
(debug_def_blocks): Declare.
(dump_defs_stack): Declare.
(debug_defs_stack): Declare.
(dump_currdefs): Declare.
(debug_currdefs): Declare.
(mark_def_sites): Do not handle virtual operands.
(compute_idf): Rename from find_idf. Update users.
(register_new_def): Make local. Convert second argument
to 'tree'.
Use BLOCK_DEFS_STACK directly.
If pushing a non-register, also push the underlying
symbol.
(rewrite_stmt): Do not handle virtual operands.
(dump_tree_ssa): Call dump_def_blocks, dump_defs_stack,
dump_currdefs and dump_tree_ssa_stats.
(dump_tree_ssa_stats): Also dump REPL_TBL.
(replace_use): Remove. Update all users to call SET_USE
instead.
(rewrite_blocks): Move code to free memory to
fini_ssa_renamer.
(mark_def_site_blocks): Move initialization code to
init_ssa_renamer.
(init_ssa_renamer): New.
(fini_ssa_renamer): New.
(rewrite_into_ssa): Call them.
(prepare_block_for_update): Process SSA_OP_ALL_USES first
and SSA_OP_ALL_DEFS later. Do not process virtual
operands separately.
(dump_update_ssa): Call dump_decl_set.
(init_update_ssa): Initialize regs_to_rename and
mem_syms_to_rename.
Call init_ssa_renamer.
(delete_update_ssa): Call fini_ssa_renamer.
Free blocks_with_phis_to_rewrite.
(mark_sym_for_renaming): If the variable has
sub-variables, also mark them.
If the variable belongs to a partition, also mark it.
(mark_set_for_renaming): Call mark_sym_for_renaming on
every symbol in the set.
(switch_virtuals_to_full_rewrite): Call
mark_set_for_renaming.
(update_ssa): Separate syms_to_rename into regs_to_rename
and mem_syms_to_rename.
* tree-dump.c (dump_options): Add TDF_MEMSYMS.
* tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS.
(debug_generic_stmt): Likewise.
(debug_tree_chain): Likewise.
(dump_symbols): New.
(dump_generic_node): Check for TDF_MEMSYMS.
Handle MEMORY_PARTITION_TAG.
If the statement references memory and TDF_MEMSYMS is
given, call dump_symbols.
Indicate default names with (D).
(dump_vops): Update for new virtual operator format.
* tree.c (init_ttree): Add MEMORY_PARTITION_TAG to
tree_contains_struct.
(tree_code_size): Handle MEMORY_PARTITION_TAG.
(tree_node_structure): Likewise.
(needs_to_live_in_memory): Handle SSA names.
* tree.h (MTAG_P): Likewise.
(struct tree_memory_partition_tag): Declare.
(MPT_SYMBOLS): Define.
(union tree_node): Add field 'mpt'.
* treestruct.def (TS_MEMORY_PARTITION_TAG): Define.
* tree.def (MEMORY_PARTITION_TAG): Define.
* tree-pass.h (TDF_MEMSYMS): Define.
* params.h (GLOBAL_VAR_THRESHOLD): Remove.
* tree-ssa-alias.c: Include pointer-set.h
(struct alias_map_d): Remove fields total_alias_vops,
grouped_p and may_aliases. Update all users.
(struct mp_info_def): Declare.
(mp_info_t): New type.
(get_smt_for): Rename from get_tmt_for. Update all
users.
(add_may_alias): Add argument ALREADY_ADDED. If given,
use it to avoid adding duplicate entries to alias sets.
(replace_may_alias): Remove. Update all users.
(total_alias_vops_cmp): Remove. Update all users.
(group_aliases_into): Remove. Update all users.
(tree_pointer_compare): Remove. Update all users.
(compact_name_tags): Remove. Update all users.
(group_aliases): Remove. Update all users.
(mark_non_addressable): Move from tree-flow-inline.h.
Remove the symbol from the partition holding it, if
needed.
(dump_mp_info): New.
(debug_mp_info): New.
(sort_mp_info): New.
(create_partition_for): New.
(rewrite_alias_set_for): New.
(compute_memory_partitions): New.
(compute_may_aliases): Call it.
(init_alias_info): If computing aliases for the first
time, mark every memory symbol for renaming.
(have_common_aliases_p): New.
(compute_flow_insensitive_aliasing): Call it.
(setup_pointers_and_addressables): Do not cache
num_referenced_vars.
For register promoted symbols, mark their former
partition for renaming.
(maybe_create_global_var): Only create .GLOBAL_VAR if
there are no call-clobbered variables and a mix of pure
and non-pure functions were found.
(may_alias_p): Tidy comments.
(create_tag_raw): Remove unused variable new_type.
(dump_alias_info): call dump_memory_partitions.
(dump_points_to_info_for): Call dump_decl_set.
(may_be_aliased): Tidy comments and formatting.
* timevar.def (TV_MEMORY_PARTITIONING): Define.
* tree-vectorizer.c (vect_memsyms_to_rename): Rename from
vect_vnames_to_rename. Set DECL_UIDs instead of SSA name
versions in it.
(slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs.
* tree-vect-transform.c (vect_transform_loop): Call
mark_set_for_renaming with vect_memsyms_to_rename.
* tree-flow-inline.h (zero_imm_uses_p): New.
(memory_partition): New.
(set_memory_partition): New.
(factoring_name_p): New.
(symbol_mem_tag): New. Update every function that used
to access the annotation directly.
(set_symbol_mem_tag): Likewise.
* tree-ssa-copy.c (may_propagate_copy): Allow copies
between a partition and a symbol as long as the symbol
belongs to the partition.
(merge_alias_info): Ignore merge requests when memory
partitions are involved.
* tree-ssa.c (verify_ssa_name): Check that default
definitions have empty defining statements.
(verify_use): Remove argument IS_VIRTUAL.
Don't call verify_ssa_name.
(verify_phi_args): Call verify_ssa_name.
(verify_flow_insensitive_alias_info): Handle MPTs.
(verify_flow_sensitive_alias_info): Likewise.
(verify_name_tags): Likewise.
(verify_call_clobbering): Likewise.
(verify_ssa): Check for VOPs only after aliasing
information is available.
Check virtuals and real operands separately.
Call verify_ssa_name on every operand.
(stmt_references_memory_p): Move to tree-ssa-operands.c.
(walk_use_def_chains_1): Guard against NULL PHI
arguments.
* tree-ssa-operands.c (stmt_references_memory_p): Move from
tree-ssa.c.
(get_mpt_for): New.
(dump_memory_partitions): New.
(debug_memory_partitions): New.
* tree-flow.h (struct var_ann_d): Add field mpt.
(struct stmt_ann_d): Add bitfield references_memory.
* Makefile.in (tree-ssa-structalias.o): Include
pointer-set.h
(tree-ssa-alias.o): Likewise.
* tree-ssa-structalias.c: (update_alias_info): Use
STORED_SYMS to determine which variables are being
written to by the store operation.
* tree-ssa-structalias.h (struct alias_info)
<total_alias_vops>: Remove. Update all users.
<written_vars>: Change to a pointer set. Update all
users.
<dereferenced_ptrs_store>: Likewise.
<dereferenced_ptrs_load>: Likewise.
(NUM_REFERENCES): Remove. Update all users.
(NUM_REFERENCES_CLEAR): Remove. Update all users.
(NUM_REFERENCES_INC): Remove. Update all users.
(NUM_REFERENCES_SET): Remove. Update all users.
* params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove.
Update all users.
(PARAM_MAX_ALIASED_VOPS): Set to 10.
* tree-ssanames.c (make_ssa_name): Initialize
SSA_NAME_IS_DEFAULT_DEF to 0.
2006-12-11 Aldy Hernandez <aldyh@redhat.com>
* tree-ssa-dse.c (aggregate_vardecl_d): New.
(dse_global_data): Add aggregate_vardecl field.
(dse_possible_dead_store_p): New.
Add prev_defvar variable.
Allow immediate uses and previous immediate uses to differ
if they are setting different parts of the whole.
(get_aggregate_vardecl): New.
(dse_record_partial_aggregate_store): New.
(dse_whole_aggregate_clobbered_p): New.
(dse_partial_kill_p): New.
(dse_optimize_stmt): Abstract code checking a possible dead store
into new function dse_possible_dead_store_p().
Call dse_maybe_record_aggregate_store().
When checking whether a STMT and its USE_STMT refer to the
same memory address, check also for partial kills that clobber
the whole.
Move some variable definitions to the block where they are used.
(aggregate_vardecl_hash): New.
(aggregate_vardecl_eq): New.
(aggregate_vardecl_free): New.
(aggregate_whole_store_p): New.
(tree_ssa_dse): Initialize and free aggregate_vardecl.
Mark which aggregate stores we care about.
2006-12-11 Andrew Macleod <amacleod@redhat.com>
* tree-ssa-operands.h (struct vuse_element_d): Declare.
(vuse_element_t): Declare.
(struct vuse_vec_d): Declare.
(vuse_vec_p): Declare.
(VUSE_VECT_NUM_ELEM): Define.
(VUSE_VECT_ELEMENT_NC): Define.
(VUSE_ELEMENT_PTR_NC): Define.
(VUSE_ELEMENT_VAR_NC): Define.
(VUSE_VECT_ELEMENT): Define.
(VUSE_ELEMENT_PTR): Define.
(VUSE_ELEMENT_VAR): Define.
(struct maydef_optype_d) <use_var>: Remove.
<use_ptr>: Remove.
<usev>: Add.
(struct vuse_optype_d) <kill_var>: Remove.
<use_ptr>: Remove.
<usev>: Add.
(struct mustdef_optype_d) <kill_var>: Remove.
<use_ptr>: Remove.
<usev>: Add.
(VUSE_OP_PTR): Add argument. Use VUSE_ELEMENT_PTR.
(VUSE_OP): Add argument. Use VUSE_ELEMENT_PTR.
(VUSE_NUM): Define.
(VUSE_VECT): Define.
(MAYDEF_OP_PTR): Add argument. Use VUSE_OP_PTR.
(MAYDEF_OP): Add argument. Use VUSE_OP.
(MAYDEF_NUM): Define.
(MAYDEF_VECT): Define.
(MUSTDEF_KILL_PTR): Use VUSE_OP_PTR.
(MUSTDEF_KILL): Use VUSE_OP.
(MUSTDEF_NUM): Define.
(MUSTDEF_VECT): Define.
(realloc_maydef): Declare.
(realloc_vuse): Declare.
(struct ssa_operand_iterator_d) <vuse_index>: Add.
<mayuse_index>: Add.
(LOADED_SYMS): Define.
(STORED_SYMS): Define.
(FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef.
* tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE
operators.
* tree-pretty-print.c: Likewise.
* tree-ssa-dse.c: Likewise.
* tree-flow-inline.h: Likewise.
(op_iter_next_mustdef): New.
* tree-ssa-operands.c: Likewise.
(ALLOC_OPTYPE): Remove.
Update all users.
(alloc_def): New.
(alloc_use): New.
(alloc_maydef): New.
(alloc_vuse): New.
(alloc_mustdef): New.
(realloc_maydef): New.
(realloc_vuse): New.
2006-12-11 Aldy Hernandez <aldyh@redhat.com>
* tree-ssa-operands.c: Remove build_v_must_defs.
(init_ssa_operands): Delete build_v_must_defs.
(finalize_ssa_v_must_def_ops): Remove.
(finalize_ssa_v_must_defs): Remove.
(finalize_ssa_stmt_operands): Do not call
finalize_ssa_v_must_defs.
(start_ssa_stmt_operands): Do not check build_v_must_defs.
(append_v_must_def): Delete.
(copy_virtual_operands): Do not copy V_MUST_DEFs.
(get_modify_expr_operands): Remove reference to V_MUST_DEF from
comment. Remove opf_kill_def.
(build_ssa_operands): Remove references to v_must_defs.
(copy_virtual_operands): Same.
(copy_virtual_operands): Same.
(fini_ssa_operands): Same.
(free_ssa_operands): Same.
(add_mustdef_op): Remove.
Remove mustdef_optype_p.
(alloc_mustdef): Remove.
Remove references to V_MUST_DEFs in comment at top of file.
(get_expr_operands): Remove opf_kill_def.
(opf_kill_def): Remove.
(add_virtual_operand): Remove opf_kill_def.
(get_indirect_ref_operands): Same.
(get_tmr_operands): Same.
* tree-vectorizer.c (rename_variables_in_bb): Remove
SSA_OP_ALL_KILLS.
* tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove
SSA_OP_ALL_KILLS.
(check_loop_closed_ssa_stmt): Same.
* tree-ssa.c (verify_def): Remove V_MUST_DEF from comment.
(verify_use): Same.
(verify_ssa): Remove V_MUST_DEFs traces.
(verify_ssa): Remove SSA_OP_ALL_KILLS.
* tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to
SSA_OP_VMAYDEF.
(rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS.
(rewrite_stmt): Remove SSA_OP_ALL_KILLS.
* tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF
references.
(MUSTDEF_OPS): Remove.
(SSA_OP_VMUSTDEF): Remove.
(FOR_EACH_SSA_MUSTDEF_OPERAND): Remove.
(struct mustdef_optype_d): Remove.
Remove mustdef_optype_p.
(struct stmt_operands_d): Remove mustdef_ops.
(ssa_operand_iterator_d): Remove mustdefs and mustkills.
(SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF.
(MUSTDEF_RESULT_PTR): Remove.
(MUSTDEF_RESULT): Remove.
(MUSTDEF_KILL_PTR): Remove.
(MUSTDEF_KILL): Remove.
(MUSTDEF_NUM): Remove.
(MUSTDEF_VECT): Remove.
(SSA_OP_VIRTUAL_KILLS): Remove.
(SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS.
(SSA_OP_VMUSTKILL): Remove.
(SSA_OP_ALL_KILLS): Remove.
(SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS.
* tree-flow-inline.h (op_iter_init_def): Remove
SSA_OP_VIRTUAL_KILLS.
(delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS.
* tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
SSA_OP_VIRTUAL_KILLS.
* tree-ssa-loop-im.c (determine_max_movement): Remove
SSA_OP_VIRTUAL_KILLS.
(gather_mem_refs_stmt): Same.
(gather_mem_refs_stmt): Same.
* tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete.
(perform_tree_ssa_dce): Remove call to
mark_really_necessary_kill_operand_phis.
* tree-flow-inline.h (op_iter_init): Remove setting of mustdefs
and mustkills.
(op_iter_next_use): Do not check mustkills.
(op_iter_next_def): Do not check mustdefs.
(op_iter_next_tree): Do not check mustkills or mustdefs.
(clear_and_done_ssa_iter): Do not set mustdefs or mustkills.
(op_iter_next_maymustdef): Do not check mustkills.
(op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL.
(op_iter_init_mustdef): Remove.
* tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to
SSA_OP_VMAYDEF.
* tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF.
* tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments.
(visit_assignment): Same.
* tree-ssa-copy.c (copy_prop_visit_assignment): Same.
* tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment.
* tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF.
* tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF.
Remove kill_p variable.
* tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs.
(dump_dfa_stats): Remove code related to V_MUST_DEFs.
(collect_dfa_stats_r): Do not set num_v_must_defs.
(mark_new_vars_to_rename): Remove v_must_defs_{before,after}
code.
* tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to
SSA_OP_VMAYUSE.
* tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL.
* tree-ssa-propagate.c (stmt_makes_single_store): Remove
SSA_OP_VMUSTDEF.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119760 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename from create_ssa_artficial_load_stmt. Update all users.
* tree-into-ssa.c (register_new_def): Make static.
* tree.c (is_global_var): Handle SSA_NAMEs.
* tree.h (SSA_NAME_IS_DEFAULT_DEF): Define. Update all users
that used to call gimple_default_def.
* tree-ssa-operands.c (push_stmt_changes): New.
(pop_stmt_changes): New. Update every pass that modifies
statements to bracket modifications with
push_stmt_changes/pop_stmt_changes.
(discard_stmt_changes): New.
* tree-ssa-dom.c (stmts_to_rescan): Change to stack of
'tree *' instead of 'tree'. Update all users.
* tree-flow-inline.h (zero_imm_uses_p): New.
(symbol_mem_tag): New. Update every function that used
to access the annotation directly.
(set_symbol_mem_tag): Likewise.
* tree-dfa.c (dump_variable): Always show the escape mask.
(mark_symbols_for_renaming): Rename from
mark_new_vars_to_rename. Update all users.
Only mark to rename naked symbols in real and virtual
operands.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119746 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119546 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-flow-inline.h
(gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars,
gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var,
gimple_nonlocal_all): New accessors.
(first_referenced_var): Update.
(mark_stmt_modified): Update.
(is_call_clobbered): Update.
(mark_call_clobbered): Update.
(clear_call_clobbered): Update.
(mark_non_addressable): Update.
* tree-vrp.c (get_value_range): Update.
* tree-into-ssa.c (in_ssa_p): Kill.
(get_default_def_for): Update.
(rewrite_into_ssa): Update.
* tree-complex.c (init_parameter_lattice_values): Update.
(update_complex_assignment): Update.
(update_parameter_components): Update.
(expand_complex_libcall): Update.
(expand_complex_operations_1): Update.
* tree-tailcall.c (arg_needs_copy_p): Update.
(add_virtual_phis): Update.
(tree_optimize_tail_calls_1): Update.
* tree-ssa-dse.c (memory_ssa_name_same): Update.
* tree-ssa-copyrename.c
(copy_rename_partition_coalesce): Update.
* tree-ssa-math-opts.c (execute_cse_reciprocals): Update.
* tree-ssa-propagate.c (set_rhs): Update.
* tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
addressable_vars, global_var):Kill.
(set_initial_properties): Update.
(init_alias_info): Update.
(finalize_ref_all_pointers): Update.
(setup_pointers_and_addressables): Update.
(maybe_create_global_var): Update.
(create_global_var): Update.
(dump_points_to_info): Update.
* function.h (struct gimple_df): Forward declare.
(struct function): Add GIMPLE_DF field.
* gimplify.c (force_gimple_operand): Update.
* tree-dfa.c (referenced_vars, default_defs): KIll.
(make_rename_temp): Update.
(dump_variable): Update.
(referenced_var_lookup): Update.
(referenced_var_check_and_insert): Update.
(default_def): Rename to ...
(gimple_default_def): ... this one; accept cfun argument.
(set_default_def): Update.
* tree-cfgcleanup.c (modified_noreturn_calls): Kill.
(cleanup_control_flow): Update.
* tree-ssa-pre.c (compute_avail): Update
* tree-ssa-live.c (calculate_live_on_entry): Update.
* tree-ssa.c (verify_use): Update.
(verify_call_clobbering): Update.
(verify_call_clobbering): Update.
(init_tree_ssa): Update.
(delete_tree_ssa): Update.
* tree-outof-ssa.c (coalesce_ssa_name): Update.
(rewrite_out_of_ssa): Update.
* tree-flow.h (gimple_df): New structure collecting dataflow variables.
(FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New
private accessors.
(in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs,
ssa_names, global_var, nonlocal_all, call_clobbered_vars,
addressable_vars, aliases_computed_p): Kill.
(default_def): Rename to...
(gimple_default_def): ... this one.
(defaule_def_fn): Kill.
(num_referenced_vars, ssa_names, num_ssa_names): Update.
* tree-ssa-structalias.c (nonlocal_all): Kill.
(get_constraint_exp_from_ssa_var): Update.
(create_nonlocal_var): Update.
(get_constraint_for): Update.
(update_alias_info): Update.
(find_global_initializers): Update.
(intra_create_variable_infos): Update.
(intra_create_variable_infos):
(find_what_p_points_to): Update.
(init_alias_heapvars): Update.
* tree-cfg.c (remove_bb): Update.
(gimplify_val): Update.
* tree-ssa-reassoc.c (get_rank): Update.
(init_reassoc): Update.
* tree-ssanames.c: Do not include gt-tree-ssanames.h
(ssa_names, free_ssanames): Kill.
(init_ssanames): Update.
(make_ssa_name): Update.
(release_ssa_name): Update.
(release_defs): Update.
(replace_ssa_name_symbol): Update.
* tree-ssa-operands.c (access_can_touch_variable): Update.
(add_virtual_operand): Update.
(add_call_clobber_ops): Update.
(add_call_read_ops): Update.
(get_call_expr_operands): Update.
(get_asm_expr_operands): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119294 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
test for inclusion rather than as a test for exclusion.
* tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
the condition after calling fold_binary.
* fold-const.c (fold_inf_compare): Remove in_gimple_form check.
(fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
* builtins.c (fold_builtin_isascii): Likewise.
(fold_builtin_isdigit): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118593 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
needed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117134 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-opt/29059
* gcc.c-torture/compile/strcpy-1.c: New test.
* gcc.c-torture/compile/strcpy-2.c: New test.
* gcc.c-torture/compile/memcpy-1.c: New test.
* gcc.c-torture/compile/memcpy-2.c: New test.
2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/29059
* tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
away for the expr argument.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116997 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-optimization/26672
* tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
SSA form.
* gcc.dg/torture/pr26672.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112050 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
min limit. Use operand_equal_p rather than pointer equality
for testing if new min/max values are equal.
* tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
using range information until after propagation and folding.
* gcc.c-torture/execute/930529-1.x: Use -fwrapv as test depends
on wrapping on overflow semantics.
* gcc.dg/tree-ssa/pr23109.c: Remove the .lim file too.
* gcc.gc/tree-ssa/vrp23.c: New test.
* gcc.gc/tree-ssa/vrp24.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109904 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
VEC(basic_block,heap) *.
(cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
ssa_prop_fini): Adjust the uses of cfg_blocks.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109266 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
recompute_tree_invarant_for_addr_expr.
Update uses everywhere.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108316 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-opt/22484
* tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
after fold.
* tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
2005-07-25 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22484
* testsuite/g++.dg/opt/loop2.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102369 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-opt/22329
* gcc.dg/pr22329.c: New test.
2005-07-08 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22329
* tree-ssa-propagate.c (fold_predicate_in): Convert the value
to the correct type if we have a MODIFY_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101789 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(vrp_finalize): Remove call to simplify_using_ranges.
(simplify_stmt_using_ranges): New function extracted from
simplify_using_ranges.
(simplify_div_or_mod_using_ranges): Likewise.
(simplify_abs_using_ranges): Likewise.
(simplify_cond_using_ranges): New function.
* tree-flow.h (simplify_stmt_using_ranges): Prototype.
* tree-ssa-propagate.c (substitute_and_fold): Call
simplify_stmt_using_ranges if we have range information.
* gcc.dg/tree-ssa/vrp17.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101685 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101317 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
* fold-const.c (invert_tree_comparison): Make extern.
* tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
(struct value_range_def): Limewise.
(get_value_range): Remove.
(dump_value_range): Remove.
(dump_all_value_ranges): Remove.
(debug_all_value_ranges): Remove.
(vrp_evaluate_conditional): Declare.
* tree-ssa-propagate.c (struct prop_stats_d): Add field
num_pred_folded.
(substitute_and_fold): Add argument use_ranges_p.
Update all callers.
If use_ranges_p is true, call fold_predicate_in to fold
predicates using range information.
Ignore ASSERT_EXPRs.
Change debugging output to only show statements that have been
folded.
(replace_phi_args_in): Move debugging output code from
substitute and fold.
(fold_predicate_in): New local function.
* tree-ssa-propagate.h (enum value_range_type): Move from
tree-flow.h.
(struct value_range_d): Likewise.
Add field 'equiv'.
(value_range_t): Rename from value_range.
* tree-vrp.c (found_in_subgraph): Rename from found.
(get_opposite_operand): Remove.
(struct assert_locus_d): Declare.
(assert_locus_t): Declare.
(need_assert_for): Declare.
(asserts_for): Declare.
(blocks_visited): Declare.
(vr_value): Declare.
(set_value_range): Add argument 'equiv'.
Don't drop to VARYING ranges that cover all values in the
type.
Make deep copy of equivalence set 'equiv'.
(copy_value_range): New local function.
(set_value_range_to_undefined): New local function.
(compare_values): Return -2 if either value has overflowed.
(range_includes_zero_p): New local function.
(extract_range_from_assert): Flip the predicate code if the
name being asserted is on the RHS of the predicate.
Avoid creating unnecessary symbolic ranges if the comparison
includes another name with a known numeric range.
Update the equivalnce set of the new range when asserting
EQ_EXPR predicates.
(extract_range_from_ssa_name): Update the equivalence set of
the new range with VAR.
(extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
If -fwrapv is used, set the resulting range to VARYING if the
operation overflows. Otherwise, use TYPE_MIN_VALUE and
TYPE_MAX_VALUE to represent -INF and +INF.
Fix handling of *_DIV_EXPR.
(extract_range_from_unary_expr): Handle MINUS_EXPR and
ABS_EXPR properly by switching the range around if necessary.
(extract_range_from_comparison): New local function.
(extract_range_from_expr): Call it.
(adjust_range_with_scev): Do not adjust the range if using
wrapping arithmetic (-fwrapv).
(dump_value_range): Also show equivalence set.
Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
(build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
(infer_value_range): Change return value to bool.
Add arguments 'comp_code_p' and 'val_p'.
Do not attempt to infer ranges from statements that may throw.
Store the comparison code in comp_code_p.
Store the other operand to be used in the predicate in val_p.
(dump_asserts_for): New.
(debug_asserts_for): New.
(dump_all_asserts): New.
(debug_all_asserts): New.
(register_new_assert_for): New.
(register_edge_assert_for): New.
(find_conditional_asserts): New.
(find_assert_locations): New.
(process_assert_insertions_for): New.
(process_assert_insertions): New.
(insert_range_assertions): Initialize found_in_subgraph,
blocks_visited, need_assert_for and asserts_for.
Call find_assert_locations and process_assert_insertions.
(remove_range_assertions): Add more documentation.
(vrp_initialize): Change return type to void.
Do not try to guess if running VRP is worth it.
(compare_name_with_value): New.
(compare_names): New.
(vrp_evaluate_conditional): Add argument 'use_equiv_p'. If
use_equiv_p is true, call compare_names and
compare_name_with_value to compare all the ranges for every
name in the equivalence set of the predicate operands.
Update all callers.
(vrp_meet): Try harder not to derive a VARYING range.
If two values meet, the resulting equivalence set is the
intersection of the two equivalence sets.
(vrp_visit_phi_node): Call copy_value_range to get the current
range information of the LHS.
(vrp_finalize): Create a value vector representing all the
names that ended up with exactly one value in their range.
Call substitute_and_fold.
(execute_vrp): Document equivalence sets in ranges.
* tree.h (SSA_NAME_VALUE_RANGE): Remove.
(struct tree_ssa_name): Remove field value_range.
(invert_tree_comparison): Declare.
testsuite/ChangeLog
2005-06-01 Diego Novillo <dnovillo@redhat.com>
PR 14341, PR 21332, PR 20701, PR 21086, PR 21090
PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
* gcc.dg/tree-ssa/pr14341.c: New test.
* gcc.dg/tree-ssa/pr14841.c: New test.
* gcc.dg/tree-ssa/pr20701.c: New test.
* gcc.dg/tree-ssa/pr21086.c: New test.
* gcc.dg/tree-ssa/pr21090.c: New test.
* gcc.dg/tree-ssa/pr21332.c: New test.
* gcc.dg/tree-ssa/pr21458.c: New test.
* gcc.dg/tree-ssa/pr21658.c: New test.
* gcc.dg/tree-ssa/vrp01.c: New test.
* gcc.dg/tree-ssa/vrp02.c: New test.
* gcc.dg/tree-ssa/vrp03.c: New test.
* gcc.dg/tree-ssa/vrp04.c: New test.
* gcc.dg/tree-ssa/vrp05.c: New test.
* gcc.dg/tree-ssa/vrp06.c: New test.
* gcc.dg/tree-ssa/vrp07.c: New test.
* gcc.dg/tree-ssa/vrp08.c: New test.
* gcc.dg/tree-ssa/vrp09.c: New test.
* gcc.dg/tree-ssa/vrp10.c: New test.
* gcc.dg/tree-ssa/vrp11.c: New test.
* gcc.dg/tree-ssa/vrp12.c: New test.
* gcc.dg/tree-ssa/vrp13.c: New test.
2005-06-01 Alexandre Oliva <aoliva@redhat.com>
PR 21029
* gcc.dg/tree-ssa/pr21029.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100478 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
errors.h and include toplev.h if necessary.
* rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
errors.h otherwise include toplev.h.
* Makefile.in: Update dependencies.
ada:
* misc.c: Don't include errors.h.
fortran:
* fortran/trans-decl.c: Don't include errors.h.
* fortran/Make-lang.in: Updates dependencies.
java:
* java/verify-glue.c: Don't include errors.h and include toplev.h.
* java/Make-lang.in: Updates dependencies.
treelang:
* treelang/lex.l, treelang/parse.y: Don't include errors.h and
include toplev.h.
* treelang/Make-lang.in: Updates dependencies.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100420 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
recompute_tree_invariant_for_addr_expr here.
(optimize_stmt): Call it here instead and do so if anything
at all has changed in the statement and the RHS is an ADDR_EXPR.
* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
needed, call recompute_tree_invariant_for_addr_expr.
* tree-ssa-propagate.c (substitute_and_fold): Call
recompute_tree_invariant_for_addr_expr as needed.
* gcc.c-torture/compile/pr21638.c: New test.
* gcc.c-torture/compile/20050520-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100092 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
maybe_clean_eh_stmt; take old stmt parameter. Update EH
region data structure to match replacement.
* tree-flow.h: Update to match.
* tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
* tree-ssa-dom.c (optimize_stmt): Likewise.
* tree-ssa-pre.c (eliminate): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99801 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR middle-end/19807
PR tree-optimization/19639
* fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
and generic summands for char* as s * delta, too, folding &a[i]
CODE x to &a[i CODE x/s]. Use tree_int_cst_equal
for comparison of steps. Convert types for index addition.
(fold_binary): Adjust the callers to always dispatch to
try_move_mult_to_index.
* tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
expr with non-gimple ARRAY_REF offset.
* g++.dg/tree-ssa/pr19807.C: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99568 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lambda-code.c (gcc_loop_to_lambda_loop,
lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
generic operand interface.
* tree-data-ref.c (find_data_references_in_loop): Use generic interface.
* tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
generic operand interface.
* tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
num_imm_uses): Use ssa_use_operand_t.
(get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
get_v_must_def_ops): Delete.
(get_def_from_ptr, get_phi_result_ptr): Get def directly now.
(get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
get_v_must_def_kill_ptr): Delete.
(delink_stmt_imm_use): Move and use new operand interface.
(op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
op_iter_next_tree): Use new operand implementation.
(clear_and_done_ssa_iter): New. Initialize a blank operand iterator.
(op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
type check.
(op_iter_next_mustdef, op_iter_next_maydef,
op_iter_next_must_and_may_def): Delete. Replace with...
(op_iter_next_maymustdef): New. Combine must and may next operations.
(op_iter_init_maydef, op_iter_init_mustdef,
op_iter_init_must_and_may_def): Use new interface.
(single_ssa_tree_operand ): New. Process single operands only as trees.
(single_ssa_use_operand): New. Process single operands only as uses.
(single_ssa_def_operand): New. Process single operands only as defs.
(zero_ssa_operands): New. Return TRUE if there are zero operands of the
specified types.
(num_ssa_operands): New. Count the number of specified operands.
(compare_ssa_operands_equal): New. Compare two statements' operands.
(single_phi_def): New. Return true if PHI has one def of the specified
operand type.
(op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
(op_iter_init_phidef): New. Initialize the iterator for the PHI def.
* tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
(struct stmt_ann_d): Operands field no longer require GTY().
(vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
* tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
* tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
dump_replaceable_exprs, rewrite_trees): Use generic interface.
* tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
Use use_operand_p instead of ssa_imm_use_t *.
* tree-pretty-print.c (dump_vops): check if operands are active before
dumping virtual operands.
* tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
* tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
(ccp_fold): Use new interface.
(ccp_visit_stmt): Remove unused variables and code.
(convert_to_gimple_builtin): Insert statements before calling
mark_new_vars_to_rename.
* tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
(copy_prop_visit_cond_stmt): Use generic interface.
* tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
annotation in table.
(thread_across_edge): Use generic interface.
(initialize_hash_element): Initialzie with stmt, not annotation.
(eliminate_redundant_computations): Use generic interface.
(record_equivalences_from_stmt): Pass stmt, not annotation.
(avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
interface.
* tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
* tree-ssa-loop-ivopts.c (find_invariants_stmt,
find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
generic operand interface.
* tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
interface.
* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
Interface.
* tree-ssa-operands.c (struct opbuild_list_d): New. Operand build type.
(build_defs, build_uses, build_v_may_defs, build_vuses,
build_v_must_defs): Change type to struct opbuild_list_d.
(ops_active): New. Operands active boolean.
(operand_memory, operand_memory_index): New. Operand memory managers.
(allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
allocate_vuse_optype, allocate_v_must_def_optype): Delete.
(free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
Change from functions to static variable list heads.
(opbuild_initialize_virtual): New. Initialize a virtual build list.
(opbuild_initialize_real): New. Initialize a virtual build list.
(opbuild_free): New. Free a build list.
(opbuild_num_elems): New. Number of items in a list.
(opbuild_append_real): New. Add a real (tree *) operand.
(opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
(opbuild_first): New. Return first element index in a list.
(opbuild_next): New. Return next element in a list.
(opbuild_elem_real): New. Return real element.
(opbuild_elem_virtual): New. Return virtual element.
(opbuild_elem_uid): New. Return UID of virtual element.
(opbuild_clear): New. Reset an operand list.
(opbuild_remove_elem): New. Remove an element form a list.
(ssa_operands_active): New. Return true if operand cache is active.
(init_ssa_operands, fini_ssa_operands): Initialize new implementation.
(ssa_operand_alloc): New. Allocate memory from an operand chunk.
(correct_use_link): Use use_operand_p.
(finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
(cleanup_v_may_defs): Use new implmentation.
(finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
implementation.
(append_def, append_use, append_v_may_def, append_vuse,
append_v_must_def): Call opbuild_append routine instead of using varray.
(build_ssa_operands): Simplify to simply use stmt, don't maintain a
global parse_old_ops variable.
(free_ssa_operands): New implementation.
(update_stmt_operands): Move. Change argument to build_ssa_operands.
(copy_virtual_operands): Move. New generic implementation.
(create_ssa_artficial_load_stmt): Move. New implementation.
(swap_tree_operands): Update for new implementation.
(get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
(add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
rather than a varray.
(verify_imm_links): Use use_operand_p.
(dump_immediate_uses_for): If the immediate use variable is a virtual
variable, show the virtual ops in the stmt.
* tree-ssa-operands.h (def_operand_p): No longer a structure.
(NULL_DEF_OPERAND_P): Now a #define.
(def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
(def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
mustdef_optype_d): New. Use Linked list representation.
(SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
(struct ssa_operand_memory_d): New. Allocated Chunk node.
(struct stmt_operands_d): Change to new pointers that are not GTY.
(STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
SET_V_MUST_DEF_KILL): Delete.
(V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
(V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
(enum ssa_op_iter_type): Operand iterator typechecking values.
(struct ssa_operand_iterator_d): Use linked lists of operands.
(SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
(FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
(FOR_EACH_PHI_ARG): New. Iterate over PHI arguments.
(FOR_EACH_PHI_OR_STMT_USE): New. Iterate over PHI or stmt uses.
(FOR_EACH_PHI_OR_STMT_DEF): New. Iterate over PHI or stmt defs.
(SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
* tree-ssa-opfinalize.h: New. Function templates for expansion.
(FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
alloc_vuse, and alloc_mustdef.
(FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
and finalize_ssa_v_must_def_ops.
* tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
(create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
stmt around.
(compute_avail): Use generic iterator interface.
* tree-ssa-propagate.c (first_vdef): Use generic operand interface.
(stmt_makes_single_load, stmt_makes_single_store): Use
ZERO_SSA_OPERANDS.
* tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
(statement_sink_location): Use generic interface.
* tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
(delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
reset the immediate use link nodes.
(stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
* tree-ssanames.c (make_ssa_name): Use use_operand_p.
* tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
(eliminate_tail_call): Use generic operand interface.
* tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
(vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
interface.
* tree-vect-transform.c (update_vuses_to_preheader): Use generic
interface.
* tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
* tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
vuse_optype.
(vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
Use statement pointer instead of vuse_optype. Use generic interface.
* tree-vrp.c (maybe_add_assert_expr): Use generic interface.
(stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
* tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
(tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
* doc/tree-ssa.texi: Update documentation for operand interface.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99155 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* tree-ssa-propagate.c (set_rhs): Revert last change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98882 138bc75d-0d04-0410-961f-82ee72b054a4
|