aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_debug.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2025-05-07 14:26:10 +0100
committergingerBill <bill@gingerbill.org>2025-05-07 14:26:10 +0100
commitea65a7b870736311747c517970df3921d227e024 (patch)
tree6da68ab4d8da4847f3cd817d37f588e123b8e196 /src/llvm_backend_debug.cpp
parent0c4046b9ea78af278a1c93bc61f9adf4b02a973c (diff)
Move raddbg string stuff to a thread-safe queue
Diffstat (limited to 'src/llvm_backend_debug.cpp')
-rw-r--r--src/llvm_backend_debug.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/llvm_backend_debug.cpp b/src/llvm_backend_debug.cpp
index 0358031d1..464d50cac 100644
--- a/src/llvm_backend_debug.cpp
+++ b/src/llvm_backend_debug.cpp
@@ -18,6 +18,25 @@ gb_internal void lb_set_llvm_metadata(lbModule *m, void *key, LLVMMetadataRef va
}
}
+gb_internal void lb_add_raddbg_string(lbModule *m, String const &str) {
+ mpsc_enqueue(&m->gen->raddebug_section_strings, copy_string(permanent_allocator(), str));
+}
+
+gb_internal void lb_add_raddbg_string(lbModule *m, char const *cstr) {
+ mpsc_enqueue(&m->gen->raddebug_section_strings, copy_string(permanent_allocator(), make_string_c(cstr)));
+}
+
+gb_internal void lb_add_raddbg_string(lbModule *m, char const *a, char const *b) {
+ String str = concatenate_strings(permanent_allocator(), make_string_c(a), make_string_c(b));
+ mpsc_enqueue(&m->gen->raddebug_section_strings, str);
+}
+
+gb_internal void lb_add_raddbg_string(lbModule *m, char const *a, char const *b, char const *c) {
+ String str = concatenate3_strings(permanent_allocator(), make_string_c(a), make_string_c(b), make_string_c(c));
+ mpsc_enqueue(&m->gen->raddebug_section_strings, str);
+}
+
+
gb_internal LLVMMetadataRef lb_get_current_debug_scope(lbProcedure *p) {
GB_ASSERT_MSG(p->debug_info != nullptr, "missing debug information for %.*s", LIT(p->name));