reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

include/llvm/Analysis/ScalarEvolutionExpander.h
  374     Value *visitMulExpr(const SCEVMulExpr *S);
include/llvm/Analysis/ScalarEvolutionExpressions.h
  707     const SCEV *visitMulExpr(const SCEVMulExpr *Expr) {
include/llvm/Support/Casting.h
   58     return To::classof(&Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
lib/Analysis/DependenceAnalysis.cpp
 2304   else if (const auto *Product = dyn_cast<SCEVMulExpr>(Expr))
 2304   else if (const auto *Product = dyn_cast<SCEVMulExpr>(Expr))
 2386       else if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Operand)) {
 2386       else if (const SCEVMulExpr *Product = dyn_cast<SCEVMulExpr>(Operand)) {
lib/Analysis/ScalarEvolution.cpp
  402   const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(this);
  402   const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(this);
  914     if (const SCEVMulExpr *T = dyn_cast<SCEVMulExpr>(Denominator)) {
  914     if (const SCEVMulExpr *T = dyn_cast<SCEVMulExpr>(Denominator)) {
 1015   void visitMulExpr(const SCEVMulExpr *Numerator) {
 1298   if (isa<SCEVAddExpr>(Op) || isa<SCEVMulExpr>(Op)) {
 1312       else if (isa<SCEVMulExpr>(Op))
 1895   if (auto *SM = dyn_cast<SCEVMulExpr>(Op)) {
 2289     const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[i]);
 2289     const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[i]);
 2486     if (const auto *Mul = dyn_cast<SCEVMulExpr>(Ops[Idx])) {
 2486     if (const auto *Mul = dyn_cast<SCEVMulExpr>(Ops[Idx])) {
 2507       } else if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(Ops[i])) {
 2507       } else if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(Ops[i])) {
 2571   if (Idx < Ops.size() && isa<SCEVMulExpr>(Ops[Idx])) {
 2612   for (; Idx < Ops.size() && isa<SCEVMulExpr>(Ops[Idx]); ++Idx) {
 2613     const SCEVMulExpr *Mul = cast<SCEVMulExpr>(Ops[Idx]);
 2613     const SCEVMulExpr *Mul = cast<SCEVMulExpr>(Ops[Idx]);
 2648            OtherMulIdx < Ops.size() && isa<SCEVMulExpr>(Ops[OtherMulIdx]);
 2650         const SCEVMulExpr *OtherMul = cast<SCEVMulExpr>(Ops[OtherMulIdx]);
 2650         const SCEVMulExpr *OtherMul = cast<SCEVMulExpr>(Ops[OtherMulIdx]);
 2838   SCEVMulExpr *S =
 2843     S = new (SCEVAllocator) SCEVMulExpr(ID.Intern(SCEVAllocator),
 2892       return isa<SCEVAddExpr>(S) || isa<SCEVMulExpr>(S);
 2978             if (!isa<SCEVMulExpr>(Mul)) AnyFolded = true;
 3007     while (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[Idx])) {
 3007     while (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[Idx])) {
 3245       if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(LHS)) {
 3245       if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(LHS)) {
 3343   const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(LHS);
 3343   const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(LHS);
 3371         Mul = dyn_cast<SCEVMulExpr>(LHS);
 3965   const SCEVMulExpr *AddRHS = dyn_cast<SCEVMulExpr>(Add->getOperand(1));
 3965   const SCEVMulExpr *AddRHS = dyn_cast<SCEVMulExpr>(Add->getOperand(1));
 5468   if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(S)) {
 5468   if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(S)) {
 5579   if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S)) {
 5579   if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S)) {
 6273           if (auto *LHSMul = dyn_cast<SCEVMulExpr>(LHS)) {
 8115       const SCEVMulExpr *SM = cast<SCEVMulExpr>(V);
 8115       const SCEVMulExpr *SM = cast<SCEVMulExpr>(V);
 8284         if (isa<SCEVMulExpr>(Comm))
 8972             if (const SCEVMulExpr *ME =
 8973                     dyn_cast<SCEVMulExpr>(AE->getOperand(0)))
10927     if (isa<SCEVUnknown>(S) || isa<SCEVMulExpr>(S) ||
10986     if (auto *Mul = dyn_cast<SCEVMulExpr>(S)) {
11061     if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(Step)) {
11061     if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(Step)) {
11109   if (const SCEVMulExpr *Expr = dyn_cast<SCEVMulExpr>(S))
11109   if (const SCEVMulExpr *Expr = dyn_cast<SCEVMulExpr>(S))
11121   if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(T)) {
11121   if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(T)) {
12520   const auto *Mul = dyn_cast<SCEVMulExpr>(Add->getOperand(0));
12520   const auto *Mul = dyn_cast<SCEVMulExpr>(Add->getOperand(0));
lib/Analysis/ScalarEvolutionExpander.cpp
  280   if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(S)) {
  280   if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(S)) {
  760 Value *SCEVExpander::visitMulExpr(const SCEVMulExpr *S) {
  766   for (std::reverse_iterator<SCEVMulExpr::op_iterator> I(S->op_end()),
 1543       if (!isa<SCEVMulExpr>(Base) && !isa<SCEVUDivExpr>(Base)) {
lib/Analysis/VectorUtils.cpp
  217     if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(V)) {
  217     if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(V)) {
lib/Target/ARM/MVETailPredication.cpp
  333     return dyn_cast<SCEVMulExpr>(S->getOperand(1));
lib/Transforms/Scalar/LoopStrengthReduce.cpp
  419   if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S))
  419   if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S))
  646 static bool isMulSExtable(const SCEVMulExpr *M, ScalarEvolution &SE) {
  650   return isa<SCEVMulExpr>(SE.getSignExtendExpr(M, WideTy));
  721   if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(LHS)) {
  721   if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(LHS)) {
  933   if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S)) {
  933   if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S)) {
 1301   C.NumIVMuls += isa<SCEVMulExpr>(Reg) &&
 3524   } else if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S)) {
 3524   } else if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S)) {
tools/polly/include/polly/Support/SCEVAffinator.h
  102   PWACtx visitMulExpr(const llvm::SCEVMulExpr *E);
tools/polly/lib/Analysis/ScopBuilder.cpp
 2328   if (auto *MulExpr = dyn_cast<SCEVMulExpr>(Expr)) {
tools/polly/lib/Analysis/ScopDetection.cpp
  874         if (auto *AF2 = dyn_cast<SCEVMulExpr>(Op)) {
tools/polly/lib/Support/SCEVAffinator.cpp
  375 PWACtx SCEVAffinator::visitMulExpr(const SCEVMulExpr *Expr) {
tools/polly/lib/Support/SCEVValidator.cpp
  191   class ValidatorResult visitMulExpr(const SCEVMulExpr *Expr) {
  758   auto *Mul = dyn_cast<SCEVMulExpr>(S);
tools/polly/lib/Support/ScopHelper.cpp
  355   const SCEV *visitMulExpr(const SCEVMulExpr *E) {
unittests/Analysis/ScalarEvolutionTest.cpp
   91   const SCEVMulExpr *M0 = cast<SCEVMulExpr>(P0);
   91   const SCEVMulExpr *M0 = cast<SCEVMulExpr>(P0);
   92   const SCEVMulExpr *M1 = cast<SCEVMulExpr>(P1);
   92   const SCEVMulExpr *M1 = cast<SCEVMulExpr>(P1);
   93   const SCEVMulExpr *M2 = cast<SCEVMulExpr>(P2);
   93   const SCEVMulExpr *M2 = cast<SCEVMulExpr>(P2);