[all-commits] [llvm/llvm-project] 9ff38e: [ARM] Transforming memcpy to Tail predicated Loop
malJaj via All-commits
all-commits at lists.llvm.org
Thu May 6 15:26:47 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 9ff38e2d9dd791383fbaa80e02d65e9c1f0463ff
https://github.com/llvm/llvm-project/commit/9ff38e2d9dd791383fbaa80e02d65e9c1f0463ff
Author: Malhar Jajoo <malhar.jajoo at arm.com>
Date: 2021-05-06 (Thu, 06 May 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMISelLowering.h
M llvm/lib/Target/ARM/ARMInstrMVE.td
M llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp
M llvm/lib/Target/ARM/ARMSubtarget.h
M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/memcall.ll
A llvm/test/CodeGen/Thumb2/mve-tp-loop.ll
A llvm/test/CodeGen/Thumb2/mve-tp-loop.mir
Log Message:
-----------
[ARM] Transforming memcpy to Tail predicated Loop
This patch converts llvm.memcpy intrinsic into Tail Predicated
Hardware loops for a target that supports the Arm M-profile
Vector Extension (MVE).
>From an implementation point of view, the patch
- adds an ARM specific SDAG Node (to which the llvm.memcpy intrinsic is lowered to, during first phase of ISel)
- adds a corresponding TableGen entry to generate a pseudo instruction, with a custom inserter,
on matching the above node.
- Adds a custom inserter function that expands the pseudo instruction into MIR suitable
to be (by later passes) into a WLSTP loop.
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D99723
More information about the All-commits
mailing list