Skip to content

Commit a159545

Browse files
committed
Clang-format LoadStoreVectorizer
Reviewers: llvm-commits, jlebar, arsenm Subscribers: mzolotukhin Differential Revision: http://reviews.llvm.org/D22107 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274792 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent d72bce1 commit a159545

File tree

1 file changed

+33
-35
lines changed

1 file changed

+33
-35
lines changed

lib/Transforms/Vectorize/LoadStoreVectorizer.cpp

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
//
1010
//===----------------------------------------------------------------------===//
1111

12-
#include "llvm/Transforms/Vectorize.h"
1312
#include "llvm/ADT/MapVector.h"
1413
#include "llvm/ADT/PostOrderIterator.h"
1514
#include "llvm/ADT/SetVector.h"
@@ -31,6 +30,7 @@
3130
#include "llvm/Support/CommandLine.h"
3231
#include "llvm/Support/Debug.h"
3332
#include "llvm/Support/raw_ostream.h"
33+
#include "llvm/Transforms/Vectorize.h"
3434

3535
using namespace llvm;
3636

@@ -60,9 +60,8 @@ class Vectorizer {
6060
public:
6161
Vectorizer(Function &F, AliasAnalysis &AA, DominatorTree &DT,
6262
ScalarEvolution &SE, TargetTransformInfo &TTI)
63-
: F(F), AA(AA), DT(DT), SE(SE), TTI(TTI),
64-
DL(F.getParent()->getDataLayout()),
65-
Builder(SE.getContext()) {}
63+
: F(F), AA(AA), DT(DT), SE(SE), TTI(TTI),
64+
DL(F.getParent()->getDataLayout()), Builder(SE.getContext()) {}
6665

6766
bool run();
6867

@@ -178,8 +177,8 @@ bool LoadStoreVectorizer::runOnFunction(Function &F) {
178177
AliasAnalysis &AA = getAnalysis<AAResultsWrapperPass>().getAAResults();
179178
DominatorTree &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
180179
ScalarEvolution &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
181-
TargetTransformInfo &TTI
182-
= getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F);
180+
TargetTransformInfo &TTI =
181+
getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F);
183182

184183
Vectorizer V(F, AA, DT, SE, TTI);
185184
return V.run();
@@ -233,7 +232,7 @@ bool Vectorizer::isConsecutiveAccess(Value *A, Value *B) {
233232
if (PtrA == PtrB ||
234233
DL.getTypeStoreSize(PtrATy) != DL.getTypeStoreSize(PtrBTy) ||
235234
DL.getTypeStoreSize(PtrATy->getScalarType()) !=
236-
DL.getTypeStoreSize(PtrBTy->getScalarType()))
235+
DL.getTypeStoreSize(PtrBTy->getScalarType()))
237236
return false;
238237

