Skip to content

Commit f448ac5

Browse files
committed
address pr comments
1 parent 7f234b1 commit f448ac5

File tree

1 file changed

+10
-17
lines changed

1 file changed

+10
-17
lines changed

llvm/lib/Target/DirectX/DXILDataScalarization.cpp

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ class DataScalarizerVisitor : public InstVisitor<DataScalarizerVisitor, bool> {
6565
friend bool findAndReplaceVectors(llvm::Module &M);
6666

6767
private:
68-
Value *createNewGetElementPtr(GetElementPtrInst &GEPI);
6968
GlobalVariable *lookupReplacementGlobal(Value *CurrOperand);
7069
DenseMap<GlobalVariable *, GlobalVariable *> GlobalMap;
7170
};
@@ -95,14 +94,13 @@ bool DataScalarizerVisitor::visitLoadInst(LoadInst &LI) {
9594
GetElementPtrInst *OldGEP =
9695
cast<GetElementPtrInst>(CE->getAsInstruction());
9796
OldGEP->insertBefore(&LI);
98-
Value *NewGEP = createNewGetElementPtr(*OldGEP);
9997
IRBuilder<> Builder(&LI);
10098
LoadInst *NewLoad =
101-
Builder.CreateLoad(LI.getType(), NewGEP, LI.getName());
99+
Builder.CreateLoad(LI.getType(), OldGEP, LI.getName());
102100
NewLoad->setAlignment(LI.getAlign());
103101
LI.replaceAllUsesWith(NewLoad);
104102
LI.eraseFromParent();
105-
OldGEP->eraseFromParent();
103+
visitGetElementPtrInst(*OldGEP);
106104
return true;
107105
}
108106
if (GlobalVariable *NewGlobal = lookupReplacementGlobal(CurrOpperand))
@@ -120,13 +118,12 @@ bool DataScalarizerVisitor::visitStoreInst(StoreInst &SI) {
120118
GetElementPtrInst *OldGEP =
121119
cast<GetElementPtrInst>(CE->getAsInstruction());
122120
OldGEP->insertBefore(&SI);
123-
Value *NewGEP = createNewGetElementPtr(*OldGEP);
124121
IRBuilder<> Builder(&SI);
125-
StoreInst *NewStore = Builder.CreateStore(SI.getValueOperand(), NewGEP);
122+
StoreInst *NewStore = Builder.CreateStore(SI.getValueOperand(), OldGEP);
126123
NewStore->setAlignment(SI.getAlign());
127124
SI.replaceAllUsesWith(NewStore);
128125
SI.eraseFromParent();
129-
OldGEP->eraseFromParent();
126+
visitGetElementPtrInst(*OldGEP);
130127
return true;
131128
}
132129
if (GlobalVariable *NewGlobal = lookupReplacementGlobal(CurrOpperand))
@@ -135,7 +132,8 @@ bool DataScalarizerVisitor::visitStoreInst(StoreInst &SI) {
135132
return false;
136133
}
137134

138-
Value *DataScalarizerVisitor::createNewGetElementPtr(GetElementPtrInst &GEPI) {
135+
bool DataScalarizerVisitor::visitGetElementPtrInst(GetElementPtrInst &GEPI) {
136+
139137
unsigned NumOperands = GEPI.getNumOperands();
140138
GlobalVariable *NewGlobal = nullptr;
141139
for (unsigned I = 0; I < NumOperands; ++I) {
@@ -145,21 +143,16 @@ Value *DataScalarizerVisitor::createNewGetElementPtr(GetElementPtrInst &GEPI) {
145143
break;
146144
}
147145
if (!NewGlobal)
148-
return nullptr;
146+
return false;
149147

150148
IRBuilder<> Builder(&GEPI);
151149
SmallVector<Value *, MaxVecSize> Indices;
152150
for (auto &Index : GEPI.indices())
153151
Indices.push_back(Index);
154152

155-
return Builder.CreateGEP(NewGlobal->getValueType(), NewGlobal, Indices,
156-
GEPI.getName(), GEPI.getNoWrapFlags());
157-
}
158-
159-
bool DataScalarizerVisitor::visitGetElementPtrInst(GetElementPtrInst &GEPI) {
160-
Value *NewGEP = createNewGetElementPtr(GEPI);
161-
if (!NewGEP)
162-
return false;
153+
Value *NewGEP =
154+
Builder.CreateGEP(NewGlobal->getValueType(), NewGlobal, Indices,
155+
GEPI.getName(), GEPI.getNoWrapFlags());
163156
GEPI.replaceAllUsesWith(NewGEP);
164157
GEPI.eraseFromParent();
165158
return true;

0 commit comments

Comments
 (0)