standalone: Emit IRRT IR alongside main

Allows all dependencies to be bundled into main.bc for execution.
This commit is contained in:
David Mak 2023-09-29 16:41:32 +08:00
parent f9aceb24ee
commit 60305b0510
1 changed files with 4 additions and 1 deletions

View File

@ -339,6 +339,10 @@ fn main() {
let main = context
.create_module_from_ir(MemoryBuffer::create_from_memory_range(&buffers[0], "main"))
.unwrap();
// Emit bitcode with main and IRRT dependencies first before linking in the other modules.
// This helps separate the input generated from the input and the IRRT utilities.
main.link_in_module(load_irrt(&context)).unwrap();
if emit_llvm {
main.write_bitcode_to_path(Path::new("main.bc"));
}
@ -354,7 +358,6 @@ fn main() {
main.link_in_module(other).unwrap();
}
main.link_in_module(load_irrt(&context)).unwrap();
let mut function_iter = main.get_first_function();
while let Some(func) = function_iter {