[ARM] Introduce t2WhileLoopStartTP
authorDavid Green <david.green@arm.com>
Sun, 13 Jun 2021 12:55:34 +0000 (13:55 +0100)
committerDavid Green <david.green@arm.com>
Sun, 13 Jun 2021 12:55:34 +0000 (13:55 +0100)
commitbee2f618d599201aa0c91d0322f058cc697e0779
tree70c020d80a33d3c781298f5d6b176fd609a67ff8
parent7ff3a89a7b94193638cb13f8a0a1ef70094c8263
[ARM] Introduce t2WhileLoopStartTP

This adds t2WhileLoopStartTP, similar to the t2DoLoopStartTP added in
D90591. It keeps a reference to both the tripcount register and the
element count register, so that the ARMLowOverheadLoops pass in the
backend can pick the correct one without having to search for it from
the operand of a VCTP.

Differential Revision: https://reviews.llvm.org/D103236
llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
llvm/lib/Target/ARM/ARMBaseInstrInfo.h
llvm/lib/Target/ARM/ARMBlockPlacement.cpp
llvm/lib/Target/ARM/ARMInstrThumb2.td
llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp
llvm/lib/Target/ARM/MVETailPredUtils.h
llvm/test/CodeGen/Thumb2/LowOverheadLoops/memcall.ll
llvm/test/CodeGen/Thumb2/LowOverheadLoops/wls-search-pred.mir
llvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
llvm/test/CodeGen/Thumb2/mve-memtp-loop.ll