Skip to content

Commit

Permalink
Reverse some static functions to make them sharable (llvm#1112)
Browse files Browse the repository at this point in the history
Signed-off-by: Tung D. Le <tung@jp.ibm.com>
  • Loading branch information
tungld authored Jan 21, 2022
1 parent cc2ddb1 commit 3594fbb
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 11 deletions.
21 changes: 10 additions & 11 deletions src/Compiler/CompilerUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ void setTargetCPU(const std::string &cpu) { mcpu = cpu; }
void setTargetArch(const std::string &arch) { march = arch; }
void setTargetTriple(const std::string &triple) { mtriple = triple; }

static void LoadMLIR(string inputFilename, mlir::MLIRContext &context,
void LoadMLIR(string inputFilename, mlir::MLIRContext &context,
mlir::OwningModuleRef &module) {
// Handle '.mlir' input to the ONNX-MLIR frontend.
// The mlir format indicates that one or more of the supported
Expand Down Expand Up @@ -684,7 +684,7 @@ void processInputArray(const void *onnxBuffer, int bufferSize,
ImportFrontendModelArray(onnxBuffer, bufferSize, context, module, options);
}

static InputIRLevelType determineInputIRLevel(mlir::OwningModuleRef &module) {
InputIRLevelType determineInputIRLevel(mlir::OwningModuleRef &module) {
Operation *moduleOp = module->getOperation();

// Collect dialect namespaces.
Expand All @@ -711,7 +711,7 @@ static InputIRLevelType determineInputIRLevel(mlir::OwningModuleRef &module) {
return LLVMLevel;
}

static void outputCode(
void outputCode(
mlir::OwningModuleRef &module, string filename, string extension) {
mlir::OpPrintingFlags flags;
if (preserveLocations)
Expand All @@ -728,9 +728,8 @@ static void outputCode(
output->keep();
}

static void emitOutputFiles(string outputBaseName,
EmissionTargetType emissionTarget, mlir::MLIRContext &context,
mlir::OwningModuleRef &module) {
void emitOutputFiles(string outputBaseName, EmissionTargetType emissionTarget,
mlir::MLIRContext &context, mlir::OwningModuleRef &module) {
// For EmitONNXIR and EmitMLIR the constant value are embedded in the code
// thus making the code hard to read. These values can be elided by emitting
// two versions of the same source code:
Expand Down Expand Up @@ -833,8 +832,8 @@ static std::string getDataLayout(const Location &loc) {
return dataLayoutString;
}

static void setupModule(mlir::OwningModuleRef &module,
mlir::MLIRContext &context, std::string outputBaseName) {
void setupModule(mlir::OwningModuleRef &module, mlir::MLIRContext &context,
std::string outputBaseName) {
// Initialize the targets support for all targets LLVM was configured for.
llvm::InitializeAllTargets();
llvm::InitializeAllTargetMCs();
Expand Down Expand Up @@ -872,9 +871,9 @@ static void addPasses(mlir::OwningModuleRef &module, mlir::PassManager &pm,
addKrnlToLLVMPasses(pm);
}

static void emitOutput(mlir::OwningModuleRef &module,
mlir::MLIRContext &context, std::string outputBaseName,
mlir::PassManager &pm, EmissionTargetType emissionTarget) {
void emitOutput(mlir::OwningModuleRef &module, mlir::MLIRContext &context,
std::string outputBaseName, mlir::PassManager &pm,
EmissionTargetType emissionTarget) {
if (printIR) {
mlir::OpPrintingFlags flags;
if (preserveLocations)
Expand Down
18 changes: 18 additions & 0 deletions src/Compiler/CompilerUtils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,15 @@
extern llvm::cl::OptionCategory OnnxMlirOptions;
extern llvm::cl::opt<std::string> instrumentONNXOps;

// The following functions are useful for drivers building upon onnx-mlir.

void setTargetCPU(const std::string &cpu);
void setTargetArch(const std::string &arch);
void setTargetTriple(const std::string &triple);

void LoadMLIR(std::string inputFilename, mlir::MLIRContext &context,
mlir::OwningModuleRef &module);

std::string compileModuleToObject(
const mlir::OwningModuleRef &module, std::string outputBaseName);
std::string compileModuleToSharedLibrary(
Expand All @@ -56,6 +61,19 @@ void processInputFile(std::string inputFilename, mlir::MLIRContext &context,
mlir::OwningModuleRef &module, std::string *errorMessage);
void processInputArray(const void *onnxBuffer, int bufferSize,
mlir::MLIRContext &context, mlir::OwningModuleRef &module);
onnx_mlir::InputIRLevelType determineInputIRLevel(
mlir::OwningModuleRef &module);

void outputCode(
mlir::OwningModuleRef &module, std::string filename, std::string extension);
void emitOutputFiles(std::string outputBaseName,
onnx_mlir::EmissionTargetType emissionTarget, mlir::MLIRContext &context,
mlir::OwningModuleRef &module);
void emitOutput(mlir::OwningModuleRef &module, mlir::MLIRContext &context,
std::string outputBaseName, mlir::PassManager &pm,
onnx_mlir::EmissionTargetType emissionTarget);

void setupModule(mlir::OwningModuleRef &module, mlir::MLIRContext &context,
std::string outputBaseName);
int compileModule(mlir::OwningModuleRef &module, mlir::MLIRContext &context,
std::string outputBaseName, onnx_mlir::EmissionTargetType emissionTarget);

0 comments on commit 3594fbb

Please sign in to comment.