aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_expr.cpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-09-28 22:50:36 +0100
committergingerBill <gingerBill@users.noreply.github.com>2025-09-28 22:50:36 +0100
commitcbab97fbd74834ef4b06126b8a6787479e177b24 (patch)
treef981be5eefe237f8828e7b2b21d543cd501ed971 /src/llvm_backend_expr.cpp
parent17c9e1d76b3ff4a3cb2edb3dc0b6b070adaef91e (diff)
Use `memcpy` for local constant slice arrays from a global constant
Diffstat (limited to 'src/llvm_backend_expr.cpp')
-rw-r--r--src/llvm_backend_expr.cpp18
1 files changed, 0 insertions, 18 deletions
diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp
index 0e8562194..187c34595 100644
--- a/src/llvm_backend_expr.cpp
+++ b/src/llvm_backend_expr.cpp
@@ -2495,13 +2495,6 @@ gb_internal lbValue lb_emit_conv(lbProcedure *p, lbValue value, Type *t) {
Type *vt = dst->Union.variants[0];
if (internal_check_is_assignable_to(src_type, vt)) {
value = lb_emit_conv(p, value, vt);
- if (lb_is_const(value)) {
- LLVMValueRef res = lb_construct_const_union(m, value.value, vt, t);
- if (res != nullptr) {
- return {res, t};
- }
- }
-
lbAddr parent = lb_add_local_generated(p, t, true);
lb_emit_store_union_variant(p, parent.addr, value, vt);
return lb_addr_load(p, parent);
@@ -2509,19 +2502,11 @@ gb_internal lbValue lb_emit_conv(lbProcedure *p, lbValue value, Type *t) {
}
for (Type *vt : dst->Union.variants) {
if (src_type == t_llvm_bool && is_type_boolean(vt)) {
- value = lb_emit_conv(p, value, vt);
- if (lb_try_construct_const_union(m, &value, vt, t)) {
- return value;
- }
-
lbAddr parent = lb_add_local_generated(p, t, true);
lb_emit_store_union_variant(p, parent.addr, value, vt);
return lb_addr_load(p, parent);
}
if (are_types_identical(src_type, vt)) {
- if (lb_try_construct_const_union(m, &value, vt, t)) {
- return value;
- }
lbAddr parent = lb_add_local_generated(p, t, true);
lb_emit_store_union_variant(p, parent.addr, value, vt);
return lb_addr_load(p, parent);
@@ -2559,9 +2544,6 @@ gb_internal lbValue lb_emit_conv(lbProcedure *p, lbValue value, Type *t) {
if (valid_count == 1) {
Type *vt = dst->Union.variants[first_success_index];
value = lb_emit_conv(p, value, vt);
- if (lb_try_construct_const_union(m, &value, vt, t)) {
- return value;
- }
lbAddr parent = lb_add_local_generated(p, t, true);
lb_emit_store_union_variant(p, parent.addr, value, vt);
return lb_addr_load(p, parent);