GCC build failure, HEAD@191051 on native
GCC regression tester
regress@geoffk.org
Fri Sep 7 03:07:00 GMT 2012
With your recent patch, GCC HEAD revision 191051 had problems on:
native: build (about the same as the previous build)
Attached is build output for those targets.
The previous build was of revision 191050.
Log information for changes since the last build:
------------------------------------------------------------------------
r191051 | ak | 2012-09-06 19:56:17 -0700 (Thu, 06 Sep 2012) | 30 lines
Changed paths:
M /trunk/gcc/ChangeLog
M /trunk/gcc/lto/lto.c
M /trunk/gcc/lto-streamer.h
Reduce memory usage for storing LTO decl resolutions
With a LTO build of a large project (>11k subfiles incrementially linked)
storing the LTO resolutions took over 0.5GB memory:
lto/lto.c:1087 (lto_resolution_read) 0: 0.0% 540398500 15903: 0.0%
The reason is that the declaration indexes are quite sparse, but every subfile
got a full continuous vector for them. Since there are so many of them the
many vectors add up.
This patch instead stores the resolutions initially in a compact (index, resolution)
format. This is only expanded into a sparse vector for fast lookup when
the subfile is actually read, but then immediately freed. This means only one
vector is allocated at a time.
This brings the overhead for this down to less than 3MB for the test case:
lto/lto.c:1087 (lto_resolution_read) 0: 0.0% 2821456 42186: 0.0%
gcc/:
2012-09-06 Andi Kleen <ak@linux.intel.com>
* gcc/lto-streamer.h (res_pair): Add.
(lto_file_decl_data): Replace resolutions with respairs.
Add max_index.
* gcc/lto/lto.c (lto_resolution_read): Remove max_index. Add rp.
Initialize respairs.
(lto_file_finalize): Set up resolutions vector lazily from respairs.
------------------------------------------------------------------------
For more information, see <http://glutton.geoffk.org/HEAD/>.
-------------- next part --------------
/bin/sh ../../libtool --tag CXX --tag disable-shared --mode=compile /home/regress/tbox/native/build/./gcc/xgcc -shared-libgcc -B/home/regress/tbox/native/build/./gcc -nostdinc++ -L/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/src -L/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/home/regress/tbox/objs/i686-pc-linux-gnu/bin/ -B/home/regress/tbox/objs/i686-pc-linux-gnu/lib/ -isystem /home/regress/tbox/objs/i686-pc-linux-gnu/include -isystem /home/regress/tbox/objs/i686-pc-linux-gnu/sys-include -I/home/regress/tbox/svn-gcc/libstdc++-v3/../libgcc -I/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/include -I/home/regress/tbox/svn-gcc/libstdc++-v3/libsupc++ -std=gnu++11 -prefer-pic -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -fr!
andom-seed=fstream-inst.lo -g -O2 -D_GNU_SOURCE -c -o fstream-inst.lo /home/regress/tbox/svn-gcc/libstdc++-v3/src/c++11/fstream-inst.cc
libtool: compile: /home/regress/tbox/native/build/./gcc/xgcc -shared-libgcc -B/home/regress/tbox/native/build/./gcc -nostdinc++ -L/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/src -L/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/home/regress/tbox/objs/i686-pc-linux-gnu/bin/ -B/home/regress/tbox/objs/i686-pc-linux-gnu/lib/ -isystem /home/regress/tbox/objs/i686-pc-linux-gnu/include -isystem /home/regress/tbox/objs/i686-pc-linux-gnu/sys-include -I/home/regress/tbox/svn-gcc/libstdc++-v3/../libgcc -I/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/include -I/home/regress/tbox/svn-gcc/libstdc++-v3/libsupc++ -std=gnu++11 -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=fstream-inst.lo -g -O2 -D_GNU_SOURCE -c /home/regress/tbox/s!
vn-gcc/libstdc++-v3/src/c++11/fstream-inst.cc -fPIC -DPIC -o fstream-inst.o
/tmp/cclD5azm.s: Assembler messages:
/tmp/cclD5azm.s:44: Error: no such instruction: `rdrand %eax'
make[6]: *** [random.lo] Error 1
make[6]: *** Waiting for unfinished jobs....
make[6]: Leaving directory `/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/src/c++11'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3/src'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/regress/tbox/native/build/i686-pc-linux-gnu/libstdc++-v3'
make[2]: *** [all-stage1-target-libstdc++-v3] Error 2
make[2]: Leaving directory `/home/regress/tbox/native/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/regress/tbox/native/build'
make: *** [bootstrap] Error 2
+ '[' -s .bad_compare ']'
+ exit 1
-------------- next part --------------
--
Geoffrey Keating <geoffk@geoffk.org>
(via an automated GCC regression-testing script.)
More information about the Gcc-regression
mailing list