Home | History | Annotate | Download | only in Scalar

Lines Matching refs:Factors

578   SmallVector<ValueEntry, 8> Factors;
579 LinearizeExprTree(BO, Factors);
583 for (unsigned i = 0, e = Factors.size(); i != e; ++i) {
584 if (Factors[i].Op == Factor) {
586 Factors.erase(Factors.begin()+i);
592 if (ConstantInt *FC2 = dyn_cast<ConstantInt>(Factors[i].Op))
595 Factors.erase(Factors.begin()+i);
602 RewriteExprTree(BO, Factors);
610 if (Factors.size() == 1) {
613 V = Factors[0].Op;
615 RewriteExprTree(BO, Factors);
626 /// add its operands as factors, otherwise add V to the list of factors.
630 SmallVectorImpl<Value*> &Factors,
637 Factors.push_back(V);
647 Factors.push_back(V);
653 // Otherwise, add the LHS and RHS to the list of factors.
654 FindSingleUseMultiplyFactors(BO->getOperand(1), Factors, Ops, false);
655 FindSingleUseMultiplyFactors(BO->getOperand(0), Factors, Ops, false);
781 // Scan the operand list, checking to see if there are any common factors
797 // Compute all of the factors of this added value.
798 SmallVector<Value*, 8> Factors;
799 FindSingleUseMultiplyFactors(BOp, Factors, Ops, true);
800 assert(Factors.size() > 1 && "Bad linearize!");
804 for (unsigned i = 0, e = Factors.size(); i != e; ++i) {
805 Value *Factor = Factors[i];
818 "Shouldn't have two constant factors, missed a canonicalize");
838 // Only try to remove factors from expressions we're allowed to.