/freebsd/contrib/llvm-project/llvm/lib/IR/ |
H A D | Operator.cpp | 27 auto *OBO = cast<OverflowingBinaryOperator>(this); in hasPoisonGeneratingFlags() local 28 return OBO->hasNoUnsignedWrap() || OBO->hasNoSignedWrap(); in hasPoisonGeneratingFlags()
|
H A D | ConstantRange.cpp | 317 using OBO = OverflowingBinaryOperator; in makeGuaranteedNoWrapRegion() typedef 321 assert((NoWrapKind == OBO::NoSignedWrap || in makeGuaranteedNoWrapRegion() 322 NoWrapKind == OBO::NoUnsignedWrap) && in makeGuaranteedNoWrapRegion() 325 bool Unsigned = NoWrapKind == OBO::NoUnsignedWrap; in makeGuaranteedNoWrapRegion() 1093 using OBO = OverflowingBinaryOperator; in addWithNoWrap() typedef 1101 if (NoWrapKind & OBO::NoSignedWrap) in addWithNoWrap() 1104 if (NoWrapKind & OBO::NoUnsignedWrap) in addWithNoWrap() 1140 using OBO = OverflowingBinaryOperator; in subWithNoWrap() typedef 1148 if (NoWrapKind & OBO::NoSignedWrap) in subWithNoWrap() 1151 if (NoWrapKind & OBO::NoUnsignedWrap) { in subWithNoWrap()
|
H A D | AsmWriter.cpp | 1406 if (const OverflowingBinaryOperator *OBO = in WriteOptimizationInfo() local 1408 if (OBO->hasNoUnsignedWrap()) in WriteOptimizationInfo() 1410 if (OBO->hasNoSignedWrap()) in WriteOptimizationInfo()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | SimplifyIndVar.cpp | 107 bool strengthenOverflowingOperation(BinaryOperator *OBO, 1415 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(Op)) { local 1416 IsNSW = OBO->hasNoSignedWrap(); 1417 IsNUW = OBO->hasNoUnsignedWrap(); 1676 const OverflowingBinaryOperator *OBO = in widenWithVariantUse() local 1679 bool CanSignExtend = ExtKind == ExtendKind::Sign && OBO->hasNoSignedWrap(); in widenWithVariantUse() 1680 bool CanZeroExtend = ExtKind == ExtendKind::Zero && OBO->hasNoUnsignedWrap(); in widenWithVariantUse() 1742 const SCEV *LHS = SE->getSCEV(OBO->getOperand(0)); in widenWithVariantUse() 1743 const SCEV *RHS = SE->getSCEV(OBO->getOperand(1)); in widenWithVariantUse()
|
H A D | ScalarEvolutionExpander.cpp | 52 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(I)) { in PoisonFlags() local 53 NUW = OBO->hasNoUnsignedWrap(); in PoisonFlags() 54 NSW = OBO->hasNoSignedWrap(); in PoisonFlags() 778 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(I)) in hoistIVInc() local 779 if (auto Flags = SE.getStrengthenedNoWrapFlagsFromBinOp(OBO)) { in hoistIVInc() 1538 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(I)) in expand() local 1539 if (auto Flags = SE.getStrengthenedNoWrapFlagsFromBinOp(OBO)) { in expand()
|
H A D | SCCPSolver.cpp | 1532 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(BO)) in visitBinaryOperator() local 1533 R = A.overflowingBinaryOp(BO->getOpcode(), B, OBO->getNoWrapKind()); in visitBinaryOperator()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineShifts.cpp | 1326 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(Op0); in visitLShr() local 1327 !OBO || OBO->hasNoUnsignedWrap()) { in visitLShr() 1331 if (OBO) { in visitLShr() 1333 NewBinOp->setHasNoSignedWrap(OBO->hasNoSignedWrap()); in visitLShr()
|
H A D | InstCombineMulDivRem.cpp | 1222 auto *OBO = cast<OverflowingBinaryOperator>(Op0); in commonIDivTransforms() local 1223 Mul->setHasNoUnsignedWrap(!IsSigned && OBO->hasNoUnsignedWrap()); in commonIDivTransforms() 1224 Mul->setHasNoSignedWrap(OBO->hasNoSignedWrap()); in commonIDivTransforms() 1248 auto *OBO = cast<OverflowingBinaryOperator>(Op0); in commonIDivTransforms() local 1249 Mul->setHasNoUnsignedWrap(!IsSigned && OBO->hasNoUnsignedWrap()); in commonIDivTransforms() 1250 Mul->setHasNoSignedWrap(OBO->hasNoSignedWrap()); in commonIDivTransforms()
|
H A D | InstructionCombining.cpp | 284 auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I); in maintainNoSignedWrap() local 285 if (!OBO || !OBO->hasNoSignedWrap()) in maintainNoSignedWrap() 307 auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I); in hasNoUnsignedWrap() local 308 return OBO && OBO->hasNoUnsignedWrap(); in hasNoUnsignedWrap() 312 auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I); in hasNoSignedWrap() local 313 return OBO && OBO->hasNoSignedWrap(); in hasNoSignedWrap()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | CorrelatedValuePropagation.cpp | 1151 using OBO = OverflowingBinaryOperator; in processBinOp() typedef 1168 Opcode, RRange, OBO::NoUnsignedWrap); in processBinOp() 1174 Opcode, RRange, OBO::NoSignedWrap); in processBinOp()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | ScalarEvolution.cpp | 2378 const OverflowingBinaryOperator *OBO) { in getStrengthenedNoWrapFlagsFromBinOp() argument 2380 if (OBO->hasNoUnsignedWrap() && OBO->hasNoSignedWrap()) in getStrengthenedNoWrapFlagsFromBinOp() 2385 if (OBO->hasNoUnsignedWrap()) in getStrengthenedNoWrapFlagsFromBinOp() 2387 if (OBO->hasNoSignedWrap()) in getStrengthenedNoWrapFlagsFromBinOp() 2392 if (OBO->getOpcode() != Instruction::Add && in getStrengthenedNoWrapFlagsFromBinOp() 2393 OBO->getOpcode() != Instruction::Sub && in getStrengthenedNoWrapFlagsFromBinOp() 2394 OBO->getOpcode() != Instruction::Mul) in getStrengthenedNoWrapFlagsFromBinOp() 2397 const SCEV *LHS = getSCEV(OBO->getOperand(0)); in getStrengthenedNoWrapFlagsFromBinOp() 2398 const SCEV *RHS = getSCEV(OBO->getOperand(1)); in getStrengthenedNoWrapFlagsFromBinOp() 2401 UseContextForNoWrapFlagInference ? dyn_cast<Instruction>(OBO) : nullptr; in getStrengthenedNoWrapFlagsFromBinOp() [all …]
|
H A D | LoopAccessAnalysis.cpp | 1442 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(NonConstIndex)) in isNoWrapAddRec() local 1443 if (OBO->hasNoSignedWrap() && in isNoWrapAddRec() 1446 isa<ConstantInt>(OBO->getOperand(1))) { in isNoWrapAddRec() 1447 auto *OpScev = PSE.getSCEV(OBO->getOperand(0)); in isNoWrapAddRec()
|
H A D | LazyValueInfo.cpp | 1000 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(BO)) { in solveBlockValueBinaryOp() local 1001 unsigned NoWrapKind = OBO->getNoWrapKind(); in solveBlockValueBinaryOp()
|
H A D | ValueTracking.cpp | 3466 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(V2)) { in isNonEqualMul() local 3468 return match(OBO, m_Mul(m_Specific(V1), m_APInt(C))) && in isNonEqualMul() 3469 (OBO->hasNoUnsignedWrap() || OBO->hasNoSignedWrap()) && in isNonEqualMul() 3481 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(V2)) { in isNonEqualShl() local 3483 return match(OBO, m_Shl(m_Specific(V1), m_APInt(C))) && in isNonEqualShl() 3484 (OBO->hasNoUnsignedWrap() || OBO->hasNoSignedWrap()) && in isNonEqualShl()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/DXILWriter/ |
H A D | DXILBitcodeWriter.cpp | 743 if (const auto *OBO = dyn_cast<OverflowingBinaryOperator>(V)) { in getOptimizationFlags() local 744 if (OBO->hasNoSignedWrap()) in getOptimizationFlags() 746 if (OBO->hasNoUnsignedWrap()) in getOptimizationFlags()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | ScalarEvolution.h | 547 getStrengthenedNoWrapFlagsFromBinOp(const OverflowingBinaryOperator *OBO);
|
/freebsd/contrib/llvm-project/llvm/lib/Bitcode/Writer/ |
H A D | BitcodeWriter.cpp | 1663 if (const auto *OBO = dyn_cast<OverflowingBinaryOperator>(V)) { in getOptimizationFlags() local 1664 if (OBO->hasNoSignedWrap()) in getOptimizationFlags() 1666 if (OBO->hasNoUnsignedWrap()) in getOptimizationFlags()
|