Skip to content

Commit 719d8b8

Browse files
committed
Auto merge of rust-lang#136413 - EnzymeAD:fix-autodiff-comptime-regression, r=<try>
test autodiff compile time fixes Tries to fix the regression from rust-lang#133429
2 parents 8239a37 + 199ef41 commit 719d8b8

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

compiler/rustc_codegen_ssa/src/back/write.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ fn generate_lto_work<B: ExtraBackendMethods>(
403403
assert!(needs_thin_lto.is_empty());
404404
let mut module =
405405
B::run_fat_lto(cgcx, needs_fat_lto, import_only_modules).unwrap_or_else(|e| e.raise());
406-
if cgcx.lto == Lto::Fat {
406+
if cgcx.lto == Lto::Fat && !autodiff.is_empty() {
407407
let config = cgcx.config(ModuleKind::Regular);
408408
module = unsafe { module.autodiff(cgcx, autodiff, config).unwrap() };
409409
}

compiler/rustc_monomorphize/src/partitioning.rs

+5-9
Original file line numberDiff line numberDiff line change
@@ -1179,23 +1179,19 @@ fn collect_and_partition_mono_items(tcx: TyCtxt<'_>, (): ()) -> MonoItemPartitio
11791179
}
11801180
}
11811181

1182+
let mut autodiff_mono_items: Vec<_> = vec![];
11821183
let mono_items: DefIdSet = items
11831184
.iter()
11841185
.filter_map(|mono_item| match *mono_item {
1185-
MonoItem::Fn(ref instance) => Some(instance.def_id()),
1186+
MonoItem::Fn(ref instance) => {
1187+
autodiff_mono_items.push((mono_item, instance));
1188+
Some(instance.def_id())
1189+
}
11861190
MonoItem::Static(def_id) => Some(def_id),
11871191
_ => None,
11881192
})
11891193
.collect();
11901194

1191-
let autodiff_mono_items: Vec<_> = items
1192-
.iter()
1193-
.filter_map(|item| match *item {
1194-
MonoItem::Fn(ref instance) => Some((item, instance)),
1195-
_ => None,
1196-
})
1197-
.collect();
1198-
11991195
let autodiff_items =
12001196
autodiff::find_autodiff_source_functions(tcx, &usage_map, autodiff_mono_items);
12011197
let autodiff_items = tcx.arena.alloc_from_iter(autodiff_items);

0 commit comments

Comments
 (0)