[clang] 4290299 - [clang][OpenMP][NFC] Assert fused distribute loop invariant (#206113)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 26 09:08:34 PDT 2026
Author: Robert Imschweiler
Date: 2026-06-26T16:08:29Z
New Revision: 4290299b5c999fec55ff6f26bdefaf50ff124c88
URL: https://github.com/llvm/llvm-project/commit/4290299b5c999fec55ff6f26bdefaf50ff124c88
DIFF: https://github.com/llvm/llvm-project/commit/4290299b5c999fec55ff6f26bdefaf50ff124c88.diff
LOG: [clang][OpenMP][NFC] Assert fused distribute loop invariant (#206113)
See
https://github.com/llvm/llvm-project/pull/201670#discussion_r3463060131
Added:
Modified:
clang/lib/CodeGen/CGStmtOpenMP.cpp
Removed:
################################################################################
diff --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp
index 95fd6694437fe..88f698f38cce0 100644
--- a/clang/lib/CodeGen/CGStmtOpenMP.cpp
+++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp
@@ -3905,9 +3905,14 @@ bool CodeGenFunction::EmitOMPWorksharingLoop(
// GPU combined `distribute parallel for`: emit a single
// for_static_init with the fused distr_static_chunk + static_chunkone
// schedule (enum 93). The surrounding EmitOMPDistributeLoop must skip
- // its distribute_static_init under the same conditions.
- if (StaticChunkedOne && canEmitGPUFusedDistSchedule(CGM, S, EKind))
- ScheduleKind.UseFusedDistChunkSchedule = true;
+ // its distribute_static_init under the same conditions. Both sites are
+ // guarded by canEmitGPUFusedDistSchedule() alone so they cannot
+ // disagree; the assert guards the invariant that makes this safe today,
+ // aka that the implicit GPU default schedule is always static chunk-one.
+ ScheduleKind.UseFusedDistChunkSchedule =
+ canEmitGPUFusedDistSchedule(CGM, S, EKind);
+ assert((!ScheduleKind.UseFusedDistChunkSchedule || StaticChunkedOne) &&
+ "fused distribute schedule requires a static chunk-one schedule");
bool IsMonotonic =
Ordered ||
(ScheduleKind.Schedule == OMPC_SCHEDULE_static &&
More information about the cfe-commits
mailing list