This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

math/test-tgmath3 test case size...


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
reasonable :-)

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" ;-)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]