mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-05 03:36:43 +00:00
rangify; NFCI
llvm-svn: 257500
This commit is contained in:
parent
385f237c52
commit
9e7c71991c
@ -1782,30 +1782,29 @@ int BoUpSLP::getTreeCost() {
|
||||
|
||||
unsigned BundleWidth = VectorizableTree[0].Scalars.size();
|
||||
|
||||
for (unsigned i = 0, e = VectorizableTree.size(); i != e; ++i) {
|
||||
int C = getEntryCost(&VectorizableTree[i]);
|
||||
for (TreeEntry &TE : VectorizableTree) {
|
||||
int C = getEntryCost(&TE);
|
||||
DEBUG(dbgs() << "SLP: Adding cost " << C << " for bundle that starts with "
|
||||
<< *VectorizableTree[i].Scalars[0] << " .\n");
|
||||
<< TE.Scalars[0] << " .\n");
|
||||
Cost += C;
|
||||
}
|
||||
|
||||
SmallSet<Value *, 16> ExtractCostCalculated;
|
||||
int ExtractCost = 0;
|
||||
for (UserList::iterator I = ExternalUses.begin(), E = ExternalUses.end();
|
||||
I != E; ++I) {
|
||||
for (ExternalUser &EU : ExternalUses) {
|
||||
// We only add extract cost once for the same scalar.
|
||||
if (!ExtractCostCalculated.insert(I->Scalar).second)
|
||||
if (!ExtractCostCalculated.insert(EU.Scalar).second)
|
||||
continue;
|
||||
|
||||
// Uses by ephemeral values are free (because the ephemeral value will be
|
||||
// removed prior to code generation, and so the extraction will be
|
||||
// removed as well).
|
||||
if (EphValues.count(I->User))
|
||||
if (EphValues.count(EU.User))
|
||||
continue;
|
||||
|
||||
VectorType *VecTy = VectorType::get(I->Scalar->getType(), BundleWidth);
|
||||
VectorType *VecTy = VectorType::get(EU.Scalar->getType(), BundleWidth);
|
||||
ExtractCost += TTI->getVectorInstrCost(Instruction::ExtractElement, VecTy,
|
||||
I->Lane);
|
||||
EU.Lane);
|
||||
}
|
||||
|
||||
Cost += getSpillCost();
|
||||
@ -4020,9 +4019,8 @@ bool SLPVectorizer::vectorizeChainsInBlock(BasicBlock *BB, BoUpSLP &R) {
|
||||
|
||||
// Collect the incoming values from the PHIs.
|
||||
Incoming.clear();
|
||||
for (BasicBlock::iterator instr = BB->begin(), ie = BB->end(); instr != ie;
|
||||
++instr) {
|
||||
PHINode *P = dyn_cast<PHINode>(instr);
|
||||
for (Instruction &I : *BB) {
|
||||
PHINode *P = dyn_cast<PHINode>(&I);
|
||||
if (!P)
|
||||
break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user