Skip to content

Commit c27d440

Browse files
committed
use collapseLoopCount in calculating tile loopcount
1 parent e2141ff commit c27d440

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

flang/lib/Lower/OpenACC.cpp

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4868,25 +4868,16 @@ void Fortran::lower::genEarlyReturnInOpenACCLoop(fir::FirOpBuilder &builder,
48684868

48694869
uint64_t Fortran::lower::getLoopCountForCollapseAndTile(
48704870
const Fortran::parser::AccClauseList &clauseList) {
4871-
uint64_t collapseLoopCount = 1;
4871+
uint64_t collapseLoopCount = getLoopCountForCollapse(clauseList);
48724872
uint64_t tileLoopCount = 1;
48734873
for (const Fortran::parser::AccClause &clause : clauseList.v) {
4874-
if (const auto *collapseClause =
4875-
std::get_if<Fortran::parser::AccClause::Collapse>(&clause.u)) {
4876-
const parser::AccCollapseArg &arg = collapseClause->v;
4877-
const auto &collapseValue{std::get<parser::ScalarIntConstantExpr>(arg.t)};
4878-
collapseLoopCount = *Fortran::semantics::GetIntValue(collapseValue);
4879-
}
48804874
if (const auto *tileClause =
48814875
std::get_if<Fortran::parser::AccClause::Tile>(&clause.u)) {
48824876
const parser::AccTileExprList &tileExprList = tileClause->v;
4883-
const std::list<parser::AccTileExpr> &listTileExpr = tileExprList.v;
4884-
tileLoopCount = listTileExpr.size();
4877+
tileLoopCount = tileExprList.v.size();
48854878
}
48864879
}
4887-
if (tileLoopCount > collapseLoopCount)
4888-
return tileLoopCount;
4889-
return collapseLoopCount;
4880+
return tileLoopCount > collapseLoopCount ? tileLoopCount : collapseLoopCount;
48904881
}
48914882

48924883
uint64_t Fortran::lower::getLoopCountForCollapse(

0 commit comments

Comments
 (0)