summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/HardwareLoops.cpp
diff options
context:
space:
mode:
authorSam Parker <sam.parker@arm.com>2019-07-01 08:21:28 +0000
committerSam Parker <sam.parker@arm.com>2019-07-01 08:21:28 +0000
commit98722691b0b5e375fdd02c9a464476752a3c598e (patch)
tree749462ab6f4a19ba537c95094b76cf4cb9ebe44e /llvm/lib/CodeGen/HardwareLoops.cpp
parent0384a780549a0b87cefc3e7d787787a5e5bb9527 (diff)
downloadbcm5719-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.cpp1
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;
OpenPOWER on IntegriCloud