Skip to content

Commit fe37339

Browse files
committed
move offload checks into the step, still copy files
1 parent 4dcce57 commit fe37339

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

src/bootstrap/src/core/build_steps/compile.rs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1441,10 +1441,7 @@ fn rustc_llvm_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetSelect
14411441
cargo.env("LLVM_ENZYME", "1");
14421442
}
14431443
let llvm::LlvmResult { host_llvm_config, .. } = builder.ensure(llvm::Llvm { target });
1444-
if builder.config.llvm_offload
1445-
&& !builder.config.llvm_profile_generate
1446-
&& builder.config.llvm_profile_use.is_none()
1447-
{
1444+
if builder.config.llvm_offload {
14481445
builder.ensure(llvm::OmpOffload { target });
14491446
cargo.env("LLVM_OFFLOAD", "1");
14501447
}
@@ -2219,11 +2216,7 @@ impl Step for Assemble {
22192216
}
22202217
}
22212218

2222-
if builder.config.llvm_offload
2223-
&& !builder.config.dry_run()
2224-
&& !builder.config.llvm_profile_generate
2225-
&& builder.config.llvm_profile_use.is_none()
2226-
{
2219+
if builder.config.llvm_offload && !builder.config.dry_run() {
22272220
debug!("`llvm_offload` requested");
22282221
let offload_install = builder.ensure(llvm::OmpOffload { target: build_compiler.host });
22292222
if let Some(_llvm_config) = builder.llvm_config(builder.config.host_target) {

src/bootstrap/src/core/build_steps/llvm.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -936,9 +936,10 @@ impl Step for OmpOffload {
936936
if builder.config.dry_run() {
937937
return builder.config.tempdir().join("llvm-offload-dry-run");
938938
}
939+
939940
let target = self.target;
940941

941-
let LlvmResult { host_llvm_config, .. } = builder.ensure(Llvm { target: self.target });
942+
let LlvmResult { host_llvm_config, .. } = builder.ensure(Llvm { target });
942943

943944
// Running cmake twice in the same folder is known to cause issues, like deleting existing
944945
// binaries. We therefore write our offload artifacts into it's own subfolder. We use a
@@ -949,6 +950,14 @@ impl Step for OmpOffload {
949950
std::fs::DirBuilder::new().create(&out_dir).unwrap();
950951
}
951952

953+
if !builder.config.llvm_offload
954+
|| builder.config.dry_run()
955+
|| builder.config.llvm_profile_generate
956+
|| builder.config.llvm_profile_use.is_some()
957+
{
958+
return out_dir;
959+
}
960+
952961
// Offload/OpenMP are just subfolders of LLVM, so we can use the LLVM sha.
953962
static STAMP_HASH_MEMO: OnceLock<String> = OnceLock::new();
954963
let smart_stamp_hash = STAMP_HASH_MEMO.get_or_init(|| {

0 commit comments

Comments
 (0)