aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-10-29 16:14:55 +0000
committergingerBill <gingerBill@users.noreply.github.com>2025-10-29 16:14:55 +0000
commitf77215982addf8d66e985fd35c746917a821adc4 (patch)
treef1a68b04b9df49b11de4b670cc7a007bf8f8b4d3
parent9b788b919ae60b6e160e1afa02a9f6af3e3793b9 (diff)
Just retry again with `lb_generate_missing_procedures`core_os2_revamp
-rw-r--r--src/llvm_backend.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 7742fb39d..22a481187 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -2553,6 +2553,8 @@ gb_internal WORKER_TASK_PROC(lb_generate_missing_procedures_to_check_worker_proc
}
gb_internal void lb_generate_missing_procedures(lbGenerator *gen, bool do_threading) {
+ isize retry_count = 0;
+retry:;
if (do_threading) {
for (auto const &entry : gen->modules) {
lbModule *m = entry.value;
@@ -2570,6 +2572,14 @@ gb_internal void lb_generate_missing_procedures(lbGenerator *gen, bool do_thread
for (auto const &entry : gen->modules) {
lbModule *m = entry.value;
+ if (m->missing_procedures_to_check.count != 0) {
+ if (retry_count > gen->modules.count) {
+ GB_ASSERT(m->missing_procedures_to_check.count == 0);
+ }
+
+ retry_count += 1;
+ goto retry;
+ }
GB_ASSERT(m->missing_procedures_to_check.count == 0);
GB_ASSERT(m->procedures_to_generate.count == 0);
}