aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/compiler/xla/service/cpu/simple_orc_jit.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/compiler/xla/service/cpu/simple_orc_jit.cc')
-rw-r--r--tensorflow/compiler/xla/service/cpu/simple_orc_jit.cc25
1 files changed, 17 insertions, 8 deletions
diff --git a/tensorflow/compiler/xla/service/cpu/simple_orc_jit.cc b/tensorflow/compiler/xla/service/cpu/simple_orc_jit.cc
index ff6f0a9d4e..62c97e5641 100644
--- a/tensorflow/compiler/xla/service/cpu/simple_orc_jit.cc
+++ b/tensorflow/compiler/xla/service/cpu/simple_orc_jit.cc
@@ -73,20 +73,29 @@ llvm::StringRef GetHostCpuName() {
}
} // namespace
+/*static*/ std::unique_ptr<llvm::TargetMachine>
+SimpleOrcJIT::InferTargetMachineForJIT(
+ const llvm::TargetOptions& target_options,
+ llvm::CodeGenOpt::Level opt_level) {
+ std::unique_ptr<llvm::TargetMachine> target_machine(
+ llvm::EngineBuilder()
+ .setTargetOptions(target_options)
+ .setOptLevel(opt_level)
+ .selectTarget(
+ /*TargetTriple=*/llvm::Triple(), /*MArch=*/"",
+ /*MCPU=*/GetHostCpuName(),
+ /*MAttrs=*/DetectMachineAttributes()));
+ CHECK(target_machine != nullptr);
+ return target_machine;
+}
+
SimpleOrcJIT::SimpleOrcJIT(const llvm::TargetOptions& target_options,
llvm::CodeGenOpt::Level opt_level,
bool optimize_for_size, bool enable_fast_math,
bool disable_expensive_passes,
LLVMCompiler::ModuleHook pre_optimization_hook,
LLVMCompiler::ModuleHook post_optimization_hook)
- : target_machine_(
- CHECK_NOTNULL(llvm::EngineBuilder()
- .setTargetOptions(target_options)
- .setOptLevel(opt_level)
- .selectTarget(
- /*TargetTriple=*/llvm::Triple(), /*MArch=*/"",
- /*MCPU=*/GetHostCpuName(),
- /*MAttrs=*/DetectMachineAttributes()))),
+ : target_machine_(InferTargetMachineForJIT(target_options, opt_level)),
disassembler_(*target_machine_),
data_layout_(target_machine_->createDataLayout()),
symbol_resolver_(llvm::orc::createLegacyLookupResolver(