From a9de836c2b22f878cff592b96e11c1b95d4d36ee Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 16 Oct 2022 00:07:20 +0200 Subject: [PATCH] Restore 'libgomp.oacc-c-c++-common/nvptx-sese-1.c' SESE regions checking [PR107195, PR107344] That is, adjust for optimization introduced with recent commit r13-3217-gc4d15dddf6b9eacb36f535807ad2ee364af46e04 "[PR107195] Set range to zero when nonzero mask is 0", where GCC now understands that after 'r *= 2;', 'r & 1' will never hold here, and thus transforms/optimizes/"disturbs" the original code such that GCC/nvptx's later "Neuter whole SESE regions" optimization no longer is applicable to it: UNSUPPORTED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-sese-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -foffload=nvptx-none -O0 PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-sese-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -foffload=nvptx-none -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-sese-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -foffload=nvptx-none -O2 execution test [-PASS:-]{+FAIL:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-sese-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -foffload=nvptx-none -O2 scan-nvptx-none-offload-rtl-dump mach "SESE regions:.* [0-9]+{[0-9]+->[0-9]+(\\.[0-9]+)+}" Same for C++. It's unclear to me if this is an actual "problem", which optimization is "more important", so I've filed PR107344 "GCC/nvptx SESE region optimization" to capture this question, and here restore what we intend to be testing (to my understanding) in 'libgomp.oacc-c-c++-common/nvptx-sese-1.c'. PR tree-optimization/107195 PR target/107344 libgomp/ * testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c: Restore SESE regions checking. --- libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c index 9583265c775..6507e1affb0 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c @@ -22,7 +22,7 @@ int main () if (foo (r)) r *= 2; - if (r & 1) /* to here. */ + if (r & 8) /* to here. */ #pragma acc loop vector reduction (+:r) for (int i = 00; i < 40; i++) r += i;