Lines Matching refs:BO

164   auto *BO = dyn_cast<BinaryOperator>(V);  in isReassociableOp()  local
165 if (BO && BO->hasOneUse() && BO->getOpcode() == Opcode) in isReassociableOp()
166 if (!isa<FPMathOperator>(BO) || hasFPAssociativeFlags(BO)) in isReassociableOp()
167 return BO; in isReassociableOp()
173 auto *BO = dyn_cast<BinaryOperator>(V); in isReassociableOp() local
174 if (BO && BO->hasOneUse() && in isReassociableOp()
175 (BO->getOpcode() == Opcode1 || BO->getOpcode() == Opcode2)) in isReassociableOp()
176 if (!isa<FPMathOperator>(BO) || hasFPAssociativeFlags(BO)) in isReassociableOp()
177 return BO; in isReassociableOp()
530 if (BinaryOperator *BO = isReassociableOp(Op, Opcode)) { in LinearizeExprTree() local
533 Worklist.push_back(std::make_pair(BO, Weight)); in LinearizeExprTree()
571 if (BinaryOperator *BO = isReassociableOp(Op, Opcode)) { in LinearizeExprTree()
573 Worklist.push_back(std::make_pair(BO, It->second)); in LinearizeExprTree()
731 BinaryOperator *BO = isReassociableOp(OldLHS, Opcode); in RewriteExprTree() local
732 if (BO && !NotRewritable.count(BO)) in RewriteExprTree()
733 NodesToRewrite.push_back(BO); in RewriteExprTree()
737 BinaryOperator *BO = isReassociableOp(OldRHS, Opcode); in RewriteExprTree() local
738 if (BO && !NotRewritable.count(BO)) in RewriteExprTree()
739 NodesToRewrite.push_back(BO); in RewriteExprTree()
764 BinaryOperator *BO = isReassociableOp(Op->getOperand(1), Opcode); in RewriteExprTree() local
765 if (BO && !NotRewritable.count(BO)) in RewriteExprTree()
766 NodesToRewrite.push_back(BO); in RewriteExprTree()
780 BinaryOperator *BO = isReassociableOp(Op->getOperand(0), Opcode); in RewriteExprTree() local
781 if (BO && !NotRewritable.count(BO)) { in RewriteExprTree()
782 Op = BO; in RewriteExprTree()
1184 BinaryOperator *BO = isReassociableOp(V, Instruction::Mul, Instruction::FMul); in RemoveFactorFromExpression() local
1185 if (!BO) in RemoveFactorFromExpression()
1190 MadeChange |= LinearizeExprTree(BO, Tree, RedoInsts, HasNUW); in RemoveFactorFromExpression()
1232 RewriteExprTree(BO, Factors, HasNUW); in RemoveFactorFromExpression()
1236 BasicBlock::iterator InsertPt = ++BO->getIterator(); in RemoveFactorFromExpression()
1241 RedoInsts.insert(BO); in RemoveFactorFromExpression()
1244 RewriteExprTree(BO, Factors, HasNUW); in RemoveFactorFromExpression()
1245 V = BO; in RemoveFactorFromExpression()
1249 V = CreateNeg(V, "neg", &*InsertPt, BO); in RemoveFactorFromExpression()
1260 BinaryOperator *BO = isReassociableOp(V, Instruction::Mul, Instruction::FMul); in FindSingleUseMultiplyFactors() local
1261 if (!BO) { in FindSingleUseMultiplyFactors()
1267 FindSingleUseMultiplyFactors(BO->getOperand(1), Factors); in FindSingleUseMultiplyFactors()
1268 FindSingleUseMultiplyFactors(BO->getOperand(0), Factors); in FindSingleUseMultiplyFactors()
2338 BinaryOperator *BO = cast<BinaryOperator>(I); in OptimizeInst() local
2342 unsigned Opcode = BO->getOpcode(); in OptimizeInst()
2343 if (BO->hasOneUse() && BO->user_back()->getOpcode() == Opcode) { in OptimizeInst()
2347 if (BO->user_back() != BO && in OptimizeInst()
2348 BO->getParent() == BO->user_back()->getParent()) in OptimizeInst()
2349 RedoInsts.insert(BO->user_back()); in OptimizeInst()
2355 if (BO->hasOneUse() && BO->getOpcode() == Instruction::Add && in OptimizeInst()
2356 cast<Instruction>(BO->user_back())->getOpcode() == Instruction::Sub) in OptimizeInst()
2358 if (BO->hasOneUse() && BO->getOpcode() == Instruction::FAdd && in OptimizeInst()
2359 cast<Instruction>(BO->user_back())->getOpcode() == Instruction::FSub) in OptimizeInst()
2362 ReassociateExpression(BO); in OptimizeInst()