]> granicus.if.org Git - llvm/commit
[AArch64] Generate literals by the little end
authorEvandro Menezes <e.menezes@samsung.com>
Wed, 18 Jan 2017 18:57:08 +0000 (18:57 +0000)
committerEvandro Menezes <e.menezes@samsung.com>
Wed, 18 Jan 2017 18:57:08 +0000 (18:57 +0000)
commitf5697dce74941ca93e5533d6cd511a1bee8e0922
tree131cefa50c3baac9eeadbb07ae1ec3ce894e1e18
parentd20f95e583af83b63e899d40276b0406175234f5
[AArch64] Generate literals by the little end

ARM seems to prefer that long literals be formed from their little end in
order to promote the fusion of the instrs pairs MOV/MOVK and MOVK/MOVK on
Cortex A57 and others (v.  "Cortex A57 Software Optimisation Guide", section
4.14).

Differential revision: https://reviews.llvm.org/D28697

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292422 91177308-0d34-0410-b5e6-96231b3b80d8
21 files changed:
lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
lib/Target/AArch64/AArch64InstrInfo.cpp
lib/Target/AArch64/AArch64InstrInfo.td
test/CodeGen/AArch64/arm64-addrmode.ll
test/CodeGen/AArch64/arm64-bitfield-extract.ll
test/CodeGen/AArch64/arm64-blockaddress.ll
test/CodeGen/AArch64/arm64-code-model-large-abs.ll
test/CodeGen/AArch64/arm64-const-addr.ll
test/CodeGen/AArch64/arm64-extern-weak.ll
test/CodeGen/AArch64/arm64-fast-isel-addr-offset.ll
test/CodeGen/AArch64/arm64-movi.ll
test/CodeGen/AArch64/bitfield-insert.ll
test/CodeGen/AArch64/blockaddress.ll
test/CodeGen/AArch64/code-model-large-abs.ll
test/CodeGen/AArch64/extern-weak.ll
test/CodeGen/AArch64/fpimm.ll
test/CodeGen/AArch64/jump-table.ll
test/CodeGen/AArch64/large-consts.ll
test/CodeGen/AArch64/literal_pools_float.ll
test/CodeGen/AArch64/movw-shift-encoding.ll
test/CodeGen/AArch64/stack_guard_remat.ll