This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Stream out default optimization nodes
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Richard Guenther <rguenther at suse dot de>
- Date: Tue, 18 Nov 2014 07:59:36 -0800
- Subject: Re: Stream out default optimization nodes
- Authentication-results: sourceware.org; auth=none
- References: <20141117183824 dot GA5137 at kam dot mff dot cuni dot cz>
On Mon, Nov 17, 2014 at 10:38 AM, Jan Hubicka <hubicka@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.