aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.hpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-09-19 14:15:25 +0100
committergingerBill <gingerBill@users.noreply.github.com>2025-09-19 14:15:25 +0100
commit6bca1475edb8e2aec4bcbe942835bcc54f9e837e (patch)
treef3722ed3c238c49b515b67b3723f366a020652f3 /src/llvm_backend.hpp
parentee3b10335b09181808fd98ccf46fe9369a11db13 (diff)
Convert `procedures_to_generate` to a queue
Diffstat (limited to 'src/llvm_backend.hpp')
-rw-r--r--src/llvm_backend.hpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/llvm_backend.hpp b/src/llvm_backend.hpp
index 7fe4651bb..6d94df399 100644
--- a/src/llvm_backend.hpp
+++ b/src/llvm_backend.hpp
@@ -186,10 +186,13 @@ struct lbModule {
StringMap<lbProcedure *> gen_procs; // key is the canonicalized name
- Array<lbProcedure *> procedures_to_generate;
+ MPSCQueue<lbProcedure *> procedures_to_generate;
Array<Entity *> global_procedures_to_create;
Array<Entity *> global_types_to_create;
+ BlockingMutex generated_procedures_mutex;
+ Array<lbProcedure *> generated_procedures;
+
lbProcedure *curr_procedure;
LLVMBuilderRef const_dummy_builder;
@@ -238,6 +241,8 @@ struct lbGenerator : LinkerData {
PtrMap<LLVMContextRef, lbModule *> modules_through_ctx;
lbModule default_module;
+ lbModule *equal_module;
+
isize used_module_count;
lbProcedure *startup_runtime;