[flang-commits] [flang] [mlir] [llvm][mlir][OpenMP] Support translation for linear clause in omp.wsloop and omp.simd (PR #139386)
Jack Styles via flang-commits
flang-commits at lists.llvm.org
Tue Nov 4 03:42:56 PST 2025
================
@@ -138,25 +138,30 @@ class LinearClauseProcessor {
SmallVector<llvm::AllocaInst *> linearOrigVars;
SmallVector<llvm::Value *> linearOrigVal;
SmallVector<llvm::Value *> linearSteps;
+ SmallVector<llvm::Type *> linearVarTypes;
llvm::BasicBlock *linearFinalizationBB;
llvm::BasicBlock *linearExitBB;
llvm::BasicBlock *linearLastIterExitBB;
public:
+ // Register type for the linear variables
+ void registerType(LLVM::ModuleTranslation &moduleTranslation,
+ mlir::Attribute &ty) {
+ linearVarTypes.push_back(moduleTranslation.convertType(
+ mlir::cast<mlir::TypeAttr>(ty).getValue()));
+ }
+
// Allocate space for linear variabes
void createLinearVar(llvm::IRBuilderBase &builder,
LLVM::ModuleTranslation &moduleTranslation,
- mlir::Value &linearVar) {
- if (llvm::AllocaInst *linearVarAlloca = dyn_cast<llvm::AllocaInst>(
- moduleTranslation.lookupValue(linearVar))) {
- linearPreconditionVars.push_back(builder.CreateAlloca(
- linearVarAlloca->getAllocatedType(), nullptr, ".linear_var"));
- llvm::Value *linearLoopBodyTemp = builder.CreateAlloca(
- linearVarAlloca->getAllocatedType(), nullptr, ".linear_result");
- linearOrigVal.push_back(moduleTranslation.lookupValue(linearVar));
- linearLoopBodyTemps.push_back(linearLoopBodyTemp);
- linearOrigVars.push_back(linearVarAlloca);
- }
+ mlir::Value &linearVar, int idx) {
+ linearPreconditionVars.push_back(
+ builder.CreateAlloca(linearVarTypes[idx], nullptr, ".linear_var"));
+ llvm::Value *linearLoopBodyTemp =
+ builder.CreateAlloca(linearVarTypes[idx], nullptr, ".linear_result");
+ linearOrigVal.push_back(moduleTranslation.lookupValue(linearVar));
+ linearLoopBodyTemps.push_back(linearLoopBodyTemp);
+ // linearOrigVars.push_back(linearVarAlloca);
----------------
Stylie777 wrote:
nit: extra unneeded code?
https://github.com/llvm/llvm-project/pull/139386
More information about the flang-commits
mailing list