diff options
| author | gingerBill <bill@gingerbill.org> | 2023-03-16 15:04:57 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2023-03-16 15:04:57 +0000 |
| commit | c1c7128634db88915860ed56f7a1e45317f7c02d (patch) | |
| tree | 89149d5487fe51ee63abeef16e3b3f5d4a92c375 /src/llvm_backend_proc.cpp | |
| parent | e05944601a07e6cb9c0ec84f80ca4ca3511c84ea (diff) | |
Minimize severe memory usage by enforcing the `heap_allocator()` in places
Diffstat (limited to 'src/llvm_backend_proc.cpp')
| -rw-r--r-- | src/llvm_backend_proc.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index b9f2c2db2..5fd860b29 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -121,18 +121,21 @@ gb_internal lbProcedure *lb_create_procedure(lbModule *m, Entity *entity, bool i p->branch_blocks.allocator = a; p->context_stack.allocator = a; p->scope_stack.allocator = a; - map_init(&p->selector_values, 0); - map_init(&p->selector_addr, 0); - map_init(&p->tuple_fix_map, 0); + // map_init(&p->selector_values, 0); + // map_init(&p->selector_addr, 0); + // map_init(&p->tuple_fix_map, 0); if (p->is_foreign) { lb_add_foreign_library_path(p->module, entity->Procedure.foreign_library); } - char *c_link_name = alloc_cstring(permanent_allocator(), p->name); LLVMTypeRef func_type = lb_get_procedure_raw_type(m, p->type); - p->value = LLVMAddFunction(m->mod, c_link_name, func_type); + { + TEMPORARY_ALLOCATOR_GUARD(); + char *c_link_name = alloc_cstring(temporary_allocator(), p->name); + p->value = LLVMAddFunction(m->mod, c_link_name, func_type); + } lb_ensure_abi_function_type(m, p); lb_add_function_type_attributes(p->value, p->abi_function_type, p->abi_function_type->calling_convention); |