diff options
author | Fabian Ritter <fabian.ritter@amd.com> | 2024-07-10 11:29:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-10 11:29:26 +0200 |
commit | 6c84bba218f7b64f2257405ac30a3c6948df8373 (patch) | |
tree | 4db7df5bf8a154fcc3ceaca88f5606c5fac2edc9 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 42672199ec2e2a1d38c3f52305e3846b0ec681ed (diff) | |
download | llvm-6c84bba218f7b64f2257405ac30a3c6948df8373.zip llvm-6c84bba218f7b64f2257405ac30a3c6948df8373.tar.gz llvm-6c84bba218f7b64f2257405ac30a3c6948df8373.tar.bz2 |
[LowerMemIntrinsics] Use correct alignment in residual loop for variable llvm.memcpy (#97998)
Memcpy intrinsics with statically unknown loop sizes are lowered with
two load/store loops: one with access widths specified by the target,
and a residual loop that copies remaining bytes individually.
As the residual loop operates byte-wise, its accesses are only
1-aligned. However, we currently use the alignment that is optimal for
the first loop in both, which is unsound. With this patch, we use the
correct alignment in the residual loop.
The lowering of memcpy with a static size already handles alignments for
the residual correctly.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions