• Home
  • Raw
  • Download

Lines Matching refs:BinaryOperator

95     Value *ReassociateExpression(BinaryOperator *I);
96 void RewriteExprTree(BinaryOperator *I, SmallVectorImpl<ValueEntry> &Ops,
98 Value *OptimizeExpression(BinaryOperator *I,
101 void LinearizeExprTree(BinaryOperator *I, SmallVectorImpl<ValueEntry> &Ops);
102 void LinearizeExpr(BinaryOperator *I);
119 if (!Op || !isa<BinaryOperator>(Op)) in RemoveDeadBinaryOp()
192 (!BinaryOperator::isNot(I) && !BinaryOperator::isNeg(I))) in getRank()
203 static BinaryOperator *isReassociableOp(Value *V, unsigned Opcode) { in isReassociableOp()
206 return cast<BinaryOperator>(V); in isReassociableOp()
216 Instruction *Res = BinaryOperator::CreateMul(Neg->getOperand(1), Cst, "",Neg); in LowerNegateToMultiply()
229 void Reassociate::LinearizeExpr(BinaryOperator *I) { in LinearizeExpr()
230 BinaryOperator *LHS = cast<BinaryOperator>(I->getOperand(0)); in LinearizeExpr()
231 BinaryOperator *RHS = cast<BinaryOperator>(I->getOperand(1)); in LinearizeExpr()
272 void Reassociate::LinearizeExprTree(BinaryOperator *I, in LinearizeExprTree()
278 BinaryOperator *LHSBO = isReassociableOp(LHS, Opcode); in LinearizeExprTree()
279 BinaryOperator *RHSBO = isReassociableOp(RHS, Opcode); in LinearizeExprTree()
284 if (!LHSBO && LHS->hasOneUse() && BinaryOperator::isNeg(LHS)) { in LinearizeExprTree()
288 if (!RHSBO && RHS->hasOneUse() && BinaryOperator::isNeg(RHS)) { in LinearizeExprTree()
318 LHS = LHSBO = cast<BinaryOperator>(I->getOperand(0)); in LinearizeExprTree()
344 void Reassociate::RewriteExprTree(BinaryOperator *I, in RewriteExprTree()
385 BinaryOperator *LHS = cast<BinaryOperator>(I->getOperand(0)); in RewriteExprTree()
435 if (!BinaryOperator::isNeg(U)) continue; in NegateValue()
441 BinaryOperator *TheNeg = cast<BinaryOperator>(U); in NegateValue()
465 return BinaryOperator::CreateNeg(V, V->getName() + ".neg", BI); in NegateValue()
472 if (BinaryOperator::isNeg(Sub)) in ShouldBreakUpSubtract()
504 BinaryOperator::CreateAdd(Sub->getOperand(0), NegVal, "", Sub); in BreakUpSubtract()
532 BinaryOperator::CreateMul(Shl->getOperand(0), MulCst, "", Shl); in ConvertShiftToMul()
568 return BinaryOperator::CreateAdd(V2, V1, "tmp", I); in EmitAddTreeOfValues()
575 BinaryOperator *BO = isReassociableOp(V, Instruction::Mul); in RemoveFactorFromExpression()
620 V = BinaryOperator::CreateNeg(V, "neg", InsertPt); in RemoveFactorFromExpression()
633 BinaryOperator *BO; in FindSingleUseMultiplyFactors()
635 !(BO = dyn_cast<BinaryOperator>(V)) || in FindSingleUseMultiplyFactors()
669 if (BinaryOperator::isNot(Ops[i].Op)) { // Cannot occur for ^. in OptimizeAndOrXor()
670 Value *X = BinaryOperator::getNotArgument(Ops[i].Op); in OptimizeAndOrXor()
736 Mul = BinaryOperator::CreateMul(TheOp, Mul, "factor", I); in OptimizeAdd()
758 if (!BinaryOperator::isNeg(TheOp)) in OptimizeAdd()
761 Value *X = BinaryOperator::getNegArgument(TheOp); in OptimizeAdd()
793 BinaryOperator *BOp = dyn_cast<BinaryOperator>(Ops[i].Op); in OptimizeAdd()
835 Instruction *DummyInst = BinaryOperator::CreateAdd(MaxOccVal, MaxOccVal); in OptimizeAdd()
839 BinaryOperator *BOp = dyn_cast<BinaryOperator>(Ops[i].Op); in OptimizeAdd()
868 V = ReassociateExpression(cast<BinaryOperator>(V)); in OptimizeAdd()
871 Value *V2 = BinaryOperator::CreateMul(V, MaxOccVal, "tmp", I); in OptimizeAdd()
875 V2 = ReassociateExpression(cast<BinaryOperator>(V2)); in OptimizeAdd()
891 Value *Reassociate::OptimizeExpression(BinaryOperator *I, in OptimizeExpression()
981 if (!isa<BinaryOperator>(BI) || BI->getType()->isFloatingPointTy() || in ReassociateInst()
1004 } else if (BinaryOperator::isNeg(BI)) { in ReassociateInst()
1018 BinaryOperator *I = cast<BinaryOperator>(BI); in ReassociateInst()
1034 Value *Reassociate::ReassociateExpression(BinaryOperator *I) { in ReassociateExpression()