aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_proc.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-03-16 15:04:57 +0000
committergingerBill <bill@gingerbill.org>2023-03-16 15:04:57 +0000
commitc1c7128634db88915860ed56f7a1e45317f7c02d (patch)
tree89149d5487fe51ee63abeef16e3b3f5d4a92c375 /src/llvm_backend_proc.cpp
parente05944601a07e6cb9c0ec84f80ca4ca3511c84ea (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.cpp13
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);