================
@@ -6309,9 +6340,11 @@ void CodeGenFunction::EmitOMPDistributeLoop(const
OMPLoopDirective &S,
const unsigned IVSize = getContext().getTypeSize(IVExpr->getType());
const bool IVSigned =
IVExpr->getType()->hasSignedIntegerRepresentation();
- // GPU fused schedule: omit the outer distribute loop and let the inner
- // worksharing loop schedule the flattened team/thread iteration space.
- if (canEmitGPUFusedDistSchedule(CGM, S, S.getDirectiveKind())) {
+ // omit the outer distribute loop and let the inner worksharing loop
+ // schedule the flattened team/thread iteration space, necessary for
+ // GPU fused schedule and no-loop optimization
+ if (canEmitGPUFusedDistSchedule(CGM, S, S.getDirectiveKind()) ||
----------------
ro-i wrote:
note that in my initial current design, this place has to agree with
```c++
ScheduleKind.UseFusedDistChunkSchedule =
canEmitGPUFusedDistSchedule(CGM, S, EKind);
```
earlier in the file.
This is probably not an issue right now because EmitOMPWorksharingLoop is
skipped at the moment, but flagging this for the case this changes
https://github.com/llvm/llvm-project/pull/205325
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits