aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_general.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-09-14 17:57:12 +0100
committergingerBill <bill@gingerbill.org>2022-09-14 17:57:12 +0100
commita3c04db82831d8d56e4aa4be7c7de6f53286682c (patch)
tree0fd8a7d89f69438d3fab1e55ba72f6106ed426f7 /src/llvm_backend_general.cpp
parent3ea7af4c9ca716baf48bca029f585d2b9a934ac9 (diff)
Revert "Just get the value directly and store it in another global variable"
This reverts commit 190c3ab0cdc031e45d450e64715452fb2e576d1e.
Diffstat (limited to 'src/llvm_backend_general.cpp')
-rw-r--r--src/llvm_backend_general.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp
index 94429e410..1f8fccdcb 100644
--- a/src/llvm_backend_general.cpp
+++ b/src/llvm_backend_general.cpp
@@ -926,7 +926,11 @@ void lb_emit_store(lbProcedure *p, lbValue ptr, lbValue value) {
return;
} else if (LLVMIsConstant(value.value)) {
lbAddr addr = lb_add_global_generated(p->module, value.type, value, nullptr);
- LLVMValueRef global_data = lb_make_global_truly_private(addr);
+ LLVMValueRef global_data = addr.addr.value;
+ // make it truly private data
+ LLVMSetLinkage(global_data, LLVMPrivateLinkage);
+ LLVMSetUnnamedAddress(global_data, LLVMGlobalUnnamedAddr);
+ LLVMSetGlobalConstant(global_data, true);
LLVMValueRef dst_ptr = ptr.value;
LLVMValueRef src_ptr = global_data;
@@ -2665,15 +2669,6 @@ lbValue lb_find_procedure_value_from_entity(lbModule *m, Entity *e) {
return {};
}
-LLVMValueRef lb_make_global_truly_private(lbAddr const &addr) {
- LLVMValueRef global_data = addr.addr.value;
- // make it truly private data
- LLVMSetLinkage(global_data, LLVMPrivateLinkage);
- LLVMSetUnnamedAddress(global_data, LLVMGlobalUnnamedAddr);
- LLVMSetGlobalConstant(global_data, true);
- return global_data;
-}
-
lbAddr lb_add_global_generated(lbModule *m, Type *type, lbValue value, Entity **entity_) {
GB_ASSERT(type != nullptr);
type = default_type(type);