Skip to content

Commit 6b2bf28

Browse files
author
Pindikura Ravindra
committed
ARROW-7399: [C++][Gandiva] set Mcpu based on host cpu
- llvm doesn't auto detect cpu features based on host cpu. so, explicitly set the same in EngineBuilder. Closes apache#6038 from pravindra/arrow-7399 and squashes the following commits: f99694a <Pindikura Ravindra> use static variable for getHostCpuName 7604eb0 <Pindikura Ravindra> ARROW-7399: set Mcpu based on host cpu Authored-by: Pindikura Ravindra <ravindra@dremio.com> Signed-off-by: Pindikura Ravindra <ravindra@dremio.com>
1 parent 0d00dec commit 6b2bf28

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

cpp/src/gandiva/engine.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ void Engine::InitOnce() {
9292
/// factory method to construct the engine.
9393
Status Engine::Make(std::shared_ptr<Configuration> config,
9494
std::unique_ptr<Engine>* engine) {
95+
static auto host_cpu_name = llvm::sys::getHostCPUName();
9596
std::unique_ptr<Engine> engine_obj(new Engine());
9697

9798
std::call_once(init_once_flag, [&engine_obj] { engine_obj->InitOnce(); });
@@ -105,6 +106,7 @@ Status Engine::Make(std::shared_ptr<Configuration> config,
105106
engine_obj->module_ = cg_module.get();
106107

107108
llvm::EngineBuilder engineBuilder(std::move(cg_module));
109+
engineBuilder.setMCPU(host_cpu_name);
108110
engineBuilder.setEngineKind(llvm::EngineKind::JIT);
109111
engineBuilder.setOptLevel(llvm::CodeGenOpt::Aggressive);
110112
engineBuilder.setErrorStr(&(engine_obj->llvm_error_));

0 commit comments

Comments
 (0)