Skip to content

Commit 41b0308

Browse files
committed
[IVSimplify] Improve code in isLoopCounter (NFC)
1 parent 47ce75e commit 41b0308

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include "llvm/Analysis/MemorySSAUpdater.h"
3939
#include "llvm/Analysis/ScalarEvolution.h"
4040
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
41+
#include "llvm/Analysis/ScalarEvolutionPatternMatch.h"
4142
#include "llvm/Analysis/TargetLibraryInfo.h"
4243
#include "llvm/Analysis/TargetTransformInfo.h"
4344
#include "llvm/Analysis/ValueTracking.h"
@@ -53,7 +54,6 @@
5354
#include "llvm/IR/InstrTypes.h"
5455
#include "llvm/IR/Instruction.h"
5556
#include "llvm/IR/Instructions.h"
56-
#include "llvm/IR/IntrinsicInst.h"
5757
#include "llvm/IR/Intrinsics.h"
5858
#include "llvm/IR/PassManager.h"
5959
#include "llvm/IR/PatternMatch.h"
@@ -79,6 +79,7 @@
7979

8080
using namespace llvm;
8181
using namespace PatternMatch;
82+
using namespace SCEVPatternMatch;
8283

8384
#define DEBUG_TYPE "indvars"
8485

@@ -810,8 +811,7 @@ static bool isLoopCounter(PHINode* Phi, Loop *L,
810811
if (!AR || AR->getLoop() != L || !AR->isAffine())
811812
return false;
812813

813-
const SCEV *Step = dyn_cast<SCEVConstant>(AR->getStepRecurrence(*SE));
814-
if (!Step || !Step->isOne())
814+
if (!match(AR->getStepRecurrence(*SE), m_scev_SpecificInt(1)))
815815
return false;
816816

817817
int LatchIdx = Phi->getBasicBlockIndex(L->getLoopLatch());

0 commit comments

Comments
 (0)