Skip to content

Commit e1dbd9c

Browse files
committed
move offload checks into the step, still copy files
1 parent e9ef6c0 commit e1dbd9c

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
@@ -1428,10 +1428,7 @@ fn rustc_llvm_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetSelect
14281428
cargo.env("LLVM_ENZYME", "1");
14291429
}
14301430
let llvm::LlvmResult { host_llvm_config, .. } = builder.ensure(llvm::Llvm { target });
1431-
if builder.config.llvm_offload
1432-
&& !builder.config.llvm_profile_generate
1433-
&& builder.config.llvm_profile_use.is_none()
1434-
{
1431+
if builder.config.llvm_offload {
14351432
builder.ensure(llvm::OmpOffload { target });
14361433
cargo.env("LLVM_OFFLOAD", "1");
14371434
}
@@ -2298,11 +2295,7 @@ impl Step for Assemble {
22982295
}
22992296
}
23002297

2301-
if builder.config.llvm_offload
2302-
&& !builder.config.dry_run()
2303-
&& !builder.config.llvm_profile_generate
2304-
&& builder.config.llvm_profile_use.is_none()
2305-
{
2298+
if builder.config.llvm_offload && !builder.config.dry_run() {
23062299
debug!("`llvm_offload` requested");
23072300
let offload_install = builder.ensure(llvm::OmpOffload { target: build_compiler.host });
23082301
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
@@ -935,9 +935,10 @@ impl Step for OmpOffload {
935935
if builder.config.dry_run() {
936936
return builder.config.tempdir().join("llvm-offload-dry-run");
937937
}
938+
938939
let target = self.target;
939940

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

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

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

0 commit comments

Comments
 (0)