@@ -328,7 +328,7 @@ inline void createDefaultFIROptimizerPassPipeline(
328
328
// / \param optLevel - optimization level used for creating FIR optimization
329
329
// / passes pipeline
330
330
inline void createHLFIRToFIRPassPipeline (
331
- mlir::PassManager &pm, llvm::OptimizationLevel optLevel = defaultOptLevel) {
331
+ mlir::PassManager &pm, bool enableOpenMP, llvm::OptimizationLevel optLevel = defaultOptLevel) {
332
332
if (optLevel.isOptimizingForSpeed ()) {
333
333
addCanonicalizerPassWithoutRegionSimplification (pm);
334
334
addNestedPassToAllTopLevelOperations (
@@ -345,7 +345,8 @@ inline void createHLFIRToFIRPassPipeline(
345
345
pm.addPass (hlfir::createLowerHLFIRIntrinsics ());
346
346
pm.addPass (hlfir::createBufferizeHLFIR ());
347
347
pm.addPass (hlfir::createConvertHLFIRtoFIR ());
348
- pm.addPass (flangomp::createLowerWorkshare ());
348
+ if (enableOpenMP)
349
+ pm.addPass (flangomp::createLowerWorkshare ());
349
350
}
350
351
351
352
// / Create a pass pipeline for handling certain OpenMP transformations needed
@@ -416,7 +417,7 @@ inline void createDefaultFIRCodeGenPassPipeline(mlir::PassManager &pm,
416
417
// / passes pipeline
417
418
inline void createMLIRToLLVMPassPipeline (mlir::PassManager &pm,
418
419
MLIRToLLVMPassPipelineConfig &config, llvm::StringRef inputFilename = {}) {
419
- fir::createHLFIRToFIRPassPipeline (pm, config.OptLevel );
420
+ fir::createHLFIRToFIRPassPipeline (pm, config.EnableOpenMP , config. OptLevel );
420
421
421
422
// Add default optimizer pass pipeline.
422
423
fir::createDefaultFIROptimizerPassPipeline (pm, config);
0 commit comments