This is the mail archive of the
mailing list for the glibc project.
math/test-tgmath3 test case size...
- From: DJ Delorie <dj at redhat dot com>
- To: libc-alpha at sourceware dot org
- Date: Fri, 16 Feb 2018 14:06:42 -0500
- Subject: math/test-tgmath3 test case size...
- Authentication-results: sourceware.org; auth=none
In running the glibc testsuite on riscv, I discovered that one math
test (test-tgmath3) is, well, HUGE. The generated .c file is 10 Mb.
This takes HOURS to compile on riscv, partly because of the huge, and
partly because on some targets where linker relaxation is the default,
link time can be O(size^2).
Even on my 4 GHz x86-64 just compiling the .o takes 50 seconds.
Can this test case be split up somehow? Even just randomly spreading
it across a few files would be a huge benefit to test time. Given the
number of tests in math/, "few" could mean "dozens"[*] and still be
Splitting it up allows for multi-threaded tests to spread the load
across build threads too, but in this case, even a single-threaded
build would benefit.
Also, if there's some way of scheduling that test *first*, at least it
could run in parallel with other tests, limiting the time at the end
when it's the only thing left running. I.e. schedule longer tests
before shorter ones, so make can pack job slots more effectively.
(stdio-common/tst-printf-bz18872 suffers from this also, for slightly
different reasons, takes 9 sec on x86 and hours on riscv)
[*] Ideally it would mean "at least as many parts as the typical
developer has cores to spread it across" ;-)