Skip to content

Commit 11676da

Browse files
authored
[SLP] Normalize debug messages for newTreeEntry. (#119514)
A debug message should follow after newTreeEntry. Make ExtractValueInst and ExtractElementInst use setOperand directly.
1 parent 24eb156 commit 11676da

File tree

1 file changed

+49
-20
lines changed

1 file changed

+49
-20
lines changed

Diff for: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

+49-20
Original file line numberDiff line numberDiff line change
@@ -8391,7 +8391,8 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
83918391

83928392
TreeEntry *TE =
83938393
newTreeEntry(VL, Bundle, S, UserTreeIdx, ReuseShuffleIndices);
8394-
LLVM_DEBUG(dbgs() << "SLP: added a vector of PHINodes.\n");
8394+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (PHINode).\n";
8395+
TE->dump());
83958396

83968397
// Keeps the reordered operands to avoid code duplication.
83978398
PHIHandler Handler(*DT, PH, VL);
@@ -8420,13 +8421,14 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
84208421
}
84218422
// Insert new order with initial value 0, if it does not exist,
84228423
// otherwise return the iterator to the existing one.
8423-
newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
8424-
ReuseShuffleIndices, CurrentOrder);
8424+
TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
8425+
ReuseShuffleIndices, CurrentOrder);
8426+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry "
8427+
"(ExtractValueInst/ExtractElementInst).\n";
8428+
TE->dump());
84258429
// This is a special case, as it does not gather, but at the same time
84268430
// we are not extending buildTree_rec() towards the operands.
8427-
ValueList Op0;
8428-
Op0.assign(VL.size(), VL0->getOperand(0));
8429-
VectorizableTree.back()->setOperand(0, Op0);
8431+
TE->setOperand(*this);
84308432
return;
84318433
}
84328434
case Instruction::InsertElement: {
@@ -8454,7 +8456,8 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
84548456
CurrentOrder.clear();
84558457
TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
84568458
{}, CurrentOrder);
8457-
LLVM_DEBUG(dbgs() << "SLP: added inserts bundle.\n");
8459+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (InsertElementInst).\n";
8460+
TE->dump());
84588461

84598462
TE->setOperand(*this);
84608463
buildTree_rec(TE->getOperand(1), Depth + 1, {TE, 1});
@@ -8474,21 +8477,28 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
84748477
TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
84758478
ReuseShuffleIndices, CurrentOrder, InterleaveFactor);
84768479
if (CurrentOrder.empty())
8477-
LLVM_DEBUG(dbgs() << "SLP: added a vector of loads.\n");
8480+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (LoadInst).\n";
8481+
TE->dump());
84788482
else
8479-
LLVM_DEBUG(dbgs() << "SLP: added a vector of jumbled loads.\n");
8483+
LLVM_DEBUG(dbgs()
8484+
<< "SLP: added a new TreeEntry (jumbled LoadInst).\n";
8485+
TE->dump());
84808486
break;
84818487
case TreeEntry::StridedVectorize:
84828488
// Vectorizing non-consecutive loads with `llvm.masked.gather`.
84838489
TE = newTreeEntry(VL, TreeEntry::StridedVectorize, Bundle, S,
84848490
UserTreeIdx, ReuseShuffleIndices, CurrentOrder);
8485-
LLVM_DEBUG(dbgs() << "SLP: added a vector of strided loads.\n");
8491+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (strided LoadInst).\n";
8492+
TE->dump());
84868493
break;
84878494
case TreeEntry::ScatterVectorize:
84888495
// Vectorizing non-consecutive loads with `llvm.masked.gather`.
84898496
TE = newTreeEntry(VL, TreeEntry::ScatterVectorize, Bundle, S,
84908497
UserTreeIdx, ReuseShuffleIndices);
8491-
LLVM_DEBUG(dbgs() << "SLP: added a vector of non-consecutive loads.\n");
8498+
LLVM_DEBUG(
8499+
dbgs()
8500+
<< "SLP: added a new TreeEntry (non-consecutive LoadInst).\n";
8501+
TE->dump());
84928502
break;
84938503
case TreeEntry::CombinedVectorize:
84948504
case TreeEntry::NeedToGather:
@@ -8532,7 +8542,8 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
85328542
}
85338543
TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
85348544
ReuseShuffleIndices);
8535-
LLVM_DEBUG(dbgs() << "SLP: added a vector of casts.\n");
8545+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (CastInst).\n";
8546+
TE->dump());
85368547

85378548
TE->setOperand(*this);
85388549
for (unsigned I : seq<unsigned>(VL0->getNumOperands()))
@@ -8559,7 +8570,8 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
85598570
CmpInst::Predicate P0 = cast<CmpInst>(VL0)->getPredicate();
85608571
TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
85618572
ReuseShuffleIndices);
8562-
LLVM_DEBUG(dbgs() << "SLP: added a vector of compares.\n");
8573+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (CmpInst).\n";
8574+
TE->dump());
85638575

85648576
ValueList Left, Right;
85658577
VLOperands Ops(VL, VL0, *this);
@@ -8629,7 +8641,10 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
86298641
case Instruction::Freeze: {
86308642
TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
86318643
ReuseShuffleIndices);
8632-
LLVM_DEBUG(dbgs() << "SLP: added a vector of un/bin op.\n");
8644+
LLVM_DEBUG(
8645+
dbgs() << "SLP: added a new TreeEntry "
8646+
"(SelectInst/UnaryOperator/BinaryOperator/FreezeInst).\n";
8647+
TE->dump());
86338648

86348649
TE->setOperand(*this, isa<BinaryOperator>(VL0) && isCommutative(VL0));
86358650
for (unsigned I : seq<unsigned>(VL0->getNumOperands()))
@@ -8639,7 +8654,8 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
86398654
case Instruction::GetElementPtr: {
86408655
TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
86418656
ReuseShuffleIndices);
8642-
LLVM_DEBUG(dbgs() << "SLP: added a vector of GEPs.\n");
8657+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (GetElementPtrInst).\n";
8658+
TE->dump());
86438659
SmallVector<ValueList, 2> Operands(2);
86448660
// Prepare the operand vector for pointer operands.
86458661
for (Value *V : VL) {
@@ -8697,12 +8713,15 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
86978713
fixupOrderingIndices(CurrentOrder);
86988714
TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
86998715
ReuseShuffleIndices, CurrentOrder);
8700-
TE->setOperand(*this);
8701-
buildTree_rec(TE->getOperand(0), Depth + 1, {TE, 0});
87028716
if (Consecutive)
8703-
LLVM_DEBUG(dbgs() << "SLP: added a vector of stores.\n");
8717+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (StoreInst).\n";
8718+
TE->dump());
87048719
else
8705-
LLVM_DEBUG(dbgs() << "SLP: added a vector of jumbled stores.\n");
8720+
LLVM_DEBUG(
8721+
dbgs() << "SLP: added a new TreeEntry (jumbled StoreInst).\n";
8722+
TE->dump());
8723+
TE->setOperand(*this);
8724+
buildTree_rec(TE->getOperand(0), Depth + 1, {TE, 0});
87068725
return;
87078726
}
87088727
case Instruction::Call: {
@@ -8713,6 +8732,8 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
87138732

87148733
TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
87158734
ReuseShuffleIndices);
8735+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (CallInst).\n";
8736+
TE->dump());
87168737
TE->setOperand(*this, isCommutative(VL0));
87178738
for (unsigned I : seq<unsigned>(CI->arg_size())) {
87188739
// For scalar operands no need to create an entry since no need to
@@ -8726,7 +8747,15 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
87268747
case Instruction::ShuffleVector: {
87278748
TreeEntry *TE = newTreeEntry(VL, Bundle /*vectorized*/, S, UserTreeIdx,
87288749
ReuseShuffleIndices);
8729-
LLVM_DEBUG(dbgs() << "SLP: added a ShuffleVector op.\n");
8750+
if (S.isAltShuffle()) {
8751+
LLVM_DEBUG(dbgs() << "SLP: added a new TreeEntry (isAltShuffle).\n";
8752+
TE->dump());
8753+
} else {
8754+
assert(SLPReVec && "Only supported by REVEC.");
8755+
LLVM_DEBUG(
8756+
dbgs() << "SLP: added a new TreeEntry (ShuffleVectorInst).\n";
8757+
TE->dump());
8758+
}
87308759

87318760
// Reorder operands if reordering would enable vectorization.
87328761
auto *CI = dyn_cast<CmpInst>(VL0);

0 commit comments

Comments
 (0)