#include "llvm/Analysis/ScalarEvolutionDivision.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Support/Casting.h"
#include <cassert>
#include <cstdint>
namespace llvm {
class Type;
}
usingnamespacellvm;
namespace {
static inline int sizeOfSCEV(const SCEV *S) { … }
}
void SCEVDivision::divide(ScalarEvolution &SE, const SCEV *Numerator,
const SCEV *Denominator, const SCEV **Quotient,
const SCEV **Remainder) { … }
void SCEVDivision::visitConstant(const SCEVConstant *Numerator) { … }
void SCEVDivision::visitVScale(const SCEVVScale *Numerator) { … }
void SCEVDivision::visitAddRecExpr(const SCEVAddRecExpr *Numerator) { … }
void SCEVDivision::visitAddExpr(const SCEVAddExpr *Numerator) { … }
void SCEVDivision::visitMulExpr(const SCEVMulExpr *Numerator) { … }
SCEVDivision::SCEVDivision(ScalarEvolution &S, const SCEV *Numerator,
const SCEV *Denominator)
: … { … }
void SCEVDivision::cannotDivide(const SCEV *Numerator) { … }