bool polly::canSynthesize(const Instruction *I, const llvm::LoopInfo *LI, ScalarEvolution *SE, const Region *R) { if (SCEVCodegen) { if (!I || !SE->isSCEVable(I->getType())) return false; if (const SCEV *Scev = SE->getSCEV(const_cast<Instruction *>(I))) if (!isa<SCEVCouldNotCompute>(Scev)) if (!hasScalarDepsInsideRegion(Scev, R)) return true; return false; } Loop *L = LI->getLoopFor(I->getParent()); return L && I == L->getCanonicalInductionVariable() && R->contains(L); }