Changeset View
Changeset View
Standalone View
Standalone View
flang/lib/Lower/OpenMP.cpp
Show First 20 Lines • Show All 1,208 Lines • ▼ Show 20 Lines | static void genOMP(Fortran::lower::AbstractConverter &converter, | ||||
} | } | ||||
// 2.9.3.1 SIMD construct | // 2.9.3.1 SIMD construct | ||||
// TODO: Support all the clauses | // TODO: Support all the clauses | ||||
if (llvm::omp::OMPD_simd == ompDirective) { | if (llvm::omp::OMPD_simd == ompDirective) { | ||||
TypeRange resultType; | TypeRange resultType; | ||||
auto SimdLoopOp = firOpBuilder.create<mlir::omp::SimdLoopOp>( | auto SimdLoopOp = firOpBuilder.create<mlir::omp::SimdLoopOp>( | ||||
currentLocation, resultType, lowerBound, upperBound, step, alignedVars, | currentLocation, resultType, lowerBound, upperBound, step, alignedVars, | ||||
nullptr, ifClauseOperand, simdlenClauseOperand, safelenClauseOperand, | nullptr, ifClauseOperand, | ||||
orderClauseOperand.dyn_cast_or_null<omp::ClauseOrderKindAttr>(), | |||||
simdlenClauseOperand, safelenClauseOperand, | |||||
/*inclusive=*/firOpBuilder.getUnitAttr()); | /*inclusive=*/firOpBuilder.getUnitAttr()); | ||||
createBodyOfOp<omp::SimdLoopOp>(SimdLoopOp, converter, currentLocation, | createBodyOfOp<omp::SimdLoopOp>(SimdLoopOp, converter, currentLocation, | ||||
eval, &loopOpClauseList, iv); | eval, &loopOpClauseList, iv); | ||||
return; | return; | ||||
} | } | ||||
// FIXME: Add support for following clauses: | // FIXME: Add support for following clauses: | ||||
// 1. linear | // 1. linear | ||||
▲ Show 20 Lines • Show All 753 Lines • Show Last 20 Lines |