testsuite: Reduce gcc.dg/torture/inline-mem-cpy-1.c by 11 for simulators
commit6eca0d23b7ea84f1d41057bcc9f71d8e0d2d2fe3
authorHans-Peter Nilsson <hp@bitrange.com>
Wed, 17 Jan 2024 17:02:34 +0000 (17 18:02 +0100)
committerHans-Peter Nilsson <hp@bitrange.com>
Wed, 17 Jan 2024 17:02:34 +0000 (17 18:02 +0100)
tree725c67629fbdd9375549108ee64681cf23fa046c
parentb00be6f1576993369522c16dba992bec9adab9b2
testsuite: Reduce gcc.dg/torture/inline-mem-cpy-1.c by 11 for simulators

The test inline-mem-cpy-1.c takes 16 minutes at -O0 for the mmix
simulator on a 3.5 year old laptop and thus always times out, despite
the x 2 timeout (i.e. 10 minutes), and times out at all optimization
levels.  For the included file (when run as gcc.dg/memcmp-1.c), the
execution time on the same host is 9 minutes 54 seconds, so just
within 10 minutes timeout limit.  Seems pragmatically best to reduce
the torture-test by a factor of about 10, but there's no obvious small
set of entities to scale down to get the intended effect, and
splitting up the test into several tests seem a bit too intrusive.

Instead, introduce pseudo-random machinery to skip all but each
RUN_FRACTION:th iteration, defaulting to no change when RUN_FRACTION
isn't defined.  Use 11 for RUN_FRACTION, assuming this prime will lead
to even distribution within nested iterations with loops looking like
(0, 1) : (0, 1).  Do this only for the main loop in
test_driver_memcmp; the "outermost" two levels of iterations.

With this, execution time for -O0 as above is down to 1 minute 32
seconds.

* gcc.dg/torture/inline-mem-cpy-1.c: Pass -DRUN_FRACTION=11
when testing in a simulator.
* gcc.dg/memcmp-1.c [RUN_FRACTION]: Add machinery to run only
for each RUN_FRACTION:th iteration.
(main): Call initialize_skip_iteration_count.
(test_driver_memcmp): Check SKIP_ITERATION for each iteration.
gcc/testsuite/gcc.dg/memcmp-1.c
gcc/testsuite/gcc.dg/torture/inline-mem-cpy-1.c