Home
last modified time | relevance | path

Searched refs:OBO (Results 1 – 17 of 17) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/IR/
H A DOperator.cpp27 auto *OBO = cast<OverflowingBinaryOperator>(this); in hasPoisonGeneratingFlags() local
28 return OBO->hasNoUnsignedWrap() || OBO->hasNoSignedWrap(); in hasPoisonGeneratingFlags()
H A DConstantRange.cpp317 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 DAsmWriter.cpp1406 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 DSimplifyIndVar.cpp107 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 DScalarEvolutionExpander.cpp52 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 DSCCPSolver.cpp1532 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 DInstCombineShifts.cpp1326 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 DInstCombineMulDivRem.cpp1222 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 DInstructionCombining.cpp284 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 DCorrelatedValuePropagation.cpp1151 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 DScalarEvolution.cpp2378 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 DLoopAccessAnalysis.cpp1442 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 DLazyValueInfo.cpp1000 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(BO)) { in solveBlockValueBinaryOp() local
1001 unsigned NoWrapKind = OBO->getNoWrapKind(); in solveBlockValueBinaryOp()
H A DValueTracking.cpp3466 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 DDXILBitcodeWriter.cpp743 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 DScalarEvolution.h547 getStrengthenedNoWrapFlagsFromBinOp(const OverflowingBinaryOperator *OBO);
/freebsd/contrib/llvm-project/llvm/lib/Bitcode/Writer/
H A DBitcodeWriter.cpp1663 if (const auto *OBO = dyn_cast<OverflowingBinaryOperator>(V)) { in getOptimizationFlags() local
1664 if (OBO->hasNoSignedWrap()) in getOptimizationFlags()
1666 if (OBO->hasNoUnsignedWrap()) in getOptimizationFlags()