Home
last modified time | relevance | path

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

12

/freebsd-14.2/contrib/llvm-project/llvm/include/llvm/IR/
H A DOperator.h75 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 DPatternMatch.h1141 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 DConstantFolder.h76 Flags |= OverflowingBinaryOperator::NoUnsignedWrap; in FoldNoWrapBinOp()
78 Flags |= OverflowingBinaryOperator::NoSignedWrap; in FoldNoWrapBinOp()
/freebsd-14.2/contrib/llvm-project/llvm/lib/IR/
H A DInstruction.cpp327 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 DConstants.cpp2455 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 DOperator.cpp27 auto *OBO = cast<OverflowingBinaryOperator>(this); in hasPoisonGeneratingFlags()
H A DIntrinsicInst.cpp863 return OverflowingBinaryOperator::NoSignedWrap; in getNoWrapKind()
865 return OverflowingBinaryOperator::NoUnsignedWrap; in getNoWrapKind()
H A DConstantRange.cpp288 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 DInstCombineMulDivRem.cpp960 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 DInstCombineSimplifyDemanded.cpp567 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 DInstructionCombining.cpp266 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 DInstCombineAddSub.cpp1502 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 DTargetFolder.h87 Flags |= OverflowingBinaryOperator::NoUnsignedWrap; in FoldNoWrapBinOp()
89 Flags |= OverflowingBinaryOperator::NoSignedWrap; in FoldNoWrapBinOp()
H A DScalarEvolution.h47 class OverflowingBinaryOperator; variable
547 getStrengthenedNoWrapFlagsFromBinOp(const OverflowingBinaryOperator *OBO);
/freebsd-14.2/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DSimplifyIndVar.cpp771 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 DScalarEvolutionExpander.cpp236 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 DFunctionComparator.cpp433 if (auto *OBOL = dyn_cast<OverflowingBinaryOperator>(LE)) { in cmpConstants()
434 auto *OBOR = cast<OverflowingBinaryOperator>(RE); in cmpConstants()
H A DSCCPSolver.cpp122 if (isa<OverflowingBinaryOperator>(Inst)) { in refineInstruction()
128 OverflowingBinaryOperator::NoUnsignedWrap); in refineInstruction()
137 OverflowingBinaryOperator::NoSignedWrap); in refineInstruction()
H A DLoopUnroll.cpp256 auto *InnerOBO = cast<OverflowingBinaryOperator>(Inst.getOperand(0)); in simplifyLoopAfterUnroll()
H A DLoopConstrainer.cpp888 if (isa<OverflowingBinaryOperator>(MainLoopStructure.IndVarBase)) in run()
/freebsd-14.2/contrib/llvm-project/llvm/lib/Analysis/
H A DValueTracking.cpp1315 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 DLazyValueInfo.cpp999 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(BO)) { in solveBlockValueBinaryOp()
1002 NoWrapKind |= OverflowingBinaryOperator::NoUnsignedWrap; in solveBlockValueBinaryOp()
1004 NoWrapKind |= OverflowingBinaryOperator::NoSignedWrap; in solveBlockValueBinaryOp()
H A DInstructionSimplify.cpp1151 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 DTypePromotion.cpp403 if (!isa<OverflowingBinaryOperator>(I)) in isPromotedResultSafe()
H A DMachineInstr.cpp550 if (const OverflowingBinaryOperator *OB = in copyFlagsFromInstruction()
551 dyn_cast<OverflowingBinaryOperator>(&I)) { in copyFlagsFromInstruction()

12