| /freebsd/contrib/llvm-project/llvm/include/llvm/SandboxIR/ |
| H A D | Operator.h | 35 class OverflowingBinaryOperator : public Operator { 38 return cast<llvm::OverflowingBinaryOperator>(Val)->hasNoUnsignedWrap(); in hasNoUnsignedWrap() 41 return cast<llvm::OverflowingBinaryOperator>(Val)->hasNoSignedWrap(); in hasNoSignedWrap() 44 return cast<llvm::OverflowingBinaryOperator>(Val)->getNoWrapKind(); in getNoWrapKind() 47 return llvm::OverflowingBinaryOperator::classof( in classof() 51 return llvm::OverflowingBinaryOperator::classof( in classof() 55 return llvm::OverflowingBinaryOperator::classof(From->Val); in classof()
|
| H A D | Value.h | 34 class OverflowingBinaryOperator; variable 169 friend class OverflowingBinaryOperator; // For `Val`. variable
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/IR/ |
| H A D | Operator.h | 78 class OverflowingBinaryOperator : public Operator { 147 struct OperandTraits<OverflowingBinaryOperator> 148 : public FixedNumOperandTraits<OverflowingBinaryOperator, 2> {}; 150 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(OverflowingBinaryOperator, Value) 400 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Add> { 403 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Sub> { 406 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Mul> { 409 : public ConcreteOperator<OverflowingBinaryOperator, Instruction::Shl> {
|
| H A D | PatternMatch.h | 1300 if (auto *Op = dyn_cast<OverflowingBinaryOperator>(V)) { in match() 1303 if ((WrapFlags & OverflowingBinaryOperator::NoUnsignedWrap) && in match() 1306 if ((WrapFlags & OverflowingBinaryOperator::NoSignedWrap) && in match() 1319 OverflowingBinaryOperator::NoSignedWrap> 1322 OverflowingBinaryOperator::NoSignedWrap>(L, in m_NSWAdd() 1327 OverflowingBinaryOperator::NoSignedWrap, true> 1330 OverflowingBinaryOperator::NoSignedWrap, in m_c_NSWAdd() 1335 OverflowingBinaryOperator::NoSignedWrap> 1338 OverflowingBinaryOperator::NoSignedWrap>(L, in m_NSWSub() 1343 OverflowingBinaryOperator::NoSignedWrap> [all …]
|
| H A D | ConstantFolder.h | 77 Flags |= OverflowingBinaryOperator::NoUnsignedWrap; in FoldNoWrapBinOp() 79 Flags |= OverflowingBinaryOperator::NoSignedWrap; in FoldNoWrapBinOp()
|
| /freebsd/contrib/llvm-project/llvm/lib/IR/ |
| H A D | Instruction.cpp | 379 if (auto *Inst = dyn_cast<OverflowingBinaryOperator>(this)) in setHasNoUnsignedWrap() 386 if (auto *Inst = dyn_cast<OverflowingBinaryOperator>(this)) in setHasNoSignedWrap() 403 if (auto *Inst = dyn_cast<OverflowingBinaryOperator>(this)) in hasNoUnsignedWrap() 410 if (auto *Inst = dyn_cast<OverflowingBinaryOperator>(this)) in hasNoSignedWrap() 431 cast<OverflowingBinaryOperator>(this)->setHasNoUnsignedWrap(false); in dropPoisonGeneratingFlags() 432 cast<OverflowingBinaryOperator>(this)->setHasNoSignedWrap(false); in dropPoisonGeneratingFlags() 675 if (IncludeWrapFlags && isa<OverflowingBinaryOperator>(this)) { in copyIRFlags() 676 if (auto *OB = dyn_cast<OverflowingBinaryOperator>(V)) { in copyIRFlags() 718 if (auto *OB = dyn_cast<OverflowingBinaryOperator>(V)) { in andIRFlags() 719 if (isa<OverflowingBinaryOperator>(this)) { in andIRFlags()
|
| H A D | ConstantRange.cpp | 328 using OBO = OverflowingBinaryOperator; in makeGuaranteedNoWrapRegion() 1106 using OBO = OverflowingBinaryOperator; in addWithNoWrap() 1153 using OBO = OverflowingBinaryOperator; in subWithNoWrap() 1252 if (NoWrapKind & OverflowingBinaryOperator::NoSignedWrap) in multiplyWithNoWrap() 1255 if (NoWrapKind & OverflowingBinaryOperator::NoUnsignedWrap) in multiplyWithNoWrap() 1259 if ((NoWrapKind == (OverflowingBinaryOperator::NoSignedWrap | in multiplyWithNoWrap() 1260 OverflowingBinaryOperator::NoUnsignedWrap)) && in multiplyWithNoWrap() 1779 case OverflowingBinaryOperator::NoSignedWrap: in shlWithNoWrap() 1781 case OverflowingBinaryOperator::NoUnsignedWrap: in shlWithNoWrap() 1783 case OverflowingBinaryOperator::NoSignedWrap | in shlWithNoWrap() [all …]
|
| H A D | Operator.cpp | 27 auto *OBO = cast<OverflowingBinaryOperator>(this); in hasPoisonGeneratingFlags()
|
| H A D | IntrinsicInst.cpp | 837 return OverflowingBinaryOperator::NoSignedWrap; in getNoWrapKind() 839 return OverflowingBinaryOperator::NoUnsignedWrap; in getNoWrapKind()
|
| H A D | Constants.cpp | 2630 unsigned Flags = (HasNUW ? OverflowingBinaryOperator::NoUnsignedWrap : 0) | in getAdd() 2631 (HasNSW ? OverflowingBinaryOperator::NoSignedWrap : 0); in getAdd() 2637 unsigned Flags = (HasNUW ? OverflowingBinaryOperator::NoUnsignedWrap : 0) | in getSub() 2638 (HasNSW ? OverflowingBinaryOperator::NoSignedWrap : 0); in getSub() 3426 if (isa<OverflowingBinaryOperator>(BO)) { in getAsInstruction() 3428 OverflowingBinaryOperator::NoUnsignedWrap); in getAsInstruction() 3430 OverflowingBinaryOperator::NoSignedWrap); in getAsInstruction()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineMulDivRem.cpp | 375 if (HasNSW && cast<OverflowingBinaryOperator>(Op0)->hasNoSignedWrap() && in visitMul() 376 cast<OverflowingBinaryOperator>(Op1)->hasNoSignedWrap()) in visitMul() 1205 auto *Mul = cast<OverflowingBinaryOperator>(Op0); in foldIDivShl() 1206 auto *Shl = cast<OverflowingBinaryOperator>(Op1); in foldIDivShl() 1225 auto *Shl0 = cast<OverflowingBinaryOperator>(Op0); in foldIDivShl() 1226 auto *Shl1 = cast<OverflowingBinaryOperator>(Op1); in foldIDivShl() 1248 auto *Shl0 = cast<OverflowingBinaryOperator>(Op0); in foldIDivShl() 1249 auto *Shl1 = cast<OverflowingBinaryOperator>(Op1); in foldIDivShl() 1355 auto *OBO = cast<OverflowingBinaryOperator>(Op0); in commonIDivTransforms() 1381 auto *OBO = cast<OverflowingBinaryOperator>(Op0); in commonIDivTransforms() [all …]
|
| H A D | InstCombineSimplifyDemanded.cpp | 569 bool NSW = cast<OverflowingBinaryOperator>(I)->hasNoSignedWrap(); in SimplifyDemandedUseBits() 570 bool NUW = cast<OverflowingBinaryOperator>(I)->hasNoUnsignedWrap(); in SimplifyDemandedUseBits() 612 bool NSW = cast<OverflowingBinaryOperator>(I)->hasNoSignedWrap(); in SimplifyDemandedUseBits() 613 bool NUW = cast<OverflowingBinaryOperator>(I)->hasNoUnsignedWrap(); in SimplifyDemandedUseBits() 1240 bool NSW = cast<OverflowingBinaryOperator>(I)->hasNoSignedWrap(); in SimplifyMultipleUseDemandedBits() 1241 bool NUW = cast<OverflowingBinaryOperator>(I)->hasNoUnsignedWrap(); in SimplifyMultipleUseDemandedBits() 1256 bool NSW = cast<OverflowingBinaryOperator>(I)->hasNoSignedWrap(); in SimplifyMultipleUseDemandedBits() 1257 bool NUW = cast<OverflowingBinaryOperator>(I)->hasNoUnsignedWrap(); in SimplifyMultipleUseDemandedBits()
|
| H A D | InstCombineShifts.cpp | 1308 cast<OverflowingBinaryOperator>(Op0)->hasNoSignedWrap()); in visitLShr() 1325 cast<OverflowingBinaryOperator>(Op0)->hasNoSignedWrap()); in visitLShr() 1348 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(Op0); in visitLShr() 1534 cast<OverflowingBinaryOperator>(Op0)->hasNoSignedWrap()); in visitLShr() 1803 cast<OverflowingBinaryOperator>(Op0)->hasNoUnsignedWrap()); in visitAShr()
|
| H A D | InstCombineAddSub.cpp | 1585 auto *OB0 = cast<OverflowingBinaryOperator>(LHS); in visitAdd() 1594 auto *OBO = cast<OverflowingBinaryOperator>(RHS); in visitAdd() 2169 if (auto *I = dyn_cast<OverflowingBinaryOperator>(Result)) in OptimizePointerDifference() 2286 auto *OBO1 = cast<OverflowingBinaryOperator>(Op1); in visitSub() 2369 OverflowingBinaryOperator *LHSSub = cast<OverflowingBinaryOperator>(Op0); in visitSub() 2817 auto *OBO0 = cast<OverflowingBinaryOperator>(Op0); in visitSub() 2818 auto *OBO1 = cast<OverflowingBinaryOperator>(Op1); in visitSub()
|
| H A D | InstructionCombining.cpp | 308 auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I); in maintainNoSignedWrap() 336 auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I); in hasNoUnsignedWrap() 341 auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I); in hasNoSignedWrap() 759 if (isa<OverflowingBinaryOperator>(&I)) { in tryFactorization() 763 if (auto *LOBO = dyn_cast<OverflowingBinaryOperator>(LHS)) { in tryFactorization() 768 if (auto *ROBO = dyn_cast<OverflowingBinaryOperator>(RHS)) { in tryFactorization() 4168 OverflowingBinaryOperator *Shl = cast<OverflowingBinaryOperator>(Cond); in visitSwitchInst()
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | TargetFolder.h | 88 Flags |= OverflowingBinaryOperator::NoUnsignedWrap; in FoldNoWrapBinOp() 90 Flags |= OverflowingBinaryOperator::NoSignedWrap; in FoldNoWrapBinOp()
|
| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | HashRecognize.cpp | 138 auto *OBO = cast<OverflowingBinaryOperator>(I); in computeBinOp() 147 auto *OBO = cast<OverflowingBinaryOperator>(I); in computeBinOp() 152 auto *OBO = cast<OverflowingBinaryOperator>(I); in computeBinOp()
|
| H A D | ValueTracking.cpp | 1233 bool NSW = Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(I)); in computeKnownBitsFromOperator() 1234 bool NUW = Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(I)); in computeKnownBitsFromOperator() 1402 bool NUW = Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(I)); in computeKnownBitsFromOperator() 1403 bool NSW = Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(I)); in computeKnownBitsFromOperator() 1441 bool NSW = Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(I)); in computeKnownBitsFromOperator() 1442 bool NUW = Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(I)); in computeKnownBitsFromOperator() 1448 bool NSW = Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(I)); in computeKnownBitsFromOperator() 1449 bool NUW = Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(I)); in computeKnownBitsFromOperator() 1647 auto *OverflowOp = dyn_cast<OverflowingBinaryOperator>(BO); in computeKnownBitsFromOperator() 2514 const OverflowingBinaryOperator *VOBO = cast<OverflowingBinaryOperator>(V); in isKnownToBeAPowerOfTwo() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | ScalarEvolutionExpander.cpp | 54 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(I)) { in PoisonFlags() 75 if (isa<OverflowingBinaryOperator>(I)) { in apply() 282 if (isa<OverflowingBinaryOperator>(I)) { in InsertBinop() 802 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(I)) in hoistIVInc() 1116 if (isa<OverflowingBinaryOperator>(IncV)) { in getAddRecExprPHILiterally() 1174 if (isa<OverflowingBinaryOperator>(Result)) { in expandAddRecExprLiterally() 1566 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(I)) in expand() 1651 auto *OBOIncV = dyn_cast<OverflowingBinaryOperator>(OrigInc); in replaceCongruentIVInc() 1652 auto *OBOIsomorphic = dyn_cast<OverflowingBinaryOperator>(IsomorphicInc); in replaceCongruentIVInc()
|
| H A D | SimplifyIndVar.cpp | 798 return (isa<OverflowingBinaryOperator>(BO) && in strengthenBinaryOp() 808 cast<OverflowingBinaryOperator>(BO)); in strengthenOverflowingOperation() 1415 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(Op)) { 1683 const OverflowingBinaryOperator *OBO = in widenWithVariantUse() 1684 cast<OverflowingBinaryOperator>(NarrowUse); in widenWithVariantUse() 2127 isa<OverflowingBinaryOperator>(OrigInc) && in createWideIV() 2128 isa<OverflowingBinaryOperator>(WideInc)) { in createWideIV() 2192 *NarrowDefRHS, OverflowingBinaryOperator::NoSignedWrap); in calculatePostIncRange()
|
| H A D | SCCPSolver.cpp | 112 if (isa<OverflowingBinaryOperator>(Inst)) { in refineInstruction() 121 OverflowingBinaryOperator::NoUnsignedWrap); in refineInstruction() 130 OverflowingBinaryOperator::NoSignedWrap); in refineInstruction() 1633 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(BO)) in visitBinaryOperator()
|
| H A D | FunctionComparator.cpp | 467 if (auto *OBOL = dyn_cast<OverflowingBinaryOperator>(LE)) { in cmpConstants() 468 auto *OBOR = cast<OverflowingBinaryOperator>(RE); in cmpConstants()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/SandboxVectorizer/ |
| H A D | Legality.cpp | 65 isa<OverflowingBinaryOperator>(I0) || isa<TruncInst>(I0); in notVectorizableBasedOnOpcodesAndTypes()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/ |
| H A D | WebAssemblyFastISel.cpp | 336 if (auto *OFBinOp = dyn_cast<OverflowingBinaryOperator>(U)) in computeAddress() 365 if (auto *OFBinOp = dyn_cast<OverflowingBinaryOperator>(U)) in computeAddress()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/ |
| H A D | DXILLegalizePass.cpp | 156 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I)) { in fixI8UseChain()
|