Home | History | Annotate | Download | only in Vectorize

Lines Matching defs:Roots

337   /// Construct a vectorizable tree that starts at \p Roots, ignoring users for
339 void buildTree(ArrayRef<Value *> Roots,
398 void buildTree_rec(ArrayRef<Value *> Roots, unsigned Depth);
420 /// roots. This method calculates the cost of extracting the values.
911 void BoUpSLP::buildTree(ArrayRef<Value *> Roots,
915 if (!getSameType(Roots))
917 buildTree_rec(Roots, 0);
3263 // in ToDemote and additional roots that require investigating in Roots.
3266 SmallVectorImpl<Value *> &Roots) {
3285 Roots.push_back(I->getOperand(0));
3298 if (!collectValuesToDemote(I->getOperand(0), Expr, ToDemote, Roots) ||
3299 !collectValuesToDemote(I->getOperand(1), Expr, ToDemote, Roots))
3306 if (!collectValuesToDemote(SI->getTrueValue(), Expr, ToDemote, Roots) ||
3307 !collectValuesToDemote(SI->getFalseValue(), Expr, ToDemote, Roots))
3317 if (!collectValuesToDemote(IncValue, Expr, ToDemote, Roots))
3344 // If the expression is not rooted by a store, these roots should have
3349 // below ensures that only the roots are used externally.
3363 // Ensure the roots of the vectorizable tree don't form a cycle. They must
3369 // Conservatively determine if we can actually truncate the roots of the
3371 // additional roots that require investigating in Roots.
3373 SmallVector<Value *, 4> Roots;
3375 if (!collectValuesToDemote(Root, Expr, ToDemote, Roots))
3379 // demoted without loss of precision. It would be safe to truncate the roots
3383 // We first check if all the bits of the roots are demanded. If they're not,
3384 // we can truncate the roots to this narrower type.
3391 // If all the bits of the roots are demanded, we can try a little harder to
3392 // compute a narrower type. This can happen, for example, if the roots are
3413 // If the maximum bit width we compute is less than the with of the roots'
3421 while (!Roots.empty())
3422 collectValuesToDemote(Roots.pop_back_val(), Expr, ToDemote, Roots);