summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineCSE.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2015-08-14 17:53:40 +0000
committerSanjay Patel <spatel@rotateright.com>2015-08-14 17:53:40 +0000
commited502905f7c285959c5555bc01f8af762dadb8d6 (patch)
tree3fd3da3e84329fb1b344b69c81712c44ff06a0b6 /llvm/lib/CodeGen/MachineCSE.cpp
parent06f0678010428b0c69612fdd32a59262dfe14d59 (diff)
downloadbcm5719-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
OpenPOWER on IntegriCloud