}
}
+namespace {
class SCEVInitRewriter : public SCEVRewriteVisitor<SCEVInitRewriter> {
public:
static const SCEV *rewrite(const SCEV *Scev, const Loop *L,
const Loop *L;
bool Valid;
};
+} // end anonymous namespace
const SCEV *ScalarEvolution::createAddRecFromPHI(PHINode *PN) {
const Loop *L = LI.getLoopFor(PN->getParent());
return Eq;
}
+namespace {
class SCEVPredicateRewriter : public SCEVRewriteVisitor<SCEVPredicateRewriter> {
public:
static const SCEV *rewrite(const SCEV *Scev, ScalarEvolution &SE,
private:
SCEVUnionPredicate &P;
};
+} // end anonymous namespace
const SCEV *ScalarEvolution::rewriteUsingPredicate(const SCEV *Scev,
SCEVUnionPredicate &Preds) {
return 0;
}
+namespace {
// Accumulate the hash of a sequence of 64-bit integers. This is similar to a
// hash of a sequence of 64bit ints, but the entire input does not need to be
// available at once. This interface is necessary for functionHash because it
// No finishing is required, because the entire hash value is used.
uint64_t getHash() { return Hash; }
};
+} // end anonymous namespace
// A function hash is calculated by considering only the number of arguments and
// whether a function is varargs, the order of basic blocks (given by the