Skip to content

Commit c7f84b1

Browse files
committed
Applying changes from Tung
Signed-off-by: Paramvir Sran <[email protected]>
1 parent a471dc3 commit c7f84b1

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

src/Compiler/CompilerUtils.cpp

+8-11
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@
5252
using namespace mlir;
5353
using namespace onnx_mlir;
5454

55-
extern mlir::DefaultTimingManager timingManager;
55+
mlir::DefaultTimingManager timingManager;
56+
mlir::TimingScope rootScope;
5657

5758
namespace onnx_mlir {
5859

@@ -151,7 +152,8 @@ int Command::exec(std::string wdir) const {
151152
llvm::errs() << llvm::join(argsRef, " ") << "\n"
152153
<< "Error message: " << errMsg << "\n"
153154
<< "Program path: " << _path << "\n"
154-
<< "Command execution failed." << "\n";
155+
<< "Command execution failed."
156+
<< "\n";
155157
return rc;
156158
}
157159

@@ -331,7 +333,6 @@ std::string getTargetFilename(
331333
// Returns 0 on success, error code on failure.
332334
static int genLLVMBitcode(const mlir::OwningOpRef<ModuleOp> &module,
333335
std::string outputNameNoExt, std::string optimizedBitcodeNameWithExt) {
334-
auto rootScope = timingManager.getRootScope();
335336
auto llvmScope =
336337
rootScope.nest("[onnx-mlir] Compiling to LLVM Optimized Bitcode");
337338

@@ -405,7 +406,6 @@ static int genLLVMBitcode(const mlir::OwningOpRef<ModuleOp> &module,
405406
// Return 0 on success, error code on failure.
406407
static int genModelObject(
407408
std::string bitcodeNameWithExt, std::string &modelObjNameWithExt) {
408-
auto rootScope = timingManager.getRootScope();
409409
auto objectScope =
410410
rootScope.nest("[onnx-mlir] Compiling LLVM Bitcode to Object File");
411411
std::string llcPath = getToolPath("llc");
@@ -428,7 +428,6 @@ static int genModelObject(
428428
// Return 0 on success, error code on failure.
429429
static int genJniObject(const mlir::OwningOpRef<ModuleOp> &module,
430430
std::string jniSharedLibPath, std::string jniObjPath) {
431-
auto rootScope = timingManager.getRootScope();
432431
auto jniScope = rootScope.nest("[onnx-mlir] Compiling JNI Object File");
433432

434433
Command ar(/*exePath=*/getToolPath("ar", true));
@@ -449,7 +448,6 @@ static int genJniObject(const mlir::OwningOpRef<ModuleOp> &module,
449448
static int genSharedLib(std::string sharedLibNameWithExt,
450449
std::vector<std::string> opts, std::vector<std::string> objs,
451450
std::vector<std::string> libs, std::vector<std::string> libDirs) {
452-
auto rootScope = timingManager.getRootScope();
453451
auto libraryScope = rootScope.nest("[onnx-mlir] Linking Shared Library");
454452
#ifdef _WIN32
455453
std::vector<std::string> outputOpt = {"/Fe:" + sharedLibNameWithExt};
@@ -500,7 +498,6 @@ static int genSharedLib(std::string sharedLibNameWithExt,
500498
// Return 0 on success, error code on failure.
501499
static int genJniJar(const mlir::OwningOpRef<ModuleOp> &module,
502500
std::string modelSharedLibPath, std::string modelJniJarPath) {
503-
auto rootScope = timingManager.getRootScope();
504501
auto jniJarScope = rootScope.nest("[onnx-mlir] Creating JNI Jar");
505502

506503
llvm::SmallString<8> libraryPath(getLibraryPath());
@@ -898,8 +895,8 @@ static int emitOutput(mlir::OwningOpRef<ModuleOp> &module,
898895
int compileModule(mlir::OwningOpRef<ModuleOp> &module,
899896
mlir::MLIRContext &context, std::string outputNameNoExt,
900897
EmissionTargetType emissionTarget) {
901-
auto rootScope = timingManager.getRootScope();
902-
auto compileModuleScope = rootScope.nest("[onnx-mlir] Compile Module Setup");
898+
auto compileModuleScope =
899+
rootScope.nest("[onnx-mlir] Compiling Module using MLIR");
903900

904901
int rc = setupModule(module, context, outputNameNoExt);
905902
if (rc != CompilerSuccess)
@@ -928,12 +925,12 @@ int compileModule(mlir::OwningOpRef<ModuleOp> &module,
928925
(void)mlir::applyPassManagerCLOptions(pm);
929926

930927
if (enableTiming) {
931-
pm.enableTiming(rootScope);
928+
pm.enableTiming(compileModuleScope);
932929
}
933-
compileModuleScope.stop();
934930

935931
if (mlir::failed(pm.run(*module)))
936932
return CompilerFailure;
933+
compileModuleScope.stop();
937934
return emitOutput(module, context, outputNameNoExt, pm, emissionTarget);
938935
}
939936

src/Compiler/CompilerUtils.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@
1818

1919
#include "mlir/IR/BuiltinOps.h"
2020
#include "mlir/IR/OwningOpRef.h"
21+
#include "mlir/Support/Timing.h"
2122
#include "llvm/ADT/StringRef.h"
2223
#include "llvm/Support/Path.h"
2324

2425
#include <optional>
2526
#include <string>
2627
#include <vector>
2728

29+
extern mlir::DefaultTimingManager timingManager;
30+
extern mlir::TimingScope rootScope;
31+
2832
namespace onnx_mlir {
2933

3034
struct Command {

src/onnx-mlir.cpp

+2-5
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,11 @@
2323

2424
using namespace onnx_mlir;
2525

26-
mlir::DefaultTimingManager timingManager;
27-
2826
int main(int argc, char *argv[]) {
2927
// Register MLIR command line options.
3028
mlir::registerAsmPrinterCLOptions();
3129
mlir::registerMLIRContextCLOptions();
3230
mlir::registerPassManagerCLOptions();
33-
mlir::registerDefaultTimingManagerCLOptions();
3431
mlir::registerAsmPrinterCLOptions();
3532

3633
llvm::cl::SetVersionPrinter(getVersionPrinter);
@@ -48,9 +45,9 @@ int main(int argc, char *argv[]) {
4845
initCompilerConfig();
4946

5047
// timing manager reporting enabled via "--enable-timing" compiler flag
51-
mlir::applyDefaultTimingManagerCLOptions(timingManager);
48+
// mlir::applyDefaultTimingManagerCLOptions(timingManager);
5249
timingManager.setEnabled(enableTiming);
53-
auto rootScope = timingManager.getRootScope();
50+
rootScope = timingManager.getRootScope();
5451
auto setupScope = rootScope.nest("[onnx-mlir] Preparing for Compilation");
5552

5653
// Special handling of outputBaseName to derive output filename.

0 commit comments

Comments
 (0)