aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_stmt.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-07-24 20:22:50 +0100
committergingerBill <bill@gingerbill.org>2022-07-24 20:22:50 +0100
commite6ab4f48567175cc192a658fb6d7b067e38912d8 (patch)
tree0090f00932eff38514622702419322340ed4fd1b /src/llvm_backend_stmt.cpp
parentc8ab1b7ee1b1ba6444a057c6afa6a9d6eb7a7dae (diff)
Force memset instead of store zeroinitializer when the value is large
Diffstat (limited to 'src/llvm_backend_stmt.cpp')
-rw-r--r--src/llvm_backend_stmt.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/llvm_backend_stmt.cpp b/src/llvm_backend_stmt.cpp
index a8f543c1f..f131bb3db 100644
--- a/src/llvm_backend_stmt.cpp
+++ b/src/llvm_backend_stmt.cpp
@@ -2082,7 +2082,8 @@ void lb_build_stmt(lbProcedure *p, Ast *node) {
lbAddr lval = {};
if (!is_blank_ident(name)) {
Entity *e = entity_of_node(name);
- bool zero_init = true; // Always do it
+ // bool zero_init = true; // Always do it
+ bool zero_init = vd->values.count == 0;
lval = lb_add_local(p, e->type, e, zero_init);
}
array_add(&lvals, lval);