diff options
author | James Y Knight <jyknight@google.com> | 2015-05-08 13:47:01 +0000 |
---|---|---|
committer | James Y Knight <jyknight@google.com> | 2015-05-08 13:47:01 +0000 |
commit | 284e7b3d6c5a285fc826aa4c51b5ae0f03282c5c (patch) | |
tree | c13a63b0a291e2d02abb612d4f9d4b9c0877df92 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 9d3932bf967214c15161c26380dbfb99f50fe2a7 (diff) | |
download | llvm-284e7b3d6c5a285fc826aa4c51b5ae0f03282c5c.zip llvm-284e7b3d6c5a285fc826aa4c51b5ae0f03282c5c.tar.gz llvm-284e7b3d6c5a285fc826aa4c51b5ae0f03282c5c.tar.bz2 |
Fix alignment checks in MergeConsecutiveStores.
1) check whether the alignment of the memory is sufficient for the
*merged* store or load to be efficient.
Not doing so can result in some ridiculously poor code generation, if
merging creates a vector operation which must be aligned but isn't.
2) DON'T check that the alignment of each load/store is equal. If
you're merging 2 4-byte stores, the first *might* have 8-byte
alignment, but the second certainly will have 4-byte alignment. We do
want to allow those to be merged.
llvm-svn: 236850
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions