Lines Matching defs:VPValue

61 raw_ostream &llvm::operator<<(raw_ostream &OS, const VPValue &V) {
83 VPValue::VPValue(const unsigned char SC, Value *UV, VPDef *Def)
89 VPValue::~VPValue() {
90 assert(Users.empty() && "trying to delete a VPValue with remaining users");
96 void VPValue::print(raw_ostream &OS, VPSlotTracker &SlotTracker) const {
103 void VPValue::dump() const {
120 VPRecipeBase *VPValue::getDefiningRecipe() {
124 const VPRecipeBase *VPValue::getDefiningRecipe() const {
227 Value *VPTransformState::get(VPValue *Def, const VPIteration &Instance) {
254 Value *VPTransformState::get(VPValue *Def, unsigned Part, bool NeedsScalar) {
401 void VPTransformState::packScalarIntoVectorValue(VPValue *Def,
527 void VPBasicBlock::dropAllReferences(VPValue *NewValue) {
722 void VPRegionBlock::dropAllReferences(VPValue *NewValue) {
843 VPValue DummyValue;
852 for (VPValue *VPV : VPLiveInsToFree)
904 VPValue *Cmp =
939 VPValue *VPV = getOrAddLiveIn(CanonicalIVStartValue);
1182 void VPlan::addLiveOut(PHINode *PN, VPValue *V) {
1188 DenseMap<VPValue *, VPValue *> &Old2NewVPValues) {
1219 VPValue *NewOp = Old2NewVPValues.lookup(NewR.getOperand(I));
1232 DenseMap<VPValue *, VPValue *> Old2NewVPValues;
1233 for (VPValue *OldLiveIn : VPLiveInsToFree) {
1240 NewPlan->BackedgeTakenCount = new VPValue();
1421 void VPValue::replaceAllUsesWith(VPValue *New) {
1425 void VPValue::replaceUsesWithIf(
1426 VPValue *New,
1429 // below relies on the number of users for this VPValue to decrease, which
1453 void VPValue::printAsOperand(raw_ostream &OS, VPSlotTracker &Tracker) const {
1458 interleaveComma(operands(), O, [&O, &SlotTracker](VPValue *Op) {
1516 void VPSlotTracker::assignName(const VPValue *V) {
1517 assert(!VPValue2Name.contains(V) && "VPValue already has a name!");
1555 for (VPValue *LI : Plan.VPLiveInsToFree)
1568 for (VPValue *Def : Recipe.definedValues())
1572 std::string VPSlotTracker::getOrCreateName(const VPValue *V) const {
1587 "VPValue defined by a recipe in a VPlan?");
1600 bool vputils::onlyFirstLaneUsed(const VPValue *Def) {
1605 bool vputils::onlyFirstPartUsed(const VPValue *Def) {
1610 VPValue *vputils::getOrCreateVPValueForSCEVExpr(VPlan &Plan, const SCEV *Expr,
1614 VPValue *Expanded = nullptr;
1627 bool vputils::isHeaderMask(VPValue *V, VPlan &Plan) {
1631 auto IsWideCanonicalIV = [](VPValue *A) {
1637 VPValue *A, *B;