OSDN Git Service

[ARM] Remove copies from low overhead phi inductions.
authorDavid Green <david.green@arm.com>
Thu, 10 Dec 2020 10:30:31 +0000 (10:30 +0000)
committerDavid Green <david.green@arm.com>
Thu, 10 Dec 2020 10:30:31 +0000 (10:30 +0000)
commitb0ce615b2d29524b0b3541d07dd561665b710e79
tree12ad312749582e7ec9b056e2d84832f34e901e94
parentdb884dafb7b5771e6ae01e8252f1520fac3e1c77
[ARM] Remove copies from low overhead phi inductions.

The phi created in a low overhead loop gets created with a default
register class it seems. There are then copied inserted between the low
overhead loop pseudo instructions (which produce/consume GPRlr
instructions) and the phi holding the induction. This patch removes
those as a step towards attempting to make t2LoopDec and t2LoopEnd a
single instruction, and appears useful in it's own right as shown in the
tests.

Differential Revision: https://reviews.llvm.org/D91267
llvm/lib/Target/ARM/MVEVPTOptimisationsPass.cpp
llvm/test/CodeGen/Thumb2/LowOverheadLoops/count_dominates_start.mir
llvm/test/CodeGen/Thumb2/mve-fma-loops.ll
llvm/test/CodeGen/Thumb2/mve-gather-scatter-tailpred.ll
llvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll