| /freebsd-14.2/contrib/llvm-project/llvm/include/llvm/IR/ |
| H A D | Operator.h | 75 class OverflowingBinaryOperator : public Operator { 351 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Add> { 354 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> { 357 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> { 360 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {
|
| H A D | PatternMatch.h | 1141 if (auto *Op = dyn_cast<OverflowingBinaryOperator>(V)) { in match() 1144 if ((WrapFlags & OverflowingBinaryOperator::NoUnsignedWrap) && in match() 1147 if ((WrapFlags & OverflowingBinaryOperator::NoSignedWrap) && in match() 1158 OverflowingBinaryOperator::NoSignedWrap> 1166 OverflowingBinaryOperator::NoSignedWrap> 1174 OverflowingBinaryOperator::NoSignedWrap> 1182 OverflowingBinaryOperator::NoSignedWrap> 1191 OverflowingBinaryOperator::NoUnsignedWrap> 1199 OverflowingBinaryOperator::NoUnsignedWrap> 1207 OverflowingBinaryOperator::NoUnsignedWrap> [all …]
|
| H A D | ConstantFolder.h | 76 Flags |= OverflowingBinaryOperator::NoUnsignedWrap; in FoldNoWrapBinOp() 78 Flags |= OverflowingBinaryOperator::NoSignedWrap; in FoldNoWrapBinOp()
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/IR/ |
| H A D | Instruction.cpp | 327 cast<OverflowingBinaryOperator>(this)->setHasNoUnsignedWrap(b); in setHasNoUnsignedWrap() 331 cast<OverflowingBinaryOperator>(this)->setHasNoSignedWrap(b); in setHasNoSignedWrap() 345 return cast<OverflowingBinaryOperator>(this)->hasNoUnsignedWrap(); in hasNoUnsignedWrap() 349 return cast<OverflowingBinaryOperator>(this)->hasNoSignedWrap(); in hasNoSignedWrap() 367 cast<OverflowingBinaryOperator>(this)->setHasNoUnsignedWrap(false); in dropPoisonGeneratingFlags() 368 cast<OverflowingBinaryOperator>(this)->setHasNoSignedWrap(false); in dropPoisonGeneratingFlags() 545 if (IncludeWrapFlags && isa<OverflowingBinaryOperator>(this)) { in copyIRFlags() 546 if (auto *OB = dyn_cast<OverflowingBinaryOperator>(V)) { in copyIRFlags() 576 if (auto *OB = dyn_cast<OverflowingBinaryOperator>(V)) { in andIRFlags() 577 if (isa<OverflowingBinaryOperator>(this)) { in andIRFlags()
|
| H A D | Constants.cpp | 2455 unsigned Flags = (HasNUW ? OverflowingBinaryOperator::NoUnsignedWrap : 0) | in getAdd() 2456 (HasNSW ? OverflowingBinaryOperator::NoSignedWrap : 0); in getAdd() 2462 unsigned Flags = (HasNUW ? OverflowingBinaryOperator::NoUnsignedWrap : 0) | in getSub() 2463 (HasNSW ? OverflowingBinaryOperator::NoSignedWrap : 0); in getSub() 2469 unsigned Flags = (HasNUW ? OverflowingBinaryOperator::NoUnsignedWrap : 0) | in getMul() 2470 (HasNSW ? OverflowingBinaryOperator::NoSignedWrap : 0); in getMul() 2480 unsigned Flags = (HasNUW ? OverflowingBinaryOperator::NoUnsignedWrap : 0) | in getShl() 2481 (HasNSW ? OverflowingBinaryOperator::NoSignedWrap : 0); in getShl() 3267 if (isa<OverflowingBinaryOperator>(BO)) { in getAsInstruction() 3269 OverflowingBinaryOperator::NoUnsignedWrap); in getAsInstruction() [all …]
|
| H A D | Operator.cpp | 27 auto *OBO = cast<OverflowingBinaryOperator>(this); in hasPoisonGeneratingFlags()
|
| H A D | IntrinsicInst.cpp | 863 return OverflowingBinaryOperator::NoSignedWrap; in getNoWrapKind() 865 return OverflowingBinaryOperator::NoUnsignedWrap; in getNoWrapKind()
|
| H A D | ConstantRange.cpp | 288 using OBO = OverflowingBinaryOperator; in makeGuaranteedNoWrapRegion() 1035 using OBO = OverflowingBinaryOperator; in addWithNoWrap() 1082 using OBO = OverflowingBinaryOperator; in subWithNoWrap()
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineMulDivRem.cpp | 960 auto *Mul = cast<OverflowingBinaryOperator>(Op0); in foldIDivShl() 961 auto *Shl = cast<OverflowingBinaryOperator>(Op1); in foldIDivShl() 980 auto *Shl0 = cast<OverflowingBinaryOperator>(Op0); in foldIDivShl() 981 auto *Shl1 = cast<OverflowingBinaryOperator>(Op1); in foldIDivShl() 1003 auto *Shl0 = cast<OverflowingBinaryOperator>(Op0); in foldIDivShl() 1004 auto *Shl1 = cast<OverflowingBinaryOperator>(Op1); in foldIDivShl() 1085 auto *OBO = cast<OverflowingBinaryOperator>(Op0); in commonIDivTransforms() 1111 auto *OBO = cast<OverflowingBinaryOperator>(Op0); in commonIDivTransforms() 1294 auto *BO = cast<OverflowingBinaryOperator>(Op); in takeLog2() 1897 OverflowingBinaryOperator *BO0 = cast<OverflowingBinaryOperator>(Op0); in simplifyIRemMulShl() [all …]
|
| H A D | InstCombineSimplifyDemanded.cpp | 567 bool NSW = cast<OverflowingBinaryOperator>(I)->hasNoSignedWrap(); in SimplifyDemandedUseBits() 600 bool NSW = cast<OverflowingBinaryOperator>(I)->hasNoSignedWrap(); in SimplifyDemandedUseBits() 1182 bool NSW = cast<OverflowingBinaryOperator>(I)->hasNoSignedWrap(); in SimplifyMultipleUseDemandedBits() 1197 bool NSW = cast<OverflowingBinaryOperator>(I)->hasNoSignedWrap(); in SimplifyMultipleUseDemandedBits()
|
| H A D | InstructionCombining.cpp | 266 auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I); in maintainNoSignedWrap() 289 auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I); in hasNoUnsignedWrap() 294 auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I); in hasNoSignedWrap() 707 if (isa<OverflowingBinaryOperator>(RetVal)) { in tryFactorization() 710 if (isa<OverflowingBinaryOperator>(&I)) { in tryFactorization() 714 if (auto *LOBO = dyn_cast<OverflowingBinaryOperator>(LHS)) { in tryFactorization() 719 if (auto *ROBO = dyn_cast<OverflowingBinaryOperator>(RHS)) { in tryFactorization() 3318 OverflowingBinaryOperator *Shl = cast<OverflowingBinaryOperator>(Cond); in visitSwitchInst()
|
| H A D | InstCombineAddSub.cpp | 1502 auto *OB0 = cast<OverflowingBinaryOperator>(LHS); in visitAdd() 2167 auto *OBO1 = cast<OverflowingBinaryOperator>(Op1); in visitSub() 2242 OverflowingBinaryOperator *LHSSub = cast<OverflowingBinaryOperator>(Op0); in visitSub() 2628 auto *OBO0 = cast<OverflowingBinaryOperator>(Op0); in visitSub() 2629 auto *OBO1 = cast<OverflowingBinaryOperator>(Op1); in visitSub()
|
| /freebsd-14.2/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | TargetFolder.h | 87 Flags |= OverflowingBinaryOperator::NoUnsignedWrap; in FoldNoWrapBinOp() 89 Flags |= OverflowingBinaryOperator::NoSignedWrap; in FoldNoWrapBinOp()
|
| H A D | ScalarEvolution.h | 47 class OverflowingBinaryOperator; variable 547 getStrengthenedNoWrapFlagsFromBinOp(const OverflowingBinaryOperator *OBO);
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | SimplifyIndVar.cpp | 771 return (isa<OverflowingBinaryOperator>(BO) && in strengthenBinaryOp() 781 cast<OverflowingBinaryOperator>(BO)); in strengthenOverflowingOperation() 1391 const OverflowingBinaryOperator *OBO = in getExtendedOperandRecurrence() 1392 cast<OverflowingBinaryOperator>(DU.NarrowUse); in getExtendedOperandRecurrence() 1575 const OverflowingBinaryOperator *OBO = in widenWithVariantUse() 1576 cast<OverflowingBinaryOperator>(NarrowUse); in widenWithVariantUse() 2049 *NarrowDefRHS, OverflowingBinaryOperator::NoSignedWrap); in calculatePostIncRange()
|
| H A D | ScalarEvolutionExpander.cpp | 236 if (isa<OverflowingBinaryOperator>(I)) { in InsertBinop() 728 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(I)) in hoistIVInc() 1035 if (isa<OverflowingBinaryOperator>(IncV)) { in getAddRecExprPHILiterally() 1093 if (isa<OverflowingBinaryOperator>(Result)) { in expandAddRecExprLiterally() 1480 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(I)) in expand()
|
| H A D | FunctionComparator.cpp | 433 if (auto *OBOL = dyn_cast<OverflowingBinaryOperator>(LE)) { in cmpConstants() 434 auto *OBOR = cast<OverflowingBinaryOperator>(RE); in cmpConstants()
|
| H A D | SCCPSolver.cpp | 122 if (isa<OverflowingBinaryOperator>(Inst)) { in refineInstruction() 128 OverflowingBinaryOperator::NoUnsignedWrap); in refineInstruction() 137 OverflowingBinaryOperator::NoSignedWrap); in refineInstruction()
|
| H A D | LoopUnroll.cpp | 256 auto *InnerOBO = cast<OverflowingBinaryOperator>(Inst.getOperand(0)); in simplifyLoopAfterUnroll()
|
| H A D | LoopConstrainer.cpp | 888 if (isa<OverflowingBinaryOperator>(MainLoopStructure.IndVarBase)) in run()
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | ValueTracking.cpp | 1315 auto *OverflowOp = dyn_cast<OverflowingBinaryOperator>(BO); in computeKnownBitsFromOperator() 2002 const OverflowingBinaryOperator *VOBO = cast<OverflowingBinaryOperator>(V); in isKnownToBeAPowerOfTwo() 2477 const OverflowingBinaryOperator *BO = cast<OverflowingBinaryOperator>(I); in isKnownNonZeroFromOperator() 2539 auto *BO = cast<OverflowingBinaryOperator>(I); in isKnownNonZeroFromOperator() 2550 const OverflowingBinaryOperator *BO = cast<OverflowingBinaryOperator>(I); in isKnownNonZeroFromOperator() 2895 auto *OBO1 = cast<OverflowingBinaryOperator>(Op1); in getInvertibleOperands() 2896 auto *OBO2 = cast<OverflowingBinaryOperator>(Op2); in getInvertibleOperands() 2911 auto *OBO1 = cast<OverflowingBinaryOperator>(Op1); in getInvertibleOperands() 2912 auto *OBO2 = cast<OverflowingBinaryOperator>(Op2); in getInvertibleOperands() 2992 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(V2)) { in isNonEqualMul() [all …]
|
| H A D | LazyValueInfo.cpp | 999 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(BO)) { in solveBlockValueBinaryOp() 1002 NoWrapKind |= OverflowingBinaryOperator::NoUnsignedWrap; in solveBlockValueBinaryOp() 1004 NoWrapKind |= OverflowingBinaryOperator::NoSignedWrap; in solveBlockValueBinaryOp()
|
| H A D | InstructionSimplify.cpp | 1151 auto *Mul = cast<OverflowingBinaryOperator>(Op0); in simplifyDivRem() 1700 auto *AddInst = cast<OverflowingBinaryOperator>(Op0->getOperand(0)); in simplifyAndOfICmpsWithAdd() 3279 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO))) || in simplifyICmpWithBinOp() 3281 Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO))); in simplifyICmpWithBinOp() 3289 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(RBO))) || in simplifyICmpWithBinOp() 3291 Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(RBO))); in simplifyICmpWithBinOp() 3379 if (Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO)) || in simplifyICmpWithBinOp() 3380 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO)) || in simplifyICmpWithBinOp()
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | TypePromotion.cpp | 403 if (!isa<OverflowingBinaryOperator>(I)) in isPromotedResultSafe()
|
| H A D | MachineInstr.cpp | 550 if (const OverflowingBinaryOperator *OB = in copyFlagsFromInstruction() 551 dyn_cast<OverflowingBinaryOperator>(&I)) { in copyFlagsFromInstruction()
|