239238
APInt Size(PtrBitWidth, DL.getTypeStoreSize(PtrATy));
@@ -410,9 +409,9 @@ bool Vectorizer::isVectorizable(ArrayRef<Value *> Chain,
410409
for (auto I = From, E = To; I != E; ++I, ++Idx) {
411410
if (isa<LoadInst>(I) || isa<StoreInst>(I)) {
412411
if (!is_contained(Chain, &*I))
413-
MemoryInstrs.push_back({ &*I, Idx });
412+
MemoryInstrs.push_back({&*I, Idx});
414413
else
415-
ChainInstrs.push_back({ &*I, Idx });
414+
ChainInstrs.push_back({&*I, Idx});
416415
} else if (I->mayHaveSideEffects()) {
417416
DEBUG(dbgs() << "LSV: Found side-effecting operation: " << *I << '\n');
418417
return false;
@@ -446,16 +445,16 @@ bool Vectorizer::isVectorizable(ArrayRef<Value *> Chain,
446445
Instruction *M1 = cast<Instruction>(VV);
447446

448447
if (!AA.isNoAlias(MemoryLocation::get(M0), MemoryLocation::get(M1))) {
449-
DEBUG(
448+
DEBUG({
450449
Value *Ptr0 = getPointerOperand(M0);
451450
Value *Ptr1 = getPointerOperand(M1);
452451

453452
dbgs() << "LSV: Found alias.\n"
454453
" Aliasing instruction and pointer:\n"
455-
<< *V << " aliases " << *Ptr0 << '\n'
456-
<< " Aliased instruction and pointer:\n"
457-
<< *VV << " aliases " << *Ptr1 << '\n'
458-
);
454+
<< *V << " aliases " << *Ptr0 << '\n'
455+
<< " Aliased instruction and pointer:\n"
456+
<< *VV << " aliases " << *Ptr1 << '\n'
457+
});
459458

460459
return false;
461460
}
@@ -496,8 +495,7 @@ void Vectorizer::collectInstructions(BasicBlock *BB) {
496495
continue;
497496

498497
// Make sure all the users of a vector are constant-index extracts.
499-
if (isa<VectorType>(Ty) &&
500-
!all_of(LI->users(), [LI](const User *U) {
498+
if (isa<VectorType>(Ty) && !all_of(LI->users(), [LI](const User *U) {
501499
const Instruction *UI = cast<Instruction>(U);
502500
return isa<ExtractElementInst>(UI) &&
503501
isa<ConstantInt>(UI->getOperand(1));
@@ -530,8 +528,7 @@ void Vectorizer::collectInstructions(BasicBlock *BB) {
530528
if (TySize > VecRegSize / 2)
531529
continue;
532530

533-
if (isa<VectorType>(Ty) &&
534-
!all_of(SI->users(), [SI](const User *U) {
531+
if (isa<VectorType>(Ty) && !all_of(SI->users(), [SI](const User *U) {
535532
const Instruction *UI = cast<Instruction>(U);
536533
return isa<ExtractElementInst>(UI) &&
537534
isa<ConstantInt>(UI->getOperand(1));
@@ -685,11 +682,11 @@ bool Vectorizer::vectorizeStoreChain(ArrayRef<Value *> Chain) {
685682
vectorizeStoreChain(Chain.slice(VF));
686683
}
687684

688-
DEBUG(
685+
DEBUG({
689686
dbgs() << "LSV: Stores to vectorize:\n";
690687
for (Value *V : Chain)
691688
V->dump();
692-
);
689+
});
693690

694691
// Check alignment restrictions.
695692
unsigned Alignment = getAlignment(S0);
@@ -734,8 +731,8 @@ bool Vectorizer::vectorizeStoreChain(ArrayRef<Value *> Chain) {
734731
if (Extract->getType() != StoreTy->getScalarType())
735732
Extract = Builder.CreateBitCast(Extract, StoreTy->getScalarType());
736733

737-
Value *Insert = Builder.CreateInsertElement(Vec, Extract,
738-
Builder.getInt32(NewIdx));
734+
Value *Insert =
735+
Builder.CreateInsertElement(Vec, Extract, Builder.getInt32(NewIdx));
739736
Vec = Insert;
740737
}
741738
}
@@ -744,16 +741,17 @@ bool Vectorizer::vectorizeStoreChain(ArrayRef<Value *> Chain) {
744741
StoreInst *Store = cast<StoreInst>(Chain[I]);
745742
Value *Extract = Store->getValueOperand();
746743
if (Extract->getType() != StoreTy->getScalarType())
747-
Extract = Builder.CreateBitOrPointerCast(Extract, StoreTy->getScalarType());
744+
Extract =
745+
Builder.CreateBitOrPointerCast(Extract, StoreTy->getScalarType());
748746

749-
Value *Insert = Builder.CreateInsertElement(Vec, Extract,
750-
Builder.getInt32(I));
747+
Value *Insert =
748+
Builder.CreateInsertElement(Vec, Extract, Builder.getInt32(I));
751749
Vec = Insert;
752750
}
753751
}
754752

755753
Value *Bitcast =
756-
Builder.CreateBitCast(S0->getPointerOperand(), VecTy->getPointerTo(AS));
754+
Builder.CreateBitCast(S0->getPointerOperand(), VecTy->getPointerTo(AS));
757755
StoreInst *SI = cast<StoreInst>(Builder.CreateStore(Vec, Bitcast));
758756
propagateMetadata(SI, Chain);
759757
SI->setAlignment(Alignment);
@@ -779,7 +777,6 @@ bool Vectorizer::vectorizeLoadChain(ArrayRef<Value *> Chain) {
779777
DL.getTypeSizeInBits(LoadTy));
780778
break;
781779
}
782-
783780
}
784781

785782
unsigned Sz = DL.getTypeSizeInBits(LoadTy);
@@ -795,7 +792,8 @@ bool Vectorizer::vectorizeLoadChain(ArrayRef<Value *> Chain) {
795792
// TODO: Should size constraint be a target hook?
796793
unsigned SzInBytes = (Sz / 8) * ChainSize;
797794
if (SzInBytes > 2 && SzInBytes % 4 != 0) {
798-
DEBUG(dbgs() << "LSV: Size should be 1B, 2B or multiple of 4B. Splitting.\n");
795+
DEBUG(dbgs() << "LSV: Size should be 1B, 2B "
796+
"or multiple of 4B. Splitting.\n");
799797
if (SzInBytes == 3)
800798
return vectorizeLoadChain(Chain.slice(0, ChainSize - 1));
801799
auto Chains = splitOddVectorElts(Chain, Sz);
@@ -840,11 +838,11 @@ bool Vectorizer::vectorizeLoadChain(ArrayRef<Value *> Chain) {
840838
}
841839
}
842840

843-
DEBUG(
841+
DEBUG({
844842
dbgs() << "LSV: Loads to vectorize:\n";
845843
for (Value *V : Chain)
846844
V->dump();
847-
);
845+
});
848846

849847
BasicBlock::iterator First, Last;
850848
std::tie(First, Last) = getBoundaryInstrs(Chain);
@@ -856,7 +854,7 @@ bool Vectorizer::vectorizeLoadChain(ArrayRef<Value *> Chain) {
856854
Builder.SetInsertPoint(&*Last);
857855

858856
Value *Bitcast =
859-
Builder.CreateBitCast(L0->getPointerOperand(), VecTy->getPointerTo(AS));
857+
Builder.CreateBitCast(L0->getPointerOperand(), VecTy->getPointerTo(AS));
860858

861859
LoadInst *LI = cast<LoadInst>(Builder.CreateLoad(Bitcast));
862860
propagateMetadata(LI, Chain);
@@ -875,8 +873,8 @@ bool Vectorizer::vectorizeLoadChain(ArrayRef<Value *> Chain) {
875873
Value *V = Builder.CreateExtractElement(LI, Builder.getInt32(NewIdx));
876874
Instruction *Extracted = cast<Instruction>(V);
877875
if (Extracted->getType() != UI->getType())
878-
Extracted =
879-
cast<Instruction>(Builder.CreateBitCast(Extracted, UI->getType()));
876+
Extracted = cast<Instruction>(
877+
Builder.CreateBitCast(Extracted, UI->getType()));
880878

881879
// Replace the old instruction.
882880
UI->replaceAllUsesWith(Extracted);
@@ -898,8 +896,8 @@ bool Vectorizer::vectorizeLoadChain(ArrayRef<Value *> Chain) {
898896
Instruction *Extracted = cast<Instruction>(V);
899897
Instruction *UI = cast<Instruction>(Chain[I]);
900898
if (Extracted->getType() != UI->getType()) {
901-
Extracted =
902-
cast<Instruction>(Builder.CreateBitOrPointerCast(Extracted, UI->getType()));
899+
Extracted = cast<Instruction>(
900+
Builder.CreateBitOrPointerCast(Extracted, UI->getType()));
903901
}
904902

905903
// Replace the old instruction.

0 commit comments

Comments
 (0)