On Tue, 2 Jan 2024, 17:49 Patrick Palka, <ppa...@redhat.com> wrote: > Tested on x86_64-pc-linux-gnu, does this look OK for trunk and release > branches (r14-205 was backported everywhere)? >
Yes, thanks. > -- >8 -- > > The adjustment to max_size_type.cc in r14-205-g83470a5cd4c3d2 > inadvertently increased the execution time of the test by over 5x due to > enabling the two main loops to actually run in the signed_p case instead > of being dead code. This suggests that the current range of the loop is > far too big and the test too time consuming, especially when run on > simulators. > > So this patch cuts the loop range by 10x as proposed in the PR. This > shouldn't significantly weaken the test since the same important edge > cases are still checked in the new range. On my x86_64 machine this > reduces the test execution time by 10x, and 1.6x less time than before > r14-205. > > PR testsuite/113175 > > libstdc++-v3/ChangeLog: > > * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce > 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly. > (test03): Likewise. > --- > libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc > b/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc > index a1fbc3241dc..27f25c758fe 100644 > --- a/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc > +++ b/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc > @@ -199,8 +199,8 @@ test02() > using max_type = std::conditional_t<signed_p, max_diff_t, max_size_t>; > using shorten_type = std::conditional_t<shorten_p, hw_type, max_type>; > const int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__; > - const int limit = 1000; > - const int log2_limit = 10; > + const unsigned limit = 100; > + const int log2_limit = 7; > static_assert((1 << log2_limit) >= limit); > const int min = (signed_p ? -limit : 0); > const int max = limit; > @@ -257,8 +257,8 @@ test03() > using max_type = std::conditional_t<signed_p, max_diff_t, max_size_t>; > using base_type = std::conditional_t<toggle_base_p, hw_type, max_type>; > constexpr int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__; > - constexpr int limit = 1000; > - constexpr int log2_limit = 10; > + constexpr unsigned limit = 100; > + constexpr int log2_limit = 7; > static_assert((1 << log2_limit) >= limit); > const int min = (signed_p ? -limit : 0); > const int max = limit; > -- > 2.43.0.232.ge79552d197 > >