Enzyme main
Loading...
Searching...
No Matches
MustExitScalarEvolution.cpp File Reference
#include "MustExitScalarEvolution.h"
#include "FunctionUtils.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ScalarEvolution.h"
Include dependency graph for MustExitScalarEvolution.cpp:

Go to the source code of this file.

Macros

#define SCEVUse   const SCEV *
 
#define PROP_PHI(LHS)
 

Macro Definition Documentation

◆ PROP_PHI

#define PROP_PHI ( LHS)
Value:
if (auto un = dyn_cast<SCEVUnknown>(LHS)) { \
if (auto pn = dyn_cast_or_null<PHINode>(un->getValue())) { \
const SCEV *sc = nullptr; \
bool failed = false; \
for (auto &a : pn->incoming_values()) { \
auto subsc = getSCEV(a); \
if (sc == nullptr) { \
sc = subsc; \
continue; \
} \
if (subsc != sc) { \
failed = true; \
break; \
} \
} \
if (!failed) { \
LHS = sc; \
} \
} \
}

Referenced by MustExitScalarEvolution::computeExitLimitFromICmp().

◆ SCEVUse

#define SCEVUse   const SCEV *