From 0ebc2add030d224d59c0b8961dfa75a1f9d13b91 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 17 Sep 2022 12:56:03 +0100 Subject: Use a cache when generating the map header to minimize stack wastage --- src/llvm_backend_proc.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/llvm_backend_proc.cpp') diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index 8bbbb0c56..9e8158a88 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -121,8 +121,9 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity, bool ignore_body) p->branch_blocks.allocator = a; p->context_stack.allocator = a; p->scope_stack.allocator = a; - map_init(&p->selector_values, a, 0); - map_init(&p->selector_addr, a, 0); + map_init(&p->selector_values, a, 0); + map_init(&p->selector_addr, a, 0); + map_init(&p->map_header_cache, a, 0); if (p->is_foreign) { lb_add_foreign_library_path(p->module, entity->Procedure.foreign_library); -- cgit v1.2.3 From 4d512c2cf647bdd46f30746cd3544632bfaa8273 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 17 Sep 2022 13:40:29 +0100 Subject: Correct `lb_gen_map_header` initialization --- src/llvm_backend_proc.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/llvm_backend_proc.cpp') diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index 9e8158a88..17ed9c2a6 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -381,6 +381,8 @@ lbProcedure *lb_create_dummy_procedure(lbModule *m, String link_name, Type *type lb_add_proc_attribute_at_index(p, offset+parameter_index, "nocapture"); } + map_init(&p->map_header_cache, heap_allocator(), 0); + return p; } -- cgit v1.2.3