[all-commits] [llvm/llvm-project] 5e51f7: [ARM] Favour post inc for MVE loops
David Green via All-commits
all-commits at lists.llvm.org
Sun Jan 19 23:47:24 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 5e51f755421761b56453d756e5a89bbed784141a
https://github.com/llvm/llvm-project/commit/5e51f755421761b56453d756e5a89bbed784141a
Author: David Green <david.green at arm.com>
Date: 2020-01-20 (Mon, 20 Jan 2020)
Changed paths:
M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-float-loops.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/vector-arith-codegen.ll
M llvm/test/CodeGen/Thumb2/mve-gather-ptrs.ll
M llvm/test/CodeGen/Thumb2/mve-shifts-scalar.ll
M llvm/test/CodeGen/Thumb2/mve-vldst4.ll
M llvm/test/CodeGen/Thumb2/mve-vmla.ll
Log Message:
-----------
[ARM] Favour post inc for MVE loops
We were previously not necessarily favouring postinc for the MVE loads
and stores, leading to extra code prior to the loop to set up the
preinc. MVE in general can benefit from postinc (as we don't have
unrolled loops), and certain instructions like the VLD2's only post-inc
versions are available.
Differential Revision: https://reviews.llvm.org/D70790
Commit: d6075726b90184c2f3ff111991e92b21ee6b1475
https://github.com/llvm/llvm-project/commit/d6075726b90184c2f3ff111991e92b21ee6b1475
Author: David Green <david.green at arm.com>
Date: 2020-01-20 (Mon, 20 Jan 2020)
Changed paths:
M llvm/test/CodeGen/Thumb2/mve-intrinsics/vld24.ll
A llvm/test/CodeGen/Thumb2/mve-vld2-post.ll
A llvm/test/CodeGen/Thumb2/mve-vld4-post.ll
A llvm/test/CodeGen/Thumb2/mve-vst2-post.ll
A llvm/test/CodeGen/Thumb2/mve-vst4-post.ll
Log Message:
-----------
[ARM] MVE VLDn post inc tests. NFC
Commit: ff2e67a4f708e786b8c39f35756d843ed6a822e7
https://github.com/llvm/llvm-project/commit/ff2e67a4f708e786b8c39f35756d843ed6a822e7
Author: David Green <david.green at arm.com>
Date: 2020-01-20 (Mon, 20 Jan 2020)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsARM.td
M llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMInstrMVE.td
M llvm/test/CodeGen/Thumb2/mve-intrinsics/vld24.ll
M llvm/test/CodeGen/Thumb2/mve-multivec-spill.ll
M llvm/test/CodeGen/Thumb2/mve-vld2-post.ll
M llvm/test/CodeGen/Thumb2/mve-vld2.ll
M llvm/test/CodeGen/Thumb2/mve-vld4-post.ll
M llvm/test/CodeGen/Thumb2/mve-vld4.ll
M llvm/test/CodeGen/Thumb2/mve-vst2-post.ll
M llvm/test/CodeGen/Thumb2/mve-vst2.ll
M llvm/test/CodeGen/Thumb2/mve-vst4-post.ll
M llvm/test/CodeGen/Thumb2/mve-vst4.ll
Log Message:
-----------
[ARM] MVE VLDn postinc
This adds Post inc variants of the VLD2/4 and VST2/4 instructions in
MVE. It uses the same mechanism/nodes as Neon, transforming the
intrinsic+add pair into a ARMISD::VLD2_UPD, which gets selected to a
post-inc instruction. The code to do that is mostly taken from the
existing Neon code, but simplified as less variants are needed.
It also fills in some getTgtMemIntrinsic for the arm.mve.vld2/4
instrinsics, which allow the nodes to have MMO's, calculated as the full
length to the memory being loaded/stored.
Differential Revision: https://reviews.llvm.org/D71194
Compare: https://github.com/llvm/llvm-project/compare/eaab1bf21e1d...ff2e67a4f708
More information about the All-commits
mailing list