summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
diff options
context:
space:
mode:
authorJohn Brawn <john.brawn@arm.com>2018-03-23 14:47:07 +0000
committerJohn Brawn <john.brawn@arm.com>2018-03-23 14:47:07 +0000
commite3b44f9de6b6724e147cc7577f18ef500d88c754 (patch)
tree88791a019e5706ff62eb20b3b9fd192135ad98d1 /llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
parent5792e10ffb07891e6e79bd6a5dbc0863ce13074c (diff)
downloadbcm5719-llvm-e3b44f9de6b6724e147cc7577f18ef500d88c754.tar.gz
bcm5719-llvm-e3b44f9de6b6724e147cc7577f18ef500d88c754.zip
[AArch64] Don't reduce the width of loads if it prevents combining a shift
Loads and stores can only shift the offset register by the size of the value being loaded, but currently the DAGCombiner will reduce the width of the load if it's followed by a trunc making it impossible to later combine the shift. Solve this by implementing shouldReduceLoadWidth for the AArch64 backend and make it prevent the width reduction if this is what would happen, though do allow it if reducing the load width will let us eliminate a later sign or zero extend. Differential Revision: https://reviews.llvm.org/D44794 llvm-svn: 328321
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstructionCombining.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud