summaryrefslogtreecommitdiff
path: root/gcc/plugin.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-30 14:23:29 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-30 14:23:29 +0000
commit92b17925e053f1044328100acee8e6ddca553d05 (patch)
tree56dda32931a24ed4b4924be0c66a5f961af318ec /gcc/plugin.c
parent833adb8d7a201ed21bff6fa9d2f9ed95c105dbc3 (diff)
downloadgcc-92b17925e053f1044328100acee8e6ddca553d05.tar.gz
2009-09-30 Basile Starynkevitch <basile@starynkevitch.net>
[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
Diffstat (limited to 'gcc/plugin.c')
-rw-r--r--gcc/plugin.c195
1 files changed, 7 insertions, 188 deletions
diff --git a/gcc/plugin.c b/gcc/plugin.c
index 906068387b7..414d5783fa5 100644
--- a/gcc/plugin.c
+++ b/gcc/plugin.c
@@ -57,6 +57,7 @@ const char *plugin_event_name[] =
"PLUGIN_GGC_MARKING",
"PLUGIN_GGC_END",
"PLUGIN_REGISTER_GGC_ROOTS",
+ "PLUGIN_REGISTER_GGC_CACHES",
"PLUGIN_START_UNIT",
"PLUGIN_EVENT_LAST"
};
@@ -77,20 +78,6 @@ struct callback_info
/* An array of lists of 'callback_info' objects indexed by the event id. */
static struct callback_info *plugin_callbacks[PLUGIN_EVENT_LAST] = { NULL };
-/* List node for an inserted pass instance. We need to keep track of all
- the newly-added pass instances (with 'added_pass_nodes' defined below)
- so that we can register their dump files after pass-positioning is finished.
- Registering dumping files needs to be post-processed or the
- static_pass_number of the opt_pass object would be modified and mess up
- the dump file names of future pass instances to be added. */
-struct pass_list_node
-{
- struct opt_pass *pass;
- struct pass_list_node *next;
-};
-
-static struct pass_list_node *added_pass_nodes = NULL;
-static struct pass_list_node *prev_added_pass_node;
#ifdef ENABLE_PLUGIN
/* Each plugin should define an initialization function with exactly
@@ -286,179 +273,6 @@ parse_plugin_arg_opt (const char *arg)
XDELETEVEC (name);
}
-
-/* Insert the plugin pass at the proper position. Return true if the pass
- is successfully added.
-
- PLUGIN_PASS_INFO - new pass to be inserted
- PASS_LIST - root of the pass list to insert the new pass to */
-
-static bool
-position_pass (struct plugin_pass *plugin_pass_info,
- struct opt_pass **pass_list)
-{
- struct opt_pass *pass = *pass_list, *prev_pass = NULL;
- bool success = false;
-
- for ( ; pass; prev_pass = pass, pass = pass->next)
- {
- /* Check if the current pass is of the same type as the new pass and
- matches the name and the instance number of the reference pass. */
- if (pass->type == plugin_pass_info->pass->type
- && pass->name
- && !strcmp (pass->name, plugin_pass_info->reference_pass_name)
- && ((plugin_pass_info->ref_pass_instance_number == 0)
- || (plugin_pass_info->ref_pass_instance_number ==
- pass->static_pass_number)
- || (plugin_pass_info->ref_pass_instance_number == 1
- && pass->todo_flags_start & TODO_mark_first_instance)))
- {
- struct opt_pass *new_pass = plugin_pass_info->pass;
- struct pass_list_node *new_pass_node;
-
- /* The following code (if-statement) is adopted from next_pass_1. */
- if (new_pass->static_pass_number)
- {
- new_pass = XNEW (struct opt_pass);
- memcpy (new_pass, plugin_pass_info->pass, sizeof (*new_pass));
- new_pass->next = NULL;
-
- new_pass->todo_flags_start &= ~TODO_mark_first_instance;
-
- plugin_pass_info->pass->static_pass_number -= 1;
- new_pass->static_pass_number =
- -plugin_pass_info->pass->static_pass_number;
- }
- else
- {
- new_pass->todo_flags_start |= TODO_mark_first_instance;
- new_pass->static_pass_number = -1;
- }
-
- /* Insert the new pass instance based on the positioning op. */
- switch (plugin_pass_info->pos_op)
- {
- case PASS_POS_INSERT_AFTER:
- new_pass->next = pass->next;
- pass->next = new_pass;
-
- /* Skip newly inserted pass to avoid repeated
- insertions in the case where the new pass and the
- existing one have the same name. */
- pass = new_pass;
- break;
- case PASS_POS_INSERT_BEFORE:
- new_pass->next = pass;
- if (prev_pass)
- prev_pass->next = new_pass;
- else
- *pass_list = new_pass;
- break;
- case PASS_POS_REPLACE:
- new_pass->next = pass->next;
- if (prev_pass)
- prev_pass->next = new_pass;
- else
- *pass_list = new_pass;
- new_pass->sub = pass->sub;
- new_pass->tv_id = pass->tv_id;
- pass = new_pass;
- break;
- default:
- error ("Invalid pass positioning operation");
- return false;
- }
-
- /* Save the newly added pass (instance) in the added_pass_nodes
- list so that we can register its dump file later. Note that
- we cannot register the dump file now because doing so will modify
- the static_pass_number of the opt_pass object and therefore
- mess up the dump file name of future instances. */
- new_pass_node = XCNEW (struct pass_list_node);
- new_pass_node->pass = new_pass;
- if (!added_pass_nodes)
- added_pass_nodes = new_pass_node;
- else
- prev_added_pass_node->next = new_pass_node;
- prev_added_pass_node = new_pass_node;
-
- success = true;
- }
-
- if (pass->sub && position_pass (plugin_pass_info, &pass->sub))
- success = true;
- }
-
- return success;
-}
-
-
-/* Hook into the pass lists (trees) a new pass registered by a plugin.
-
- PLUGIN_NAME - display name for the plugin
- PASS_INFO - plugin pass information that specifies the opt_pass object,
- reference pass, instance number, and how to position
- the pass */
-
-static void
-register_pass (const char *plugin_name, struct plugin_pass *pass_info)
-{
- if (!pass_info->pass)
- {
- error ("No pass specified when registering a new pass in plugin %s",
- plugin_name);
- return;
- }
-
- if (!pass_info->reference_pass_name)
- {
- error ("No reference pass specified for positioning the pass "
- " from plugin %s", plugin_name);
- return;
- }
-
- /* Try to insert the new pass to the pass lists. We need to check all
- three lists as the reference pass could be in one (or all) of them. */
- if (!position_pass (pass_info, &all_lowering_passes)
- && !position_pass (pass_info, &all_ipa_passes)
- && !position_pass (pass_info, &all_passes))
- error ("Failed to position pass %s registered by plugin %s. "
- "Cannot find the (specified instance of) reference pass %s",
- pass_info->pass->name, plugin_name, pass_info->reference_pass_name);
- else
- {
- /* OK, we have successfully inserted the new pass. We need to register
- the dump files for the newly added pass and its duplicates (if any).
- Because the registration of plugin passes happens after the
- command-line options are parsed, the options that specify single
- pass dumping (e.g. -fdump-tree-PASSNAME) cannot be used for new
- plugin passes. Therefore we currently can only enable dumping of
- new plugin passes when the 'dump-all' flags (e.g. -fdump-tree-all)
- are specified. While doing so, we also delete the pass_list_node
- objects created during pass positioning. */
- while (added_pass_nodes)
- {
- struct pass_list_node *next_node = added_pass_nodes->next;
- enum tree_dump_index tdi;
- register_one_dump_file (added_pass_nodes->pass);
- if (added_pass_nodes->pass->type == SIMPLE_IPA_PASS
- || added_pass_nodes->pass->type == IPA_PASS)
- tdi = TDI_ipa_all;
- else if (added_pass_nodes->pass->type == GIMPLE_PASS)
- tdi = TDI_tree_all;
- else
- tdi = TDI_rtl_all;
- /* Check if dump-all flag is specified. */
- if (get_dump_file_info (tdi)->state)
- get_dump_file_info (added_pass_nodes->pass->static_pass_number)
- ->state = get_dump_file_info (tdi)->state;
- XDELETE (added_pass_nodes);
- added_pass_nodes = next_node;
- }
- }
-}
-
-
/* Register additional plugin information. NAME is the name passed to
plugin_init. INFO is the information that should be registered. */
@@ -489,7 +303,7 @@ register_callback (const char *plugin_name,
{
case PLUGIN_PASS_MANAGER_SETUP:
gcc_assert (!callback);
- register_pass (plugin_name, (struct plugin_pass *) user_data);
+ register_pass ((struct register_pass_info *) user_data);
break;
case PLUGIN_INFO:
gcc_assert (!callback);
@@ -499,6 +313,10 @@ register_callback (const char *plugin_name,
gcc_assert (!callback);
ggc_register_root_tab ((const struct ggc_root_tab*) user_data);
break;
+ case PLUGIN_REGISTER_GGC_CACHES:
+ gcc_assert (!callback);
+ ggc_register_cache_tab ((const struct ggc_cache_tab*) user_data);
+ break;
case PLUGIN_FINISH_TYPE:
case PLUGIN_START_UNIT:
case PLUGIN_FINISH_UNIT:
@@ -566,6 +384,7 @@ invoke_plugin_callbacks (enum plugin_event event, void *gcc_data)
case PLUGIN_PASS_MANAGER_SETUP:
case PLUGIN_EVENT_LAST:
case PLUGIN_REGISTER_GGC_ROOTS:
+ case PLUGIN_REGISTER_GGC_CACHES:
default:
gcc_assert (false);
}