aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.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.cpp
parente05944601a07e6cb9c0ec84f80ca4ca3511c84ea (diff)
Minimize severe memory usage by enforcing the `heap_allocator()` in places
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 6d35615a3..543f5d833 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -1192,15 +1192,16 @@ gb_internal lbProcedure *lb_create_cleanup_runtime(lbModule *main_module) { // C
gb_internal WORKER_TASK_PROC(lb_generate_procedures_and_types_per_module) {
lbModule *m = cast(lbModule *)data;
for (Entity *e : m->global_procedures_and_types_to_create) {
- String mangled_name = lb_get_entity_name(m, e);
-
- switch (e->kind) {
- case Entity_TypeName:
+ if (e->kind == Entity_TypeName) {
+ (void)lb_get_entity_name(m, e);
lb_type(m, e->type);
- break;
- case Entity_Procedure:
+ }
+ }
+
+ for (Entity *e : m->global_procedures_and_types_to_create) {
+ if (e->kind == Entity_Procedure) {
+ (void)lb_get_entity_name(m, e);
array_add(&m->procedures_to_generate, lb_create_procedure(m, e));
- break;
}
}
return 0;