diff options
author | Sam Parker <sam.parker@arm.com> | 2019-07-01 08:21:28 +0000 |
---|---|---|
committer | Sam Parker <sam.parker@arm.com> | 2019-07-01 08:21:28 +0000 |
commit | 98722691b0b5e375fdd02c9a464476752a3c598e (patch) | |
tree | 749462ab6f4a19ba537c95094b76cf4cb9ebe44e /llvm/lib/CodeGen/HardwareLoops.cpp | |
parent | 0384a780549a0b87cefc3e7d787787a5e5bb9527 (diff) | |
download | bcm5719-llvm-98722691b0b5e375fdd02c9a464476752a3c598e.tar.gz bcm5719-llvm-98722691b0b5e375fdd02c9a464476752a3c598e.zip |
[ARM] WLS/LE Code Generation
Backend changes to enable WLS/LE low-overhead loops for armv8.1-m:
1) Use TTI to communicate to the HardwareLoop pass that we should try
to generate intrinsics that guard the loop entry, as well as setting
the loop trip count.
2) Lower the BRCOND that uses said intrinsic to an Arm specific node:
ARMWLS.
3) ISelDAGToDAG the node to a new pseudo instruction:
t2WhileLoopStart.
4) Add support in ArmLowOverheadLoops to handle the new pseudo
instruction.
Differential Revision: https://reviews.llvm.org/D63816
llvm-svn: 364733
Diffstat (limited to 'llvm/lib/CodeGen/HardwareLoops.cpp')
-rw-r--r-- | llvm/lib/CodeGen/HardwareLoops.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/HardwareLoops.cpp b/llvm/lib/CodeGen/HardwareLoops.cpp index 0d754b902fa..5f57cabbe86 100644 --- a/llvm/lib/CodeGen/HardwareLoops.cpp +++ b/llvm/lib/CodeGen/HardwareLoops.cpp @@ -294,6 +294,7 @@ static bool CanGenerateTest(Loop *L, Value *Count) { // Check that the icmp is checking for equality of Count and zero and that // a non-zero value results in entering the loop. auto ICmp = cast<ICmpInst>(BI->getCondition()); + LLVM_DEBUG(dbgs() << " - Found condition: " << *ICmp << "\n"); if (!ICmp->isEquality()) return false; |