Skip to content

Commit e8a23ce

Browse files
Applied remarks
1 parent b32ac37 commit e8a23ce

File tree

5 files changed

+28
-14
lines changed

5 files changed

+28
-14
lines changed

clang/include/clang/Driver/Options.td

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3836,18 +3836,21 @@ let Group = f_Group in {
38363836

38373837
def fopenmp_target_debug_EQ : Joined<["-"], "fopenmp-target-debug=">;
38383838
def fopenmp_assume_teams_oversubscription : Flag<["-"], "fopenmp-assume-teams-oversubscription">,
3839-
HelpText<"Allow enforcement to ensure there are enough teams to cover the "
3840-
"loop iteration space. It may ignore environment variables. "
3841-
"If the fopenmp-assume-teams-oversubscription and "
3842-
"fopenmp-assume-threads-oversubscription flags are set, Flang may "
3843-
"generate more optimized OpenMP kernels for target teams distribute "
3844-
"parallel do pragmas.">;
3839+
HelpText<"Allow the optimizer to discretely increase the number of "
3840+
"teams. May cause ignore environment variables that set "
3841+
"the number of teams to be ignored. The combination of "
3842+
"-fopenmp-assume-teams-oversubscription "
3843+
"and -fopenmp-assume-threads-oversubscription "
3844+
"may allow the conversion of loops into sequential code by "
3845+
"ensuring that each team/thread executes at most one iteration.">;
38453846
def fopenmp_assume_threads_oversubscription : Flag<["-"], "fopenmp-assume-threads-oversubscription">,
3846-
HelpText<"Assume threads oversubscription. If the "
3847-
"fopenmp-assume-teams-oversubscription and "
3848-
"fopenmp-assume-threads-oversubscription flags are set, Flang may "
3849-
"generate more optimized OpenMP kernels for target teams distribute "
3850-
"parallel do pragmas.">;
3847+
HelpText<"Allow the optimizer to discretely increase the number of "
3848+
"threads. May cause ignore environment variables that set "
3849+
"the number of threads to be ignored. The combination of "
3850+
"-fopenmp-assume-teams-oversubscription "
3851+
"and -fopenmp-assume-threads-oversubscription "
3852+
"may allow the conversion of loops into sequential code by "
3853+
"ensuring that each team/thread executes at most one iteration.">;
38513854
def fno_openmp_assume_teams_oversubscription : Flag<["-"], "fno-openmp-assume-teams-oversubscription">,
38523855
HelpText<"Do not assume teams oversubscription.">;
38533856
def fno_openmp_assume_threads_oversubscription : Flag<["-"], "fno-openmp-assume-threads-oversubscription">,

llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5004,8 +5004,9 @@ static void createTargetLoopWorkshareCall(OpenMPIRBuilder *OMPBuilder,
50045004
if (LoopType == WorksharingLoopType::DistributeForStaticLoop) {
50055005
RealArgs.push_back(ConstantInt::get(TripCountTy, 0));
50065006
RealArgs.push_back(ConstantInt::get(Builder.getInt8Ty(), NoLoop));
5007-
} else
5007+
} else {
50085008
RealArgs.push_back(ConstantInt::get(Builder.getInt8Ty(), 0));
5009+
}
50095010

50105011
Builder.CreateCall(RTLFn, RealArgs);
50115012
}

mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,15 @@ def TargetRegionFlagsNoLoop : I32BitEnumAttrCaseBit<"no_loop", 3>;
234234

235235
def TargetRegionFlags : OpenMP_BitEnumAttr<
236236
"TargetRegionFlags",
237-
"target region property flags", [
237+
"These flags describe properties of the target kernel. "
238+
"TargetRegionFlagsGeneric - denotes generic kernel. "
239+
"TargetRegionFlagsSpmd - denotes SPMD kernel. "
240+
"TargetRegionFlagsNoLoop - denotes kernel where "
241+
"num_teams * num_threads >= loop_trip_count. It allows the conversion "
242+
"of loops into sequential code by ensuring that each team/thread "
243+
"executes at most one iteration. "
244+
"TargetRegionFlagsTripCount - checks if the loop trip count should be "
245+
"calculated.", [
238246
TargetRegionFlagsNone,
239247
TargetRegionFlagsGeneric,
240248
TargetRegionFlagsSpmd,

mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2112,11 +2112,13 @@ static bool canPromoteToNoLoop(Operation *capturedOp, TeamsOp teamsOp,
21122112
// num_teams clause can break no-loop teams/threads assumption.
21132113
if (teamsOp.getNumTeamsUpper())
21142114
return false;
2115+
21152116
// Reduction kernels are slower in no-loop mode.
21162117
if (teamsOp.getNumReductionVars())
21172118
return false;
21182119
if (wsLoopOp->getNumReductionVars())
21192120
return false;
2121+
21202122
// Check if the user allows the promotion of kernels to no-loop mode.
21212123
OffloadModuleInterface offloadMod =
21222124
capturedOp->getParentOfType<omp::OffloadModuleInterface>();

offload/test/offloading/fortran/target-no-loop.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
! REQUIRES: flang, amdgpu
1+
! REQUIRES: flang
22

33
! RUN: %libomptarget-compile-fortran-generic -O3 -fopenmp-assume-threads-oversubscription -fopenmp-assume-teams-oversubscription
44
! RUN: env LIBOMPTARGET_INFO=16 OMP_NUM_TEAMS=16 OMP_TEAMS_THREAD_LIMIT=16 %libomptarget-run-generic 2>&1 | %fcheck-generic

0 commit comments

Comments
 (0)