Skip to content

Commit

Permalink
Rollback [XLA:CPU] Make loop unrolling on by default in IrCompiler.
Browse files Browse the repository at this point in the history
Reverts d50837c

PiperOrigin-RevId: 723495499
  • Loading branch information
WillFroom authored and Google-ML-Automation committed Feb 5, 2025
1 parent 383d9bd commit 46f8cf0
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion xla/backends/cpu/codegen/ir_compiler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ llvm::Expected<std::unique_ptr<llvm::MemoryBuffer>> IrCompiler::operator()(
pto.LoopVectorization = !options_.optimize_for_size;
pto.SLPVectorization =
!options_.optimize_for_size && !options_.disable_slp_vectorizer;
pto.LoopUnrolling = !options_.disable_loop_unrolling;
pto.LoopUnrolling = options_.enable_loop_unrolling;

llvm::LoopAnalysisManager lam;
llvm::FunctionAnalysisManager fam;
Expand Down
2 changes: 1 addition & 1 deletion xla/backends/cpu/codegen/ir_compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class IrCompiler : public llvm::orc::IRCompileLayer::IRCompiler {
bool disable_expensive_passes = false;
bool disable_slp_vectorizer = false;

bool disable_loop_unrolling = false;
bool enable_loop_unrolling = false;

bool dfsan_enabled = false;
std::vector<std::string> dfsan_abi_list_files;
Expand Down
2 changes: 1 addition & 1 deletion xla/backends/cpu/testlib/kernel_runner.cc
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ absl::StatusOr<JitCompiler> KernelRunner::CreateJitCompiler(
/*disable_expensive_passes=*/
debug_options.xla_llvm_disable_expensive_passes(),
/*slp_vectorizer_disabled=*/options::SlpVectorizerDisabled(config),
/*disable_loop_unrolling=*/options::DisableLoopUnrolling(config),
/*enable_loop_unrolling=*/options::EnableLoopUnrolling(config),
};

IrCompiler::CompilationHooks ir_compiler_hooks;
Expand Down
6 changes: 3 additions & 3 deletions xla/service/cpu/cpu_compiler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1354,7 +1354,7 @@ CpuCompiler::CompileCpuExecutable(std::unique_ptr<HloModule> module) {
/*disable_expensive_passes=*/
debug_options.xla_llvm_disable_expensive_passes(),
/*slp_vectorizer_disabled=*/options::SlpVectorizerDisabled(config),
/*disable_loop_unrolling=*/options::DisableLoopUnrolling(config),
/*enable_loop_unrolling=*/options::EnableLoopUnrolling(config),
};

// Compiler hooks to intercept compiled LLVM IR modules.
Expand Down Expand Up @@ -1956,8 +1956,8 @@ CpuCompiler::CompileAheadOfTime(std::unique_ptr<HloModuleGroup> module_group,
module->config().debug_options().xla_llvm_disable_expensive_passes(),
/*disable_slp_vectorizer=*/
options::SlpVectorizerDisabled(module->config()),
/*disable_loop_unrolling=*/
options::DisableLoopUnrolling(module->config()),
/*enable_loop_unrolling=*/
options::EnableLoopUnrolling(module->config()),
/*dfsan_enabled=*/aot_options.sanitize_dataflow(),
/*dfsan_abilists_enabled=*/aot_options.sanitize_abilists_dataflow()};

Expand Down
6 changes: 3 additions & 3 deletions xla/service/cpu/cpu_options.cc
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const char* const kXlaForceEnableExperimentalLlvmIrGemm =
"xla_force_enable_experimental_llvm_ir_gemm";
const char* const kLlvmIrGemmTileSize = "xla_llvm_ir_gemm_tile_size";
const char* const kDisableSlpVectorizer = "xla_cpu_disable_slp_vectorizer";
const char* const kDisableLoopUnrolling = "xla_cpu_disable_loop_unrolling";
const char* const kEnableLoopUnrolling = "xla_cpu_enable_loop_unrolling";

} // namespace

Expand All @@ -61,10 +61,10 @@ bool SlpVectorizerDisabled(const HloModuleConfig& config) {
return extra_options_map.count(kDisableSlpVectorizer) > 0;
}

bool DisableLoopUnrolling(const HloModuleConfig& config) {
bool EnableLoopUnrolling(const HloModuleConfig& config) {
const auto& extra_options_map =
config.debug_options().xla_backend_extra_options();
return extra_options_map.count(kDisableLoopUnrolling) > 0;
return extra_options_map.count(kEnableLoopUnrolling) > 0;
}

std::optional<int64_t> LlvmIrGemvTilingFactor(const HloModuleConfig& config) {
Expand Down
2 changes: 1 addition & 1 deletion xla/service/cpu/cpu_options.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ namespace options {
bool OptimizeForSizeRequested(const HloModuleConfig& config);
bool VectorizedReduceDisabled(const HloModuleConfig& config);
bool SlpVectorizerDisabled(const HloModuleConfig& config);
bool DisableLoopUnrolling(const HloModuleConfig& config);
bool EnableLoopUnrolling(const HloModuleConfig& config);
bool ForceEnableExperimentalLlvmIrGemm(const HloModuleConfig& config);
std::optional<int64_t> LlvmIrGemvTilingFactor(const HloModuleConfig& config);
std::optional<std::tuple<int64_t, int64_t, int64_t>> LlvmIrGemmTileSize(
Expand Down

0 comments on commit 46f8cf0

Please sign in to comment.