Home
last modified time | relevance | path

Searched refs:BinaryOperator (Results 1 – 25 of 267) sorted by relevance

1234567891011

/freebsd/contrib/llvm-project/clang/include/clang/AST/
H A DStmtVisitor.h48 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 DInstCombineInternal.h94 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 DInstCombineMulDivRem.cpp66 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 DInstCombineShifts.cpp59 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 DInstCombineAddSub.cpp752 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 DInstCombineAndOrXor.cpp1526 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 DIntegerDivision.h20 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 DInstrTypes.h188 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 DInstruction.def147 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 DIdenticalExprChecker.cpp48 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 DMallocOverflowSecurityChecker.cpp37 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 DExpandLargeDivRem.cpp57 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 DRangedConstraintManager.cpp36 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 DReassociate.cpp163 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 DCorrelatedValuePropagation.cpp494 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 DSeparateConstOffsetFromGEP.cpp267 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 DNaryReassociate.h89 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 DReassociate.h37 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 DIntegerDivision.cpp354 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 DSimplifyIndVar.cpp100 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 DLint.cpp105 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 DPHITransAddr.cpp246 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 DTransZeroOutPropsInDealloc.cpp90 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 DAVRShiftExpand.cpp36 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 DSValBuilder.h95 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,

1234567891011