@@ -3145,11 +3145,16 @@ static mlir::omp::DistributeOp genCompositeDistributeSimd(
31453145 genSimdClauses (converter, semaCtx, simdItem->clauses , loc, simdClauseOps,
31463146 simdReductionSyms);
31473147
3148- // TODO: Support delayed privatization.
3149- DataSharingProcessor dsp (converter, semaCtx, simdItem->clauses , eval,
3150- /* shouldCollectPreDeterminedSymbols=*/ true ,
3151- /* useDelayedPrivatization=*/ false , symTable);
3152- dsp.processStep1 ();
3148+ DataSharingProcessor distributeItemDSP (
3149+ converter, semaCtx, distributeItem->clauses , eval,
3150+ /* shouldCollectPreDeterminedSymbols=*/ false ,
3151+ /* useDelayedPrivatization=*/ true , symTable);
3152+ distributeItemDSP.processStep1 (&distributeClauseOps);
3153+
3154+ DataSharingProcessor simdItemDSP (converter, semaCtx, simdItem->clauses , eval,
3155+ /* shouldCollectPreDeterminedSymbols=*/ true ,
3156+ /* useDelayedPrivatization=*/ true , symTable);
3157+ simdItemDSP.processStep1 (&simdClauseOps);
31533158
31543159 // Pass the innermost leaf construct's clauses because that's where COLLAPSE
31553160 // is placed by construct decomposition.
@@ -3160,13 +3165,15 @@ static mlir::omp::DistributeOp genCompositeDistributeSimd(
31603165
31613166 // Operation creation.
31623167 EntryBlockArgs distributeArgs;
3163- // TODO: Add private syms and vars.
3168+ distributeArgs.priv .syms = distributeItemDSP.getDelayedPrivSymbols ();
3169+ distributeArgs.priv .vars = distributeClauseOps.privateVars ;
31643170 auto distributeOp = genWrapperOp<mlir::omp::DistributeOp>(
31653171 converter, loc, distributeClauseOps, distributeArgs);
31663172 distributeOp.setComposite (/* val=*/ true );
31673173
31683174 EntryBlockArgs simdArgs;
3169- // TODO: Add private syms and vars.
3175+ simdArgs.priv .syms = simdItemDSP.getDelayedPrivSymbols ();
3176+ simdArgs.priv .vars = simdClauseOps.privateVars ;
31703177 simdArgs.reduction .syms = simdReductionSyms;
31713178 simdArgs.reduction .vars = simdClauseOps.reductionVars ;
31723179 auto simdOp =
@@ -3176,7 +3183,7 @@ static mlir::omp::DistributeOp genCompositeDistributeSimd(
31763183 genLoopNestOp (converter, symTable, semaCtx, eval, loc, queue, simdItem,
31773184 loopNestClauseOps, iv,
31783185 {{distributeOp, distributeArgs}, {simdOp, simdArgs}},
3179- llvm::omp::Directive::OMPD_distribute_simd, dsp );
3186+ llvm::omp::Directive::OMPD_distribute_simd, simdItemDSP );
31803187 return distributeOp;
31813188}
31823189
0 commit comments