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

References

lib/Analysis/ScalarEvolution.cpp
 6156     switch (BO->Opcode) {
 6166         if (BO->Op) {
 6167           if (auto *OpSCEV = getExistingSCEV(BO->Op)) {
 6179           const SCEV *RHS = getSCEV(BO->RHS);
 6180           SCEV::NoWrapFlags Flags = getNoWrapFlagsFromUB(BO->Op);
 6182             const SCEV *LHS = getSCEV(BO->LHS);
 6183             if (BO->Opcode == Instruction::Sub)
 6191         if (BO->Opcode == Instruction::Sub)
 6192           AddOps.push_back(getNegativeSCEV(getSCEV(BO->RHS)));
 6194           AddOps.push_back(getSCEV(BO->RHS));
 6196         auto NewBO = MatchBinaryOp(BO->LHS, DT);
 6199           AddOps.push_back(getSCEV(BO->LHS));
 6202         BO = NewBO;
 6211         if (BO->Op) {
 6212           if (auto *OpSCEV = getExistingSCEV(BO->Op)) {
 6217           SCEV::NoWrapFlags Flags = getNoWrapFlagsFromUB(BO->Op);
 6220                 getMulExpr(getSCEV(BO->LHS), getSCEV(BO->RHS), Flags));
 6220                 getMulExpr(getSCEV(BO->LHS), getSCEV(BO->RHS), Flags));
 6225         MulOps.push_back(getSCEV(BO->RHS));
 6226         auto NewBO = MatchBinaryOp(BO->LHS, DT);
 6228           MulOps.push_back(getSCEV(BO->LHS));
 6231         BO = NewBO;
 6237       return getUDivExpr(getSCEV(BO->LHS), getSCEV(BO->RHS));
 6237       return getUDivExpr(getSCEV(BO->LHS), getSCEV(BO->RHS));
 6239       return getURemExpr(getSCEV(BO->LHS), getSCEV(BO->RHS));
 6239       return getURemExpr(getSCEV(BO->LHS), getSCEV(BO->RHS));
 6242       if (BO->Op)
 6243         Flags = getNoWrapFlagsFromUB(BO->Op);
 6244       return getMinusSCEV(getSCEV(BO->LHS), getSCEV(BO->RHS), Flags);
 6244       return getMinusSCEV(getSCEV(BO->LHS), getSCEV(BO->RHS), Flags);
 6249       if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->RHS)) {
 6251           return getSCEV(BO->RHS);
 6253           return getSCEV(BO->LHS);
 6264         computeKnownBits(BO->LHS, Known, getDataLayout(),
 6271           const SCEV *LHS = getSCEV(BO->LHS);
 6292                   BO->LHS->getType()),
 6305       if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->RHS)) {
 6306         const SCEV *LHS = getSCEV(BO->LHS);
 6325       if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->RHS)) {
 6328           return getNotSCEV(getSCEV(BO->LHS));
 6334         if (auto *LBO = dyn_cast<BinaryOperator>(BO->LHS))
 6339                       dyn_cast<SCEVZeroExtendExpr>(getSCEV(BO->LHS))) {
 6340                 Type *UTy = BO->LHS->getType();
 6365       if (ConstantInt *SA = dyn_cast<ConstantInt>(BO->RHS)) {
 6382         if (BO->Op && SA->getValue().ult(BitWidth - 1))
 6383           Flags = getNoWrapFlagsFromUB(BO->Op);
 6387         return getMulExpr(getSCEV(BO->LHS), getSCEV(X), Flags);
 6393       ConstantInt *CI = dyn_cast<ConstantInt>(BO->RHS);
 6397       Type *OuterTy = BO->LHS->getType();
 6407         return getSCEV(BO->LHS); // shift by zero --> noop
 6412       Operator *L = dyn_cast<Operator>(BO->LHS);
 6419         if (L->getOperand(1) == BO->RHS)