Merge pull request #4836 from roc-lang/intern-layouts-2

Intern list element layouts and thread mut layout interner through LLVM backend
This commit is contained in:
Ayaz 2022-12-29 18:41:35 -06:00 committed by GitHub
commit ea53a50447
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 1482 additions and 670 deletions

View file

@ -102,7 +102,7 @@ pub fn gen_from_mono_module<'a>(
// TODO make this polymorphic in the llvm functions so it can be reused for another backend.
fn gen_from_mono_module_llvm<'a>(
arena: &'a bumpalo::Bump,
loaded: MonomorphizedModule<'a>,
mut loaded: MonomorphizedModule<'a>,
roc_file_path: &Path,
target: &target_lexicon::Triple,
code_gen_options: CodeGenOptions,
@ -168,7 +168,6 @@ fn gen_from_mono_module_llvm<'a>(
// Compile and add all the Procs before adding main
let env = roc_gen_llvm::llvm::build::Env {
arena,
layout_interner: &loaded.layout_interner,
builder: &builder,
dibuilder: &dibuilder,
compile_unit: &compile_unit,
@ -204,6 +203,7 @@ fn gen_from_mono_module_llvm<'a>(
roc_gen_llvm::llvm::build::build_procedures(
&env,
&mut loaded.layout_interner,
opt_level,
loaded.procedures,
entry_point,