[PATCH] D17170: [OPENMP] Codegen for distribute directive
Carlo Bertolli via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 16 10:50:30 PST 2016
carlo.bertolli added inline comments.
================
Comment at: lib/CodeGen/CGOpenMPRuntime.h:759
@@ +758,3 @@
+ ///
+ void emitForStaticInitWithKMPSchedule(CodeGenFunction &CGF,
+ SourceLocation Loc,
----------------
carlo.bertolli wrote:
> I added this because OpenMPScheduleClauseKind and OpenMPDistScheduleClauseKind are two different unrelated types. Do you suggest something like the following?
>
> void emitForStaticInit(CodeGenFunction &CGF, SourceLocation Loc, OpenMPScheduleClauseKind ScheduleKind, OpenMPDistScheduleClauseKind ScheduleKind, unsigned IVSize, bool IVSigned, bool Ordered, Address IL, Address LB, Address UB, Address ST, llvm::Value *Chunk);
>
> and for dist_schedule called like:
>
> OpenMPDistScheduleClauseKind DistScheduleKind = ..;
>
> RT.emitForStaticInit(*this, S.getLocStart(), OMPC_SCHEDULE_unknown, DistScheduleKind, IVSize, IVSigned, Ordered, IL, LB, UB, ST, Chunk);
>
> Similarly, for schedule clause:
>
> OpenMPScheduleClauseKind ScheduleKind = ..;
>
> RT.emitForStaticInit(*this, S.getLocStart(), ScheduleKind, OMPC_DIST_SCHEDULE_unknown, IVSize, IVSigned, Ordered, IL, LB, UB, ST, Chunk);
>
>
Another solution is to have a generic schedule type as a union of the schedule and dist_schedule enum types.
```
union OMPGenericSchedule {
OpenMPScheduleClauseKind forSchedule;
OpenMPDistScheduleClauseKind distributeSchedule;
};
```
Then we can decide which case we are in as following:
```
void CGOpenMPRuntime::emitForStaticInit(CodeGenFunction &CGF,
SourceLocation Loc,
OMPGenericSchedule SchedKind,
bool isForSchedule,
unsigned IVSize, bool IVSigned,
bool Ordered, Address IL, Address LB,
Address UB, Address ST,
llvm::Value *Chunk) {
OpenMPSchedType Schedule = (isForSchedule) ?
getRuntimeSchedule(SchedKind.forSchedule, Chunk != nullptr, Ordered) :
getRuntimeSchedule(SchedKind.distributeSchedule, Chunk != nullptr);
```
Repository:
rL LLVM
http://reviews.llvm.org/D17170
More information about the cfe-commits
mailing list