# Whether or not to specify `-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=YES`
#allow-old-toolchain = false
+# Whether to include the Polly optimizer.
+#polly = false
+
# =============================================================================
# General build configuration options
# =============================================================================
pub llvm_version_suffix: Option<String>,
pub llvm_use_linker: Option<String>,
pub llvm_allow_old_toolchain: Option<bool>,
+ pub llvm_polly: Option<bool>,
pub llvm_from_ci: bool,
pub use_lld: bool,
use_libcxx: Option<bool>,
use_linker: Option<String>,
allow_old_toolchain: Option<bool>,
+ polly: Option<bool>,
download_ci_llvm: Option<StringOrBool>,
}
set(&mut config.llvm_use_libcxx, llvm.use_libcxx);
config.llvm_use_linker = llvm.use_linker.clone();
config.llvm_allow_old_toolchain = llvm.allow_old_toolchain;
+ config.llvm_polly = llvm.polly;
config.llvm_from_ci = match llvm.download_ci_llvm {
Some(StringOrBool::String(s)) => {
assert!(s == "if-available", "unknown option `{}` for download-ci-llvm", s);
check_ci_llvm!(llvm.use_libcxx);
check_ci_llvm!(llvm.use_linker);
check_ci_llvm!(llvm.allow_old_toolchain);
+ check_ci_llvm!(llvm.polly);
// CI-built LLVM is shared
config.llvm_link_shared = true;
enabled_llvm_projects.push("compiler-rt");
}
+ if let Some(true) = builder.config.llvm_polly {
+ enabled_llvm_projects.push("polly");
+ }
+
// We want libxml to be disabled.
// See https://github.com/rust-lang/rust/pull/50104
cfg.define("LLVM_ENABLE_LIBXML2", "OFF");