[all-commits] [llvm/llvm-project] 404251: [ARM][MVE] Tail predicate in the presence of vcmp
Sam Parker via All-commits
all-commits at lists.llvm.org
Fri Dec 20 00:43:05 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 404251833521770732646c4348f774b94b40df72
https://github.com/llvm/llvm-project/commit/404251833521770732646c4348f774b94b40df72
Author: Sam Parker <sam.parker at arm.com>
Date: 2019-12-20 (Fri, 20 Dec 2019)
Changed paths:
M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
M llvm/lib/Target/ARM/MVEVPTBlockPass.cpp
M llvm/lib/Target/ARM/Utils/ARMBaseInfo.h
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
A llvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir
A llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir
A llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir
Log Message:
-----------
[ARM][MVE] Tail predicate in the presence of vcmp
Record the discovered VPT blocks while checking for validity and, for
now, only handle blocks that begin with VPST and not VPT. We're now
allowing more than one instruction to define vpr, but each block must
somehow be predicated using the vctp. This leaves us with several
scenarios which need fixing up:
1) A VPT block with is only predicated by the vctp and has no
internal vpr defs.
2) A VPT block which is only predicated by the vctp but has an
internal vpr def.
3) A VPT block which is predicated upon the vctp as well as another
vpr def.
4) A VPT block which is not predicated upon a vctp, but contains it
and all instructions within the block are predicated upon in.
The changes needed are, for:
1) The easy one, just remove the vpst and unpredicate the
instructions in the block.
2) Remove the vpst and unpredicate the instructions up to the
internal vpr def. Need insert a new vpst to predicate the
remaining instructions.
3) No nothing.
4) The vctp will be inside a vpt and the instruction will be removed,
so adjust the size of the mask on the vpst.
Differential Revision: https://reviews.llvm.org/D71107
More information about the All-commits
mailing list