Skip to content

Commit 53e1043

Browse files
committed
Extract emit_allocator_module
1 parent 1d940ad commit 53e1043

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

src/driver/aot.rs

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,29 @@ fn emit_metadata_module(tcx: TyCtxt<'_>, metadata: &EncodedMetadata) -> Compiled
622622
}
623623
}
624624

625+
fn emit_allocator_module(tcx: TyCtxt<'_>) -> Option<CompiledModule> {
626+
let mut allocator_module = make_module(tcx.sess, "allocator_shim".to_string());
627+
let created_alloc_shim = crate::allocator::codegen(tcx, &mut allocator_module);
628+
629+
if created_alloc_shim {
630+
let product = allocator_module.finish();
631+
632+
match emit_module(
633+
tcx.output_filenames(()),
634+
&tcx.sess.prof,
635+
product.object,
636+
ModuleKind::Allocator,
637+
"allocator_shim".to_owned(),
638+
&crate::debuginfo::producer(tcx.sess),
639+
) {
640+
Ok(allocator_module) => Some(allocator_module),
641+
Err(err) => tcx.dcx().fatal(err),
642+
}
643+
} else {
644+
None
645+
}
646+
}
647+
625648
pub(crate) fn run_aot(
626649
tcx: TyCtxt<'_>,
627650
metadata: EncodedMetadata,
@@ -700,26 +723,7 @@ pub(crate) fn run_aot(
700723
modules
701724
});
702725

703-
let mut allocator_module = make_module(tcx.sess, "allocator_shim".to_string());
704-
let created_alloc_shim = crate::allocator::codegen(tcx, &mut allocator_module);
705-
706-
let allocator_module = if created_alloc_shim {
707-
let product = allocator_module.finish();
708-
709-
match emit_module(
710-
tcx.output_filenames(()),
711-
&tcx.sess.prof,
712-
product.object,
713-
ModuleKind::Allocator,
714-
"allocator_shim".to_owned(),
715-
&crate::debuginfo::producer(tcx.sess),
716-
) {
717-
Ok(allocator_module) => Some(allocator_module),
718-
Err(err) => tcx.dcx().fatal(err),
719-
}
720-
} else {
721-
None
722-
};
726+
let allocator_module = emit_allocator_module(tcx);
723727

724728
let metadata_module =
725729
if need_metadata_module { Some(emit_metadata_module(tcx, &metadata)) } else { None };

0 commit comments

Comments
 (0)