Message ID | mptldygcrnn.fsf@arm.com |
---|---|
State | New |
Headers | show |
Series | testsuite: Skip pr112305.c for -O[01] on simulators | expand |
On Tue, Oct 22, 2024 at 1:19 PM Richard Sandiford <richard.sandiford@arm.com> wrote: > > gcc.dg/torture/pr112305.c contains an inner loop that executes > 0x8000_0014 times and an outer loop that executes 5 times, giving about > 10 billion total executions of the inner loop body. At -O2 and above we > are able to remove the inner loop, but at -O1 we keep a no-op loop: > > dls lr, r3 > .L3: > subs r3, r3, #1 > le lr, .L3 > > and at -O0 we of course don't optimise. > > This can lead to long execution times on simulators, possibly > triggering a timeout. Ouch. > --- > > Tested on arm-eabi, where the problem was originally seen, and where we > now skip as expected. Also tested on native aarch64-linux-gnu, where we > continue to execute all variations. OK for trunk and backports (so far > to GCC 14)? OK. Thanks, Richard. > Richard > > > gcc/testsuite > * gcc.dg/torture/pr112305.c: Skip at -O0 and -O1 for simulators. > --- > gcc/testsuite/gcc.dg/torture/pr112305.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/gcc/testsuite/gcc.dg/torture/pr112305.c b/gcc/testsuite/gcc.dg/torture/pr112305.c > index 9d363aaac9d..ea6e044529d 100644 > --- a/gcc/testsuite/gcc.dg/torture/pr112305.c > +++ b/gcc/testsuite/gcc.dg/torture/pr112305.c > @@ -1,5 +1,6 @@ > /* { dg-do run } */ > /* { dg-require-effective-target int32plus } */ > +/* { dg-skip-if "long-running loop" { simulator } { "-O0" "-O1" } } */ > > int a; > void b() > -- > 2.25.1 >
diff --git a/gcc/testsuite/gcc.dg/torture/pr112305.c b/gcc/testsuite/gcc.dg/torture/pr112305.c index 9d363aaac9d..ea6e044529d 100644 --- a/gcc/testsuite/gcc.dg/torture/pr112305.c +++ b/gcc/testsuite/gcc.dg/torture/pr112305.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-require-effective-target int32plus } */ +/* { dg-skip-if "long-running loop" { simulator } { "-O0" "-O1" } } */ int a; void b()