Revert "[nvptx, libgomp] Update pr85381-{2,4}.c test-cases" [PR89713, PR94392]
authorThomas Schwinge <thomas@codesourcery.com>
Fri, 3 Apr 2020 08:08:59 +0000 (10:08 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Fri, 3 Apr 2020 08:10:07 +0000 (10:10 +0200)
In response to PR94392 commit 75efe9cb1f8938a713ce540dc3b27bc2afcd3fae
"c/94392 - only enable -ffinite-loops for C++", this reverts PR89713
commit 00908992f2a78f213d227aea8dbab014a1361df0, as apparently now again
"empty oacc loops are" no longer "removed before expand".

libgomp/
PR tree-optimization/89713
PR c/94392
* testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Again expect
'bar.sync'.
* testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Likewise.

libgomp/ChangeLog
libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-4.c

index 6c437930b02f2205c71da53c3dd7061e99faaa0e..3716f559aa1cbf6dcd865474d9047220efecda97 100644 (file)
@@ -1,3 +1,11 @@
+2020-04-03  Thomas Schwinge  <thomas@codesourcery.com>
+
+       PR tree-optimization/89713
+       PR c/94392
+       * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Again expect
+       'bar.sync'.
+       * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Likewise.
+
 2020-03-31  Tobias Burnus  <tobias@codesourcery.com>
 
        * target.c (GOMP_target_enter_exit_data): Handle PSET/MAP_POINTER.
index 2cb5b95949deaf7c4b2619da773817bcdf18be92..6570c64afff5442396dfd1a2ac12f32a3f77491d 100644 (file)
@@ -15,4 +15,22 @@ main (void)
   return 0;
 }
 
-/* { dg-final { scan-assembler-times "bar.sync" 0 } } */
+/* Todo: Boths bar.syncs can be removed.
+   Atm we generate this dead code inbetween forked and joining:
+
+                     mov.u32 %r28, %ntid.y;
+                     mov.u32 %r29, %tid.y;
+                     add.u32 %r30, %r29, %r29;
+                     setp.gt.s32     %r31, %r30, 19;
+             @%r31   bra     $L2;
+                     add.u32 %r25, %r28, %r28;
+                     mov.u32 %r24, %r30;
+     $L3:
+                     add.u32 %r24, %r24, %r25;
+                     setp.le.s32     %r33, %r24, 19;
+             @%r33   bra     $L3;
+     $L2:
+
+   so the loop is not recognized as empty loop (which we detect by seeing if
+   joining immediately follows forked).  */
+/* { dg-final { scan-assembler-times "bar.sync" 2 } } */
index e8a433ffc0a5bc644b889620d5a50594852b19c3..d955d79718dfb9a590467ad49235f14034b434c4 100644 (file)
@@ -21,4 +21,7 @@ main (void)
   return 0;
 }
 
-/* { dg-final { scan-assembler-times "bar.sync" 0 } } */
+/* Atm, %ntid.y is broadcast from one loop to the next, so there are 2 bar.syncs
+   for that (the other two are there for the same reason as in pr85381-2.c).
+   Todo: Recompute %ntid.y instead of broadcasting it. */
+/* { dg-final { scan-assembler-times "bar.sync" 4 } } */