diff --git a/tools/arcilator/arcilator.cpp b/tools/arcilator/arcilator.cpp index f0e490a6d729..7c49321bdad8 100644 --- a/tools/arcilator/arcilator.cpp +++ b/tools/arcilator/arcilator.cpp @@ -461,9 +461,11 @@ static LogicalResult processBuffer( mlir::ExecutionEngineOptions engineOptions; engineOptions.jitCodeGenOptLevel = llvm::CodeGenOptLevel::Aggressive; - engineOptions.transformer = mlir::makeOptimizingTransformer( - /*optLevel=*/3, /*sizeLevel=*/0, - /*targetMachine=*/nullptr); + std::function transformer = + mlir::makeOptimizingTransformer( + /*optLevel=*/3, /*sizeLevel=*/0, + /*targetMachine=*/nullptr); + engineOptions.transformer = transformer; engineOptions.sharedLibPaths = sharedLibraries; auto executionEngine = diff --git a/tools/circt-bmc/circt-bmc.cpp b/tools/circt-bmc/circt-bmc.cpp index 59019e56bc9e..d0a6d89bb623 100644 --- a/tools/circt-bmc/circt-bmc.cpp +++ b/tools/circt-bmc/circt-bmc.cpp @@ -242,6 +242,9 @@ static LogicalResult executeBMC(MLIRContext &context) { }; std::unique_ptr engine; + std::function transformer = + mlir::makeOptimizingTransformer( + /*optLevel*/ 3, /*sizeLevel=*/0, /*targetMachine=*/nullptr); { auto timer = ts.nest("Setting up the JIT"); auto entryPoint = @@ -264,8 +267,7 @@ static LogicalResult executeBMC(MLIRContext &context) { SmallVector sharedLibraries(sharedLibs.begin(), sharedLibs.end()); mlir::ExecutionEngineOptions engineOptions; - engineOptions.transformer = mlir::makeOptimizingTransformer( - /*optLevel*/ 3, /*sizeLevel=*/0, /*targetMachine=*/nullptr); + engineOptions.transformer = transformer; engineOptions.jitCodeGenOptLevel = llvm::CodeGenOptLevel::Aggressive; engineOptions.sharedLibPaths = sharedLibraries; engineOptions.enableObjectDump = true; diff --git a/tools/circt-lec/circt-lec.cpp b/tools/circt-lec/circt-lec.cpp index 2ff6370b7d20..f62392709d55 100644 --- a/tools/circt-lec/circt-lec.cpp +++ b/tools/circt-lec/circt-lec.cpp @@ -282,6 +282,9 @@ static LogicalResult executeLEC(MLIRContext &context) { }; std::unique_ptr engine; + std::function transformer = + mlir::makeOptimizingTransformer( + /*optLevel*/ 3, /*sizeLevel=*/0, /*targetMachine=*/nullptr); { auto timer = ts.nest("Setting up the JIT"); auto entryPoint = dyn_cast_or_null( @@ -304,8 +307,7 @@ static LogicalResult executeLEC(MLIRContext &context) { SmallVector sharedLibraries(sharedLibs.begin(), sharedLibs.end()); mlir::ExecutionEngineOptions engineOptions; - engineOptions.transformer = mlir::makeOptimizingTransformer( - /*optLevel*/ 3, /*sizeLevel=*/0, /*targetMachine=*/nullptr); + engineOptions.transformer = transformer; engineOptions.jitCodeGenOptLevel = llvm::CodeGenOptLevel::Aggressive; engineOptions.sharedLibPaths = sharedLibraries; engineOptions.enableObjectDump = true;