MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / GetIRModuleHooks

Function GetIRModuleHooks

tensorflow/compiler/xla/service/cpu/cpu_compiler.cc:431–457  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

429}
430
431std::pair<LLVMCompiler::ModuleHook, LLVMCompiler::ModuleHook> GetIRModuleHooks(
432 const HloModule& hlo_module,
433 const LLVMCompiler::ModuleHook& user_pre_optimization_hook,
434 const LLVMCompiler::ModuleHook& user_post_optimization_hook) {
435 // Create the IR hooks. If applicable, each IR hook does the following:
436 //
437 // * Calls the user supplied module hook.
438 // * Writes out the IR to a file in the output directory designated by
439 // --xla_dump_to
440 const HloModule* hlo_module_ptr = &hlo_module;
441 auto hook = [user_pre_optimization_hook, user_post_optimization_hook,
442 hlo_module_ptr](bool optimized,
443 const llvm::Module& llvm_module) {
444 const auto& user_hook =
445 !optimized ? user_pre_optimization_hook : user_post_optimization_hook;
446 if (user_hook) {
447 user_hook(llvm_module);
448 }
449 llvm_ir::DumpIrIfEnabled(*hlo_module_ptr, llvm_module, optimized);
450 };
451 return {[hook](const llvm::Module& llvm_module) {
452 return hook(/*optimized=*/false, llvm_module);
453 },
454 [hook](const llvm::Module& llvm_module) {
455 return hook(/*optimized=*/true, llvm_module);
456 }};
457}
458
459Status VerifyLlvmModule(const llvm::Module& llvm_module) {
460 XLA_SCOPED_LOGGING_TIMER("CpuCompiler - Running LLVM verifier");

Callers 2

RunBackendMethod · 0.85
CompileAheadOfTimeMethod · 0.85

Calls 1

DumpIrIfEnabledFunction · 0.85

Tested by

no test coverage detected