Home
last modified time | relevance | path

Searched refs:OverflowingBinaryOperator (Results 1 – 25 of 47) sorted by relevance

12

/freebsd/contrib/llvm-project/llvm/include/llvm/SandboxIR/
H A DOperator.h35 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 DValue.h34 class OverflowingBinaryOperator; variable
169 friend class OverflowingBinaryOperator; // For `Val`. variable
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DOperator.h78 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 DPatternMatch.h1300 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 DConstantFolder.h77 Flags |= OverflowingBinaryOperator::NoUnsignedWrap; in FoldNoWrapBinOp()
79 Flags |= OverflowingBinaryOperator::NoSignedWrap; in FoldNoWrapBinOp()
/freebsd/contrib/llvm-project/llvm/lib/IR/
H A DInstruction.cpp379 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 DConstantRange.cpp328 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 DOperator.cpp27 auto *OBO = cast<OverflowingBinaryOperator>(this); in hasPoisonGeneratingFlags()
H A DIntrinsicInst.cpp837 return OverflowingBinaryOperator::NoSignedWrap; in getNoWrapKind()
839 return OverflowingBinaryOperator::NoUnsignedWrap; in getNoWrapKind()
H A DConstants.cpp2630 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 DInstCombineMulDivRem.cpp375 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 DInstCombineSimplifyDemanded.cpp569 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 DInstCombineShifts.cpp1308 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 DInstCombineAddSub.cpp1585 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 DInstructionCombining.cpp308 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 DTargetFolder.h88 Flags |= OverflowingBinaryOperator::NoUnsignedWrap; in FoldNoWrapBinOp()
90 Flags |= OverflowingBinaryOperator::NoSignedWrap; in FoldNoWrapBinOp()
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DHashRecognize.cpp138 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 DValueTracking.cpp1233 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 DScalarEvolutionExpander.cpp54 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 DSimplifyIndVar.cpp798 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 DSCCPSolver.cpp112 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 DFunctionComparator.cpp467 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 DLegality.cpp65 isa<OverflowingBinaryOperator>(I0) || isa<TruncInst>(I0); in notVectorizableBasedOnOpcodesAndTypes()
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/
H A DWebAssemblyFastISel.cpp336 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 DDXILLegalizePass.cpp156 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(&I)) { in fixI8UseChain()

12