@@ -283,11 +283,23 @@ static void registerDialects(MLIRContext &context, const bool syclKernelsOnly) {
283
283
loadDialects (context, syclKernelsOnly);
284
284
}
285
285
286
+ // Enable various options for the passmanager
287
+ static void enableOptionsPM (mlir::PassManager &pm) {
288
+ DefaultTimingManager tm ;
289
+ applyDefaultTimingManagerCLOptions (tm );
290
+ TimingScope timing = tm .getRootScope ();
291
+
292
+ pm.enableVerifier (EarlyVerifier);
293
+ applyPassManagerCLOptions (pm);
294
+ pm.enableTiming (timing);
295
+ }
296
+
286
297
// MLIR canonicalization & cleanup.
287
298
static int canonicalize (mlir::MLIRContext &context,
288
299
mlir::OwningOpRef<mlir::ModuleOp> &module) {
289
300
mlir::PassManager pm (&context);
290
- pm.enableVerifier (EarlyVerifier);
301
+ enableOptionsPM (pm);
302
+
291
303
mlir::OpPassManager &optPM = pm.nest <mlir::func::FuncOp>();
292
304
GreedyRewriteConfig canonicalizerConfig;
293
305
canonicalizerConfig.maxIterations = CanonicalizeIterations;
@@ -349,6 +361,8 @@ static int canonicalize(mlir::MLIRContext &context,
349
361
static int optimize (mlir::MLIRContext &context,
350
362
mlir::OwningOpRef<mlir::ModuleOp> &module) {
351
363
mlir::PassManager pm (&context);
364
+ enableOptionsPM (pm);
365
+
352
366
mlir::OpPassManager &optPM = pm.nest <mlir::func::FuncOp>();
353
367
GreedyRewriteConfig canonicalizerConfig;
354
368
canonicalizerConfig.maxIterations = CanonicalizeIterations;
@@ -413,6 +427,8 @@ static int optimizeCUDA(mlir::MLIRContext &context,
413
427
canonicalizerConfig.maxIterations = CanonicalizeIterations;
414
428
415
429
mlir::PassManager pm (&context);
430
+ enableOptionsPM (pm);
431
+
416
432
mlir::OpPassManager &optPM = pm.nest <mlir::func::FuncOp>();
417
433
optPM.addPass (mlir::createLowerAffinePass ());
418
434
optPM.addPass (mlir::createCanonicalizerPass (canonicalizerConfig, {}, {}));
@@ -558,7 +574,9 @@ static void finalizeCUDA(mlir::PassManager &pm) {
558
574
static int finalize (mlir::MLIRContext &context,
559
575
mlir::OwningOpRef<mlir::ModuleOp> &module,
560
576
llvm::DataLayout &DL, bool &LinkOMP) {
561
- mlir::PassManager pm (&context);
577
+ mlir::PassManager pm (&context);
578
+ enableOptionsPM (pm);
579
+
562
580
GreedyRewriteConfig canonicalizerConfig;
563
581
canonicalizerConfig.maxIterations = CanonicalizeIterations;
564
582
@@ -900,6 +918,10 @@ int main(int argc, char **argv) {
900
918
bool syclKernelsOnly = splitCommandLineOptions (argc, argv, LinkageArgs, MLIRArgs);
901
919
assert (!MLIRArgs.empty () && " MLIRArgs should not be empty" );
902
920
921
+ // Register any command line options.
922
+ registerPassManagerCLOptions ();
923
+ registerDefaultTimingManagerCLOptions ();
924
+
903
925
// Parse command line options.
904
926
llvm::cl::list<std::string> inputFileNames (
905
927
llvm::cl::Positional, llvm::cl::OneOrMore,
0 commit comments