diff options
| author | gingerBill <bill@gingerbill.org> | 2021-10-25 00:46:50 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-10-25 00:46:50 +0100 |
| commit | 306bdf8869f2c9676e73acbf477a302c08137087 (patch) | |
| tree | 29c2ffeb7c00008bf44b83ef2a0ca55abcbbb153 /src/llvm_backend_general.cpp | |
| parent | 7a29f6cff0037ea9b90c0ec3f58fe62a68c2e971 (diff) | |
Update alignment rules for `matrix` types as a compromise to keep zero padding
Diffstat (limited to 'src/llvm_backend_general.cpp')
| -rw-r--r-- | src/llvm_backend_general.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp index 01221cad6..7aa7c7cdd 100644 --- a/src/llvm_backend_general.cpp +++ b/src/llvm_backend_general.cpp @@ -512,8 +512,7 @@ void lb_emit_slice_bounds_check(lbProcedure *p, Token token, lbValue low, lbValu } } -bool lb_try_update_alignment(lbValue ptr, unsigned alignment) { - LLVMValueRef addr_ptr = ptr.value; +bool lb_try_update_alignment(LLVMValueRef addr_ptr, unsigned alignment) { if (LLVMIsAGlobalValue(addr_ptr) || LLVMIsAAllocaInst(addr_ptr) || LLVMIsALoadInst(addr_ptr)) { if (LLVMGetAlignment(addr_ptr) < alignment) { if (LLVMIsAAllocaInst(addr_ptr) || LLVMIsAGlobalValue(addr_ptr)) { @@ -525,6 +524,11 @@ bool lb_try_update_alignment(lbValue ptr, unsigned alignment) { return false; } +bool lb_try_update_alignment(lbValue ptr, unsigned alignment) { + return lb_try_update_alignment(ptr.value, alignment); +} + + bool lb_try_vector_cast(lbModule *m, lbValue ptr, LLVMTypeRef *vector_type_) { Type *array_type = base_type(type_deref(ptr.type)); GB_ASSERT(is_type_array_like(array_type)); |