diff options
author | Sanjay Patel <spatel@rotateright.com> | 2015-08-14 17:53:40 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2015-08-14 17:53:40 +0000 |
commit | ed502905f7c285959c5555bc01f8af762dadb8d6 (patch) | |
tree | 3fd3da3e84329fb1b344b69c81712c44ff06a0b6 /llvm/lib/CodeGen/MachineCSE.cpp | |
parent | 06f0678010428b0c69612fdd32a59262dfe14d59 (diff) | |
download | bcm5719-llvm-ed502905f7c285959c5555bc01f8af762dadb8d6.tar.gz bcm5719-llvm-ed502905f7c285959c5555bc01f8af762dadb8d6.zip |
[x86] fix allowsMisalignedMemoryAccess() implementation
This patch fixes the x86 implementation of allowsMisalignedMemoryAccess() to correctly
return the 'Fast' output parameter for 32-byte accesses. To test that, an existing load
merging optimization is changed to use the TLI hook. This exposes a shortcoming in the
current logic and results in the regression test update. Changing other direct users of
the isUnalignedMem32Slow() x86 CPU attribute would be a follow-on patch.
Without the fix in allowsMisalignedMemoryAccesses(), we will infinite loop when targeting
SandyBridge because LowerINSERT_SUBVECTOR() creates 32-byte loads from two 16-byte loads
while PerformLOADCombine() splits them back into 16-byte loads.
Differential Revision: http://reviews.llvm.org/D10662
llvm-svn: 245075
Diffstat (limited to 'llvm/lib/CodeGen/MachineCSE.cpp')
0 files changed, 0 insertions, 0 deletions