On Mon, Nov 17, 2014 at 10:38 AM, Jan Hubicka <hubi...@ucw.cz> wrote: > Hi, > this patch makes us to store default optimization node same way as we stream > target node. This means that command line options given at compile time > prevail those given at linktime. Previously we sort of combined both. > > We still have a lot of flags that are global (i.e. not marked as Optimization) > but affect way how the unit is output. Since I woul dlike to replace the old > option merging, I would like to add "Global" attribute to each of them in .opt > file and generate streaming code for them same way as we do for > optimization/target nodes. > > This patch regtested/bootstrapped x86_64-linux and in ealrier tree also > ppc64-linux/ppc64-aix that do not work for me at the moment. > I alosuse it in my tree for some time and tested firefox/libreoffice builds > > OK? > Honza > > * tree.c (free_lang_data_in_decl): Store default optimization node. > Index: tree.c > =================================================================== > --- tree.c (revision 217659) > +++ tree.c (working copy) > @@ -5118,6 +5118,9 @@ free_lang_data_in_decl (tree decl) > if (!DECL_FUNCTION_SPECIFIC_TARGET (decl)) > DECL_FUNCTION_SPECIFIC_TARGET (decl) > = target_option_default_node; > + if (!DECL_FUNCTION_SPECIFIC_OPTIMIZATION (decl)) > + DECL_FUNCTION_SPECIFIC_OPTIMIZATION (decl) > + = optimization_default_node; > } > > /* DECL_SAVED_TREE holds the GENERIC representation for DECL.
I think one of your LTO streaming change breaks GCC LTO build: https://gcc.gnu.org/ml/gcc-regression/2014-11/msg00473.html /export/gnu/import/git/gcc-test-profiled/bld/./prev-gcc/xg++ -B/export/gnu/import/git/gcc-test-profiled/bld/./prev-gcc/ -B/usr/5.0.0/x86_64-unknown-linux-gnu/bin/ -nostdinc++ -B/export/gnu/import/git/gcc-test-profiled/bld/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -B/export/gnu/import/git/gcc-test-profiled/bld/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -I/export/gnu/import/git/gcc-test-profiled/bld/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/gnu/import/git/gcc-test-profiled/bld/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include -I/export/gnu/import/git/gcc-test-profiled/src-trunk/libstdc++-v3/libsupc++ -L/export/gnu/import/git/gcc-test-profiled/bld/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -L/export/gnu/import/git/gcc-test-profiled/bld/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -g -O2 -flto=jobserver -frandom-seed=1 -fprofile-use -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -DGENERATOR_FILE -static-libstdc++ -static-libgcc -o build/genmatch \ build/genmatch.o ../libcpp/libcpp.a ../libiberty/libiberty.a build/errors.o build/vec.o build/hash-table.o .././libiberty/libiberty.a ../../src-trunk/libcpp/lex.c: In function âend_directiveâ: ../../src-trunk/libcpp/lex.c:442:43: error: â__builtin_ia32_pcmpestri128â needs isa option -m32 -msse4.2 index = __builtin_ia32_pcmpestri128 (search, 4, sv, 16, 0); ^ make[7]: *** [/tmp/ccTC6Hk9.ltrans9.ltrans.o] Error 1 -- H.J.