[ARM] Improve handling of empty VPT blocks in tail predicated loops
authorDavid Green <david.green@arm.com>
Mon, 14 Dec 2020 11:17:01 +0000 (11:17 +0000)
committerDavid Green <david.green@arm.com>
Mon, 14 Dec 2020 11:17:01 +0000 (11:17 +0000)
commit1de3e7fd620bc9db2df96a12401bde4bde722785
treeeb011a3349707a154be8dcdbca1c624fffff6a60
parent62c246eda24c362f1aa5a71f2cf11f9df5642460
[ARM] Improve handling of empty VPT blocks in tail predicated loops

A vpt block that just contains either VPST;VCTP or VPT;VCTP, once the
VCTP is removed will become invalid. This fixed the first by removing
the now empty block and bails out for the second, as we have no simple
way of converting a VPT to a VCMP.

Differential Revision: https://reviews.llvm.org/D92369
llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir