Skip to content

Commit 800f288

Browse files
arnamoy10arnamoy.bhattacharyyaetiotto
committed
Adding option to mlir-print-ir-before/after family of options. (#36)
Co-authored-by: arnamoy.bhattacharyya <arnamoyb@hds-clx-7.nh.intel.com> Co-authored-by: Ettore Tiotto <ettore.tiotto@intel.com>
1 parent cc3d116 commit 800f288

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

polygeist/tools/cgeist/driver.cc

+24-2
Original file line numberDiff line numberDiff line change
@@ -283,11 +283,23 @@ static void registerDialects(MLIRContext &context, const bool syclKernelsOnly) {
283283
loadDialects(context, syclKernelsOnly);
284284
}
285285

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+
286297
// MLIR canonicalization & cleanup.
287298
static int canonicalize(mlir::MLIRContext &context,
288299
mlir::OwningOpRef<mlir::ModuleOp> &module) {
289300
mlir::PassManager pm(&context);
290-
pm.enableVerifier(EarlyVerifier);
301+
enableOptionsPM(pm);
302+
291303
mlir::OpPassManager &optPM = pm.nest<mlir::func::FuncOp>();
292304
GreedyRewriteConfig canonicalizerConfig;
293305
canonicalizerConfig.maxIterations = CanonicalizeIterations;
@@ -349,6 +361,8 @@ static int canonicalize(mlir::MLIRContext &context,
349361
static int optimize(mlir::MLIRContext &context,
350362
mlir::OwningOpRef<mlir::ModuleOp> &module) {
351363
mlir::PassManager pm(&context);
364+
enableOptionsPM(pm);
365+
352366
mlir::OpPassManager &optPM = pm.nest<mlir::func::FuncOp>();
353367
GreedyRewriteConfig canonicalizerConfig;
354368
canonicalizerConfig.maxIterations = CanonicalizeIterations;
@@ -413,6 +427,8 @@ static int optimizeCUDA(mlir::MLIRContext &context,
413427
canonicalizerConfig.maxIterations = CanonicalizeIterations;
414428

415429
mlir::PassManager pm(&context);
430+
enableOptionsPM(pm);
431+
416432
mlir::OpPassManager &optPM = pm.nest<mlir::func::FuncOp>();
417433
optPM.addPass(mlir::createLowerAffinePass());
418434
optPM.addPass(mlir::createCanonicalizerPass(canonicalizerConfig, {}, {}));
@@ -558,7 +574,9 @@ static void finalizeCUDA(mlir::PassManager &pm) {
558574
static int finalize(mlir::MLIRContext &context,
559575
mlir::OwningOpRef<mlir::ModuleOp> &module,
560576
llvm::DataLayout &DL, bool &LinkOMP) {
561-
mlir::PassManager pm(&context);
577+
mlir::PassManager pm(&context);
578+
enableOptionsPM(pm);
579+
562580
GreedyRewriteConfig canonicalizerConfig;
563581
canonicalizerConfig.maxIterations = CanonicalizeIterations;
564582

@@ -900,6 +918,10 @@ int main(int argc, char **argv) {
900918
bool syclKernelsOnly = splitCommandLineOptions(argc, argv, LinkageArgs, MLIRArgs);
901919
assert(!MLIRArgs.empty() && "MLIRArgs should not be empty");
902920

921+
// Register any command line options.
922+
registerPassManagerCLOptions();
923+
registerDefaultTimingManagerCLOptions();
924+
903925
// Parse command line options.
904926
llvm::cl::list<std::string> inputFileNames(
905927
llvm::cl::Positional, llvm::cl::OneOrMore,

0 commit comments

Comments
 (0)