/freebsd/contrib/llvm-project/clang/include/clang/AST/ |
H A D | StmtVisitor.h | 48 if (PTR(BinaryOperator) BinOp = dyn_cast<BinaryOperator>(S)) { in Visit() 50 case BO_PtrMemD: DISPATCH(BinPtrMemD, BinaryOperator); in Visit() 51 case BO_PtrMemI: DISPATCH(BinPtrMemI, BinaryOperator); in Visit() 52 case BO_Mul: DISPATCH(BinMul, BinaryOperator); in Visit() 53 case BO_Div: DISPATCH(BinDiv, BinaryOperator); in Visit() 54 case BO_Rem: DISPATCH(BinRem, BinaryOperator); in Visit() 55 case BO_Add: DISPATCH(BinAdd, BinaryOperator); in Visit() 56 case BO_Sub: DISPATCH(BinSub, BinaryOperator); in Visit() 57 case BO_Shl: DISPATCH(BinShl, BinaryOperator); in Visit() 58 case BO_Shr: DISPATCH(BinShr, BinaryOperator); in Visit() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineInternal.h | 94 Instruction *visitAdd(BinaryOperator &I); 95 Instruction *visitFAdd(BinaryOperator &I); 98 Instruction *visitSub(BinaryOperator &I); 99 Instruction *visitFSub(BinaryOperator &I); 100 Instruction *visitMul(BinaryOperator &I); 101 Instruction *foldPowiReassoc(BinaryOperator &I); 102 Instruction *foldFMulReassoc(BinaryOperator &I); 103 Instruction *visitFMul(BinaryOperator &I); 104 Instruction *visitURem(BinaryOperator &I); 105 Instruction *visitSRem(BinaryOperator &I); [all …]
|
H A D | InstCombineMulDivRem.cpp | 66 BinaryOperator *I = dyn_cast<BinaryOperator>(V); in simplifyValueKnownNonZero() 99 static Value *foldMulSelectToNegate(BinaryOperator &I, in foldMulSelectToNegate() 145 static Value *foldMulShl1(BinaryOperator &Mul, bool CommuteOperands, in foldMulShl1() 165 BinaryOperator *Shift; in foldMulShl1() 195 Instruction *InstCombinerImpl::visitMul(BinaryOperator &I) { in visitMul() 221 return HasNSW ? BinaryOperator::CreateNSWNeg(Op0) in visitMul() 222 : BinaryOperator::CreateNeg(Op0); in visitMul() 237 BinaryOperator *Mul = cast<BinaryOperator>(I.getOperand(0)); in visitMul() 238 BinaryOperator *BO = BinaryOperator::CreateMul(NewOp, Shl); in visitMul() 249 BinaryOperator *Shl = BinaryOperator::CreateShl(NewOp, NewCst); in visitMul() [all …]
|
H A D | InstCombineShifts.cpp | 59 BinaryOperator *Sh0, const SimplifyQuery &SQ, in reassociateShiftAmtsOfTwoSameDirectionShifts() 147 BinaryOperator *NewShift = BinaryOperator::Create(ShiftOpcode, X, NewShAmt); in reassociateShiftAmtsOfTwoSameDirectionShifts() 189 dropRedundantMaskingOfLeftShiftInput(BinaryOperator *OuterShift, in dropRedundantMaskingOfLeftShiftInput() 334 auto *NewShift = BinaryOperator::Create(OuterShift->getOpcode(), X, in dropRedundantMaskingOfLeftShiftInput() 340 return BinaryOperator::Create(Instruction::And, NewShift, NewMask); in dropRedundantMaskingOfLeftShiftInput() 348 static Instruction *foldShiftOfShiftedBinOp(BinaryOperator &I, in foldShiftOfShiftedBinOp() 351 auto *BinInst = dyn_cast<BinaryOperator>(I.getOperand(0)); in foldShiftOfShiftedBinOp() 402 return BinaryOperator::Create(BinInst->getOpcode(), Op1, Op2); in foldShiftOfShiftedBinOp() 405 Instruction *InstCombinerImpl::commonShiftTransforms(BinaryOperator &I) { in commonShiftTransforms() 417 return BinaryOperator::Create(I.getOpcode(), Op0, NewExt); in commonShiftTransforms() [all …]
|
H A D | InstCombineAddSub.cpp | 752 static Value *checkForNegativeOperand(BinaryOperator &I, in checkForNegativeOperand() 809 static Instruction *foldNoWrapAdd(BinaryOperator &Add, in foldNoWrapAdd() 843 return BinaryOperator::CreateAdd(WideX, NewC); in foldNoWrapAdd() 851 return BinaryOperator::CreateAdd(WideX, NewC); in foldNoWrapAdd() 856 Instruction *InstCombinerImpl::foldAddWithConstant(BinaryOperator &Add) { in foldAddWithConstant() 871 return BinaryOperator::CreateSub(ConstantExpr::getAdd(Op00C, Op1C), X); in foldAddWithConstant() 878 return BinaryOperator::CreateAdd(Builder.CreateNot(Y), X); in foldAddWithConstant() 894 BinaryOperator *Res = in foldAddWithConstant() 895 BinaryOperator::CreateSub(ConstantExpr::getSub(Op1C, COne), X); in foldAddWithConstant() 914 BinaryOperator *NewAdd = in foldAddWithConstant() [all …]
|
H A D | InstCombineAndOrXor.cpp | 1526 Instruction *InstCombinerImpl::foldLogicOfIsFPClass(BinaryOperator &BO, in foldLogicOfIsFPClass() 1593 BinaryOperator &I) { in canonicalizeConditionalNegationViaMathToSelect() 1594 assert(I.getOpcode() == BinaryOperator::Xor && "Only for xor!"); in canonicalizeConditionalNegationViaMathToSelect() 1610 static Instruction *reassociateFCmps(BinaryOperator &BO, in reassociateFCmps() 1649 return BinaryOperator::Create(Opcode, NewFCmp, BO11); in reassociateFCmps() 1655 static Instruction *matchDeMorgansLaws(BinaryOperator &I, in matchDeMorgansLaws() 1673 return BinaryOperator::CreateNot(AndOr); in matchDeMorgansLaws() 1685 return BinaryOperator::Create(Opcode, A, IC.Builder.CreateNot(FlippedBO)); in matchDeMorgansLaws() 1708 static Instruction *foldLogicCastConstant(BinaryOperator &Logic, CastInst *Cast, in foldLogicCastConstant() 1743 Instruction *InstCombinerImpl::foldCastedBitwiseLogic(BinaryOperator &I) { in foldCastedBitwiseLogic() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
H A D | IntegerDivision.h | 20 class BinaryOperator; variable 32 bool expandRemainder(BinaryOperator *Rem); 41 bool expandDivision(BinaryOperator* Div); 49 bool expandRemainderUpTo32Bits(BinaryOperator *Rem); 55 bool expandRemainderUpTo64Bits(BinaryOperator *Rem); 62 bool expandDivisionUpTo32Bits(BinaryOperator *Div); 68 bool expandDivisionUpTo64Bits(BinaryOperator *Div);
|
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/ |
H A D | InstrTypes.h | 188 class BinaryOperator : public Instruction { 192 BinaryOperator(BinaryOps iType, Value *S1, Value *S2, Type *Ty, 198 BinaryOperator *cloneImpl() const; 213 static BinaryOperator *Create(BinaryOps Op, Value *S1, Value *S2, 221 static BinaryOperator *Create##OPC(Value *V1, Value *V2, \ 227 static BinaryOperator *Create##OPC(Value *V1, Value *V2, \ 233 static BinaryOperator *Create##OPC(Value *V1, Value *V2, \ 239 static BinaryOperator *Create##OPC(Value *V1, Value *V2, \ 245 static BinaryOperator * 249 BinaryOperator *BO = Create(Opc, V1, V2, Name, InsertBefore); [all …]
|
H A D | Instruction.def | 147 HANDLE_BINARY_INST(13, Add , BinaryOperator) 148 HANDLE_BINARY_INST(14, FAdd , BinaryOperator) 149 HANDLE_BINARY_INST(15, Sub , BinaryOperator) 150 HANDLE_BINARY_INST(16, FSub , BinaryOperator) 151 HANDLE_BINARY_INST(17, Mul , BinaryOperator) 152 HANDLE_BINARY_INST(18, FMul , BinaryOperator) 153 HANDLE_BINARY_INST(19, UDiv , BinaryOperator) 154 HANDLE_BINARY_INST(20, SDiv , BinaryOperator) 155 HANDLE_BINARY_INST(21, FDiv , BinaryOperator) 156 HANDLE_BINARY_INST(22, URem , BinaryOperator) [all …]
|
/freebsd/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ |
H A D | IdenticalExprChecker.cpp | 48 bool VisitBinaryOperator(const BinaryOperator *B); 53 void reportIdenticalExpr(const BinaryOperator *B, bool CheckBitwise, 55 void checkBitwiseOrLogicalOp(const BinaryOperator *B, bool CheckBitwise); 56 void checkComparisonOp(const BinaryOperator *B); 60 void FindIdenticalExprVisitor::reportIdenticalExpr(const BinaryOperator *B, in reportIdenticalExpr() 77 void FindIdenticalExprVisitor::checkBitwiseOrLogicalOp(const BinaryOperator *B, in checkBitwiseOrLogicalOp() 88 while (const BinaryOperator *B2 = dyn_cast<BinaryOperator>(LHS)) { in checkBitwiseOrLogicalOp() 181 bool FindIdenticalExprVisitor::VisitBinaryOperator(const BinaryOperator *B) { in VisitBinaryOperator() 182 BinaryOperator::Opcode Op = B->getOpcode(); in VisitBinaryOperator() 184 if (BinaryOperator::isBitwiseOp(Op)) in VisitBinaryOperator() [all …]
|
H A D | MallocOverflowSecurityChecker.cpp | 37 const BinaryOperator *mulop; 41 MallocOverflowCheck(const CallExpr *call, const BinaryOperator *m, in MallocOverflowCheck() 77 const BinaryOperator * mulop = nullptr; in CheckMallocArgument() 83 if (const BinaryOperator *binop = dyn_cast<BinaryOperator>(e)) { in CheckMallocArgument() 177 void CheckAssignmentExpr(BinaryOperator *AssignEx) { in CheckAssignmentExpr() 192 if (const BinaryOperator *BOp = dyn_cast<BinaryOperator>(rhse)) { in CheckAssignmentExpr() 229 void VisitBinaryOperator(BinaryOperator *E) { in VisitBinaryOperator()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | ExpandLargeDivRem.cpp | 57 static void scalarize(BinaryOperator *BO, in scalarize() 58 SmallVectorImpl<BinaryOperator *> &Replace) { in scalarize() 70 if (auto *NewBO = dyn_cast<BinaryOperator>(Op)) { in scalarize() 81 SmallVector<BinaryOperator *, 4> Replace; in runImpl() 82 SmallVector<BinaryOperator *, 4> ReplaceVector; in runImpl() 112 ReplaceVector.push_back(&cast<BinaryOperator>(I)); in runImpl() 114 Replace.push_back(&cast<BinaryOperator>(I)); in runImpl() 124 BinaryOperator *BO = ReplaceVector.pop_back_val(); in runImpl() 132 BinaryOperator *I = Replace.pop_back_val(); in runImpl()
|
/freebsd/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ |
H A D | RangedConstraintManager.cpp | 36 BinaryOperator::Opcode op = SIE->getOpcode(); in assumeSym() 37 if (BinaryOperator::isComparisonOp(op) && op != BO_Cmp) { in assumeSym() 39 op = BinaryOperator::negateComparisonOp(op); in assumeSym() 50 BinaryOperator::Opcode Op = SSE->getOpcode(); in assumeSym() 51 if (BinaryOperator::isComparisonOp(Op)) { in assumeSym() 69 Op = BinaryOperator::reverseComparisonOp(Op); in assumeSym() 71 Op = BinaryOperator::negateComparisonOp(Op); in assumeSym() 75 if (BinaryOperator::isEqualityOp(Op)) { in assumeSym() 154 BinaryOperator::Opcode Op, in assumeSymRel() 156 assert(BinaryOperator::isComparisonOp(Op) && in assumeSymRel() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | Reassociate.cpp | 163 static BinaryOperator *isReassociableOp(Value *V, unsigned Opcode) { in isReassociableOp() 164 auto *BO = dyn_cast<BinaryOperator>(V); in isReassociableOp() 171 static BinaryOperator *isReassociableOp(Value *V, unsigned Opcode1, in isReassociableOp() 173 auto *BO = dyn_cast<BinaryOperator>(V); in isReassociableOp() 237 assert(isa<BinaryOperator>(I) && "Expected binary operator."); in canonicalizeOperands() 245 cast<BinaryOperator>(I)->swapOperands(); in canonicalizeOperands() 248 static BinaryOperator *CreateAdd(Value *S1, Value *S2, const Twine &Name, in CreateAdd() 252 return BinaryOperator::CreateAdd(S1, S2, Name, InsertBefore); in CreateAdd() 254 BinaryOperator *Res = in CreateAdd() 255 BinaryOperator::CreateFAdd(S1, S2, Name, InsertBefore); in CreateAdd() [all …]
|
H A D | CorrelatedValuePropagation.cpp | 494 static bool processBinOp(BinaryOperator *BinOp, LazyValueInfo *LVI); 524 if (auto *BO = dyn_cast<BinaryOperator>(NegX)) in processAbsIntrinsic() 627 if (auto *BO = dyn_cast<BinaryOperator>(NewOp)) in processOverflowIntrinsic() 637 BinaryOperator *BinOp = BinaryOperator::Create( in processSaturatingInst() 647 if (auto *BO = dyn_cast<BinaryOperator>(BinOp)) in processSaturatingInst() 746 static bool narrowSDivOrSRem(BinaryOperator *Instr, const ConstantRange &LCR, in narrowSDivOrSRem() 783 if (auto *BinOp = dyn_cast<BinaryOperator>(BO)) in narrowSDivOrSRem() 792 static bool expandUDivOrURem(BinaryOperator *Instr, const ConstantRange &XCR, in expandUDivOrURem() 875 static bool narrowUDivOrURem(BinaryOperator *Instr, const ConstantRange &XCR, in narrowUDivOrURem() 903 if (auto *BinOp = dyn_cast<BinaryOperator>(BO)) in narrowUDivOrURem() [all …]
|
H A D | SeparateConstOffsetFromGEP.cpp | 267 APInt findInEitherOperand(BinaryOperator *BO, bool SignExtended, 319 bool CanTraceInto(bool SignExtended, bool ZeroExtended, BinaryOperator *BO, 513 BinaryOperator *BO, in CanTraceInto() 580 APInt ConstantOffsetExtractor::findInEitherOperand(BinaryOperator *BO, in findInEitherOperand() 630 } else if (BinaryOperator *BO = dyn_cast<BinaryOperator>(V)) { in find() 712 BinaryOperator *BO = cast<BinaryOperator>(U); in distributeExtsAndCloneChain() 718 BinaryOperator *NewBO = nullptr; in distributeExtsAndCloneChain() 720 NewBO = BinaryOperator::Create(BO->getOpcode(), NextInChain, TheOther, in distributeExtsAndCloneChain() 723 NewBO = BinaryOperator::Create(BO->getOpcode(), TheOther, NextInChain, in distributeExtsAndCloneChain() 735 BinaryOperator *BO = cast<BinaryOperator>(UserChain[ChainIndex]); in removeConstOffset() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
H A D | NaryReassociate.h | 89 class BinaryOperator; variable 139 Instruction *tryReassociateBinaryOp(BinaryOperator *I); 144 BinaryOperator *I); 147 BinaryOperator *I); 150 bool matchTernaryOp(BinaryOperator *I, Value *V, Value *&Op1, Value *&Op2); 153 const SCEV *getBinarySCEV(BinaryOperator *I, const SCEV *LHS,
|
H A D | Reassociate.h | 37 class BinaryOperator; variable 117 void ReassociateExpression(BinaryOperator *I); 118 void RewriteExprTree(BinaryOperator *I, 121 Value *OptimizeExpression(BinaryOperator *I, 134 Value *OptimizeMul(BinaryOperator *I,
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | IntegerDivision.cpp | 354 bool llvm::expandRemainder(BinaryOperator *Rem) { in expandRemainder() 380 BinaryOperator *BO = dyn_cast<BinaryOperator>(Builder.GetInsertPoint()); in expandRemainder() 393 if (BinaryOperator *UDiv = dyn_cast<BinaryOperator>(Builder.GetInsertPoint())) { in expandRemainder() 407 bool llvm::expandDivision(BinaryOperator *Div) { in expandDivision() 434 BinaryOperator *BO = dyn_cast<BinaryOperator>(Builder.GetInsertPoint()); in expandDivision() 456 bool llvm::expandRemainderUpTo32Bits(BinaryOperator *Rem) { in expandRemainderUpTo32Bits() 497 return expandRemainder(cast<BinaryOperator>(ExtRem)); in expandRemainderUpTo32Bits() 505 bool llvm::expandRemainderUpTo64Bits(BinaryOperator *Rem) { in expandRemainderUpTo64Bits() 543 return expandRemainder(cast<BinaryOperator>(ExtRem)); in expandRemainderUpTo64Bits() 552 bool llvm::expandDivisionUpTo32Bits(BinaryOperator *Div) { in expandDivisionUpTo32Bits() [all …]
|
H A D | SimplifyIndVar.cpp | 100 void simplifyIVRemainder(BinaryOperator *Rem, Instruction *IVOperand, 102 void replaceRemWithNumerator(BinaryOperator *Rem); 103 void replaceRemWithNumeratorOrZero(BinaryOperator *Rem); 104 void replaceSRemWithURem(BinaryOperator *Rem); 105 bool eliminateSDiv(BinaryOperator *SDiv); 106 bool strengthenBinaryOp(BinaryOperator *BO, Instruction *IVOperand); 107 bool strengthenOverflowingOperation(BinaryOperator *OBO, 109 bool strengthenRightShift(BinaryOperator *BO, Instruction *IVOperand); 152 if (!isa<BinaryOperator>(IVOperand) in foldIVUser() 298 bool SimplifyIndvar::eliminateSDiv(BinaryOperator *SDiv) { in eliminateSDiv() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | Lint.cpp | 105 void visitXor(BinaryOperator &I); 106 void visitSub(BinaryOperator &I); 107 void visitLShr(BinaryOperator &I); 108 void visitAShr(BinaryOperator &I); 109 void visitShl(BinaryOperator &I); 110 void visitSDiv(BinaryOperator &I); 111 void visitUDiv(BinaryOperator &I); 112 void visitSRem(BinaryOperator &I); 113 void visitURem(BinaryOperator &I); 481 void Lint::visitXor(BinaryOperator &I) { in visitXor() [all …]
|
H A D | PHITransAddr.cpp | 246 bool isNSW = cast<BinaryOperator>(Inst)->hasNoSignedWrap(); in translateSubExpr() 247 bool isNUW = cast<BinaryOperator>(Inst)->hasNoUnsignedWrap(); in translateSubExpr() 253 if (BinaryOperator *BOp = dyn_cast<BinaryOperator>(LHS)) in translateSubExpr() 281 if (BinaryOperator *BO = dyn_cast<BinaryOperator>(U)) in translateSubExpr() 413 BinaryOperator *Res = BinaryOperator::CreateAdd( in insertTranslatedSubExpr() 416 Res->setHasNoSignedWrap(cast<BinaryOperator>(Inst)->hasNoSignedWrap()); in insertTranslatedSubExpr() 417 Res->setHasNoUnsignedWrap(cast<BinaryOperator>(Inst)->hasNoUnsignedWrap()); in insertTranslatedSubExpr()
|
/freebsd/contrib/llvm-project/clang/lib/ARCMigrate/ |
H A D | TransZeroOutPropsInDealloc.cpp | 90 bool VisitBinaryOperator(BinaryOperator *BOE) { in VisitBinaryOperator() 151 if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) in isZeroingPropIvar() 158 bool isZeroingPropIvar(BinaryOperator *BOE) { in isZeroingPropIvar() 191 BinaryOperator *BO = dyn_cast<BinaryOperator>(PO->getSyntacticForm()); in isZeroingPropIvar()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AVR/ |
H A D | AVRShiftExpand.cpp | 36 void expand(BinaryOperator *BI); 49 SmallVector<BinaryOperator *, 1> ShiftInsts; in runOnFunction() 63 ShiftInsts.push_back(cast<BinaryOperator>(&I)); in runOnFunction() 77 void AVRShiftExpand::expand(BinaryOperator *BI) { in expand()
|
/freebsd/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ |
H A D | SValBuilder.h | 95 virtual SVal evalBinOpNN(ProgramStateRef state, BinaryOperator::Opcode op, 100 virtual SVal evalBinOpLL(ProgramStateRef state, BinaryOperator::Opcode op, 106 virtual SVal evalBinOpLN(ProgramStateRef state, BinaryOperator::Opcode op, 131 SVal makeSymExprValNN(BinaryOperator::Opcode op, 137 SVal evalBinOp(ProgramStateRef state, BinaryOperator::Opcode op, 333 nonloc::SymbolVal makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op, 337 BinaryOperator::Opcode op, const SymExpr *lhs, 340 nonloc::SymbolVal makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
|