Skip to content

Commit fe5c581

Browse files
authored
[JLL] Add conversion from llvm to mlir (#324)
* [JLL] Add conversion from llvm to mlir * And call registrator * export
1 parent 7a3bc10 commit fe5c581

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

deps/ReactantExtra/API.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,22 @@ extern "C" void FreeClient(PjRtClient * client) {
361361
delete client;
362362
}
363363

364+
#include "xla/service/custom_call_target_registry.h"
365+
extern "C" void RegisterCustomCallTarget(const char* name, void* address,
366+
const char* platform) {
367+
CustomCallTargetRegistry::Global()->Register(std::string(name), address, std::string(platform));
368+
}
369+
370+
#include "mlir/Target/LLVMIR/Import.h"
371+
extern "C" MlirModule ConvertLLVMToMLIR(LLVMModuleRef lmod, MlirContext cctx) {
372+
auto llvmModule = std::unique_ptr<llvm::Module>(unwrap(lmod));
373+
mlir::MLIRContext &context = *unwrap(cctx);
374+
375+
auto res = mlir::translateLLVMIRToModule(std::move(llvmModule), &context, /*emitExpensiveWarnings*/false, /*dropDICompositeElements*/false).release();
376+
return wrap(res);
377+
}
378+
379+
364380
/* Note that this */
365381
extern "C" xla::PjRtLoadedExecutable* ClientCompile(PjRtClient * client, MlirModule cmod) {
366382
auto program = std::make_unique<xla::ifrt::HloProgram>(cast<ModuleOp>(*unwrap(cmod)));

deps/ReactantExtra/BUILD

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,8 @@ cc_library(
423423
"-Wl,-exported_symbol,_RegisterDialects",
424424
"-Wl,-exported_symbol,_InitializeRegistryAndPasses",
425425
"-Wl,-exported_symbol,_ifrt_*",
426+
"-Wl,-exported_symbol,RegisterCustomCallTarget",
427+
"-Wl,-exported_symbol,ConvertLLVMToMLIR",
426428
]}),
427429
deps = [
428430
"@enzyme//:EnzymeMLIR",
@@ -435,6 +437,7 @@ cc_library(
435437
"@llvm-project//mlir:ConversionPasses",
436438
"@llvm-project//mlir:DLTIDialect",
437439
"@llvm-project//mlir:FuncDialect",
440+
"@llvm-project//mlir:FromLLVMIRTranslation",
438441
"@llvm-project//mlir:GPUDialect",
439442
"@llvm-project//mlir:LinalgDialect",
440443
"@llvm-project//mlir:LLVMDialect",

0 commit comments

Comments
 (0)