Message ID | 20141112143443.GB35267@msticlxl57.ims.intel.com |
---|---|
State | New |
Headers | show |
On Wed, 12 Nov 2014, Kirill Yukhin wrote: > On 12 Nov 15:09, Richard Biener wrote: > > On Wed, 12 Nov 2014, Kirill Yukhin wrote: > > > > > Hello Richard, > > > On 12 Nov 10:23, Richard Biener wrote: > > > > On Wed, 5 Nov 2014, Ilya Verbin wrote: > > > > Yes please. > > > > > > > > Please make sure that regular LTO bootstrap still works - LTO is > > > > only tested lightly in the testsuite. > > > > > > Current main trunk fails to bootstrap w/ `bootstrap-lto': > > > git/gcc/configure --enable-languages=c,c++ --with-build-config=bootstrap-lto --with-fpmath=sse > > > > > > /export/users/kyukhin/gcc/build/build-x86_64-linux/./prev-gcc/xg++ -B/export/users/kyukhin/gcc/build/build-x86_64-linux/./prev-gcc/ -B/usr/local/x86_64-unknown-linux-gnu/bin/ -nostdinc++ -B/export/users/kyukhin/gcc/build/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -B/export/users/kyukhin/gcc/build/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -I/export/users/kyukhin/gcc/build/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/users/kyukhin/gcc/build/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include -I/export/users/kyukhin/gcc/git/gcc/libstdc++-v3/libsupc++ -L/export/users/kyukhin/gcc/build/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -L/export/users/kyukhin/gcc/build/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -g -O2 -flto=jobserver -frandom-seed=1 -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 -Werror -fno-common -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc -o cc1 c/c-lang.o c-family/stub-objc.o attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o c/c-convert.o c/c-aux-info.o c/c-objc-common.o c/c-parser.o c/c-array-notation.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o c-family/c-cilkplus.o c-family/array-notation-common.o c-family/cilk.o c-family/c-ubsan.o i386-c.o glibc-c.o \ > > > cc1-checksum.o libbackend.a main.o tree-browser.o libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -lmpc -lmpfr -lgmp -rdynamic -ldl -L../zlib -lz > > > /export/users/kyukhin/gcc/git/gcc/gcc/gcse.c:447:0: error: type ‘struct bb_data’ violates one definition rule [-Werror=odr] > > > struct bb_data > > > ^ > > > /export/users/kyukhin/gcc/git/gcc/gcc/lra-lives.c:395:0: note: a different type is defined in another translation unit > > > struct bb_data > > > ^ > > > /export/users/kyukhin/gcc/git/gcc/gcc/gcse.c:451:0: note: the first difference of corresponding definitions is field ‘max_reg_pressure’ > > > int max_reg_pressure[N_REG_CLASSES]; > > > ^ > > > /export/users/kyukhin/gcc/git/gcc/gcc/lra-lives.c:398:0: note: a field with different name is defined in another translation unit > > > basic_block bb; > > > ^ > > > lto1: all warnings being treated as errors > > > lto-wrapper: fatal error: /export/users/kyukhin/gcc/build/build-x86_64-linux/./prev-gcc/xg++ returned 1 exit status > > > compilation terminated. > > > /usr/bin/ld: lto-wrapper failed > > > collect2: error: ld returned 1 exit status > > > make[3]: *** [cc1] Error 1 > > > > > > Is it known issue? > > > (or we are doing something wrong...) > > > > Seems like Vlad introduced the conflicting type with > Okay, we're going to test our changes with patch in the bottom applied > both to kyukhin/gomp4-offload and trunk. > > * gcc/lra-lives.c (struct bb_data): Rename to ... > (struct bb_data_pseudos): ... this. > (initiate_live_solver): Update struct name. > > Is it ok if lto-bootstrap pass? Ok. Thanks, Richard. > -- > Thanks, K > > diff --git a/gcc/lra-lives.c b/gcc/lra-lives.c > index 03def82..2c54ca70 100644 > --- a/gcc/lra-lives.c > +++ b/gcc/lra-lives.c > @@ -392,7 +392,7 @@ mark_regno_dead (int regno, machine_mode mode, int point, bool local_sets_p) > > /* Structure describing local BB data used for pseudo > live-analysis. */ > -struct bb_data > +struct bb_data_pseudos > { > /* Basic block about which the below data are. */ > basic_block bb; > @@ -401,7 +401,7 @@ struct bb_data > }; > > /* Array for all BB data. Indexed by the corresponding BB index. */ > -typedef struct bb_data *bb_data_t; > +typedef struct bb_data_pseudos *bb_data_t; > > /* All basic block data are referred through the following array. */ > static bb_data_t bb_data; > @@ -481,7 +481,7 @@ initiate_live_solver (void) > bitmap_initialize (&temp_bitmap, ®_obstack); > bitmap_initialize (&all_hard_regs_bitmap, ®_obstack); > bitmap_set_range (&all_hard_regs_bitmap, 0, FIRST_PSEUDO_REGISTER); > - bb_data = XNEWVEC (struct bb_data, last_basic_block_for_fn (cfun)); > + bb_data = XNEWVEC (struct bb_data_pseudos, last_basic_block_for_fn (cfun)); > bitmap_initialize (&all_blocks, ®_obstack); > > basic_block bb; > >
On 12 Nov 15:34, Richard Biener wrote: > > > Seems like Vlad introduced the conflicting type with > > Okay, we're going to test our changes with patch in the bottom applied > > both to kyukhin/gomp4-offload and trunk. > > > > * gcc/lra-lives.c (struct bb_data): Rename to ... > > (struct bb_data_pseudos): ... this. > > (initiate_live_solver): Update struct name. > > > > Is it ok if lto-bootstrap pass? > > Ok. With this patch lto-bootstrap reached comparison stage and failed: Comparing stages 2 and 3 Bootstrap comparison failure! gcc/tree-sra.o differs make[3]: *** [compare] Error 1 In objdump I see the difference only in .gnu.lto_.decls.1 section. And this error occurs both on trunk and with our patches applied, so looks like everything is ok? Thanks, -- Ilya
On Wed, 12 Nov 2014, Ilya Verbin wrote: > On 12 Nov 15:34, Richard Biener wrote: > > > > Seems like Vlad introduced the conflicting type with > > > Okay, we're going to test our changes with patch in the bottom applied > > > both to kyukhin/gomp4-offload and trunk. > > > > > > * gcc/lra-lives.c (struct bb_data): Rename to ... > > > (struct bb_data_pseudos): ... this. > > > (initiate_live_solver): Update struct name. > > > > > > Is it ok if lto-bootstrap pass? > > > > Ok. > > With this patch lto-bootstrap reached comparison stage and failed: > > Comparing stages 2 and 3 > Bootstrap comparison failure! > gcc/tree-sra.o differs > make[3]: *** [compare] Error 1 > > In objdump I see the difference only in .gnu.lto_.decls.1 section. > And this error occurs both on trunk and with our patches applied, so looks like > everything is ok? Yeah, I think the above is already reported as -fcompare-debug fail. Thanks, Richard.
diff --git a/gcc/lra-lives.c b/gcc/lra-lives.c index 03def82..2c54ca70 100644 --- a/gcc/lra-lives.c +++ b/gcc/lra-lives.c @@ -392,7 +392,7 @@ mark_regno_dead (int regno, machine_mode mode, int point, bool local_sets_p) /* Structure describing local BB data used for pseudo live-analysis. */ -struct bb_data +struct bb_data_pseudos { /* Basic block about which the below data are. */ basic_block bb; @@ -401,7 +401,7 @@ struct bb_data }; /* Array for all BB data. Indexed by the corresponding BB index. */ -typedef struct bb_data *bb_data_t; +typedef struct bb_data_pseudos *bb_data_t; /* All basic block data are referred through the following array. */ static bb_data_t bb_data; @@ -481,7 +481,7 @@ initiate_live_solver (void) bitmap_initialize (&temp_bitmap, ®_obstack); bitmap_initialize (&all_hard_regs_bitmap, ®_obstack); bitmap_set_range (&all_hard_regs_bitmap, 0, FIRST_PSEUDO_REGISTER); - bb_data = XNEWVEC (struct bb_data, last_basic_block_for_fn (cfun)); + bb_data = XNEWVEC (struct bb_data_pseudos, last_basic_block_for_fn (cfun)); bitmap_initialize (&all_blocks, ®_obstack); basic_block bb;