Skip to content

Commit 38a2547

Browse files
committed
style: simplify uninitialized pass
1 parent c72837a commit 38a2547

File tree

1 file changed

+14
-31
lines changed

1 file changed

+14
-31
lines changed

lib/Optimizer/GILPasses/DetectUninitializedPass.cpp

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -108,21 +108,17 @@ class DetectUninitializedPass
108108
{
109109
for (auto &inst : bb->getInstructions()) {
110110
if (auto *store = llvm::dyn_cast<gil::StoreInst>(&inst)) {
111-
gil::Value destPtr = store->getDest();
112-
state[destPtr] = MemoryState::Initialized;
111+
state[store->getDest()] = MemoryState::Initialized;
113112
} else if (auto *alloca = llvm::dyn_cast<gil::AllocaInst>(&inst)) {
114-
gil::Value allocatedPtr = alloca->getResult(0);
115-
state[allocatedPtr] = MemoryState::Uninitialized;
113+
state[alloca->getResult(0)] = MemoryState::Uninitialized;
116114
} else if (auto *ptrOffsets
117115
= llvm::dyn_cast<gil::PtrOffsetInst>(&inst)) {
118-
gil::Value basePtr = ptrOffsets->getBasePtr();
119-
MemoryState baseState = state.lookup(basePtr);
120-
state[ptrOffsets->getResult(0)] = baseState;
116+
state[ptrOffsets->getResult(0)]
117+
= state.lookup(ptrOffsets->getBasePtr());
121118
} else if (auto *structFieldPtr
122119
= llvm::dyn_cast<gil::StructFieldPtrInst>(&inst)) {
123-
gil::Value basePtr = structFieldPtr->getStructPtr();
124-
MemoryState baseState = state.lookup(basePtr);
125-
state[structFieldPtr->getResult(0)] = baseState;
120+
state[structFieldPtr->getResult(0)]
121+
= state.lookup(structFieldPtr->getStructPtr());
126122
} else if (auto *bitcastInst
127123
= llvm::dyn_cast<gil::BitcastInst>(&inst)) {
128124
auto source = bitcastInst->getOperand();
@@ -256,15 +252,13 @@ class DetectUninitializedPass
256252

257253
MemoryState prevState = currentState.lookup(destPtr);
258254

259-
bool warnOnUncertainSet = (prevState == MemoryState::MaybeInitialized);
260-
261255
if (prevState == MemoryState::Uninitialized) {
262256
store->setOwnershipKind(gil::StoreOwnershipKind::Init);
263257
} else {
264258
store->setOwnershipKind(gil::StoreOwnershipKind::Set);
265259
}
266260

267-
if (warnOnUncertainSet) {
261+
if (prevState == MemoryState::MaybeInitialized) {
268262
diagManager.error(
269263
store->getLocation(),
270264
"Store to memory location with uncertain initialization"
@@ -297,8 +291,7 @@ class DetectUninitializedPass
297291
);
298292
}
299293

300-
gil::Value loadedValue = load->getResult(0);
301-
currentState[loadedValue] = state;
294+
currentState[load->getResult(0)] = state;
302295

303296
if (load->getOwnershipKind() == gil::LoadOwnershipKind::Take) {
304297
currentState[srcPtr] = MemoryState::Uninitialized;
@@ -307,30 +300,21 @@ class DetectUninitializedPass
307300

308301
void visitAllocaInst(gil::AllocaInst *alloca)
309302
{
310-
gil::Value allocatedPtr = alloca->getResult(0);
311-
currentState[allocatedPtr] = MemoryState::Uninitialized;
303+
currentState[alloca->getResult(0)] = MemoryState::Uninitialized;
312304
}
313305

314306
void visitPtrOffsetInst(gil::PtrOffsetInst *inst)
315307
{
316-
gil::Value basePtr = inst->getBasePtr();
317-
MemoryState baseState = getTrackedStateOrDefault(
318-
basePtr, currentState, MemoryState::Uninitialized
308+
currentState[inst->getResult(0)] = getTrackedStateOrDefault(
309+
inst->getBasePtr(), currentState, MemoryState::Uninitialized
319310
);
320-
321-
gil::Value resultPtr = inst->getResult(0);
322-
currentState[resultPtr] = baseState;
323311
}
324312

325313
void visitStructFieldPtrInst(gil::StructFieldPtrInst *inst)
326314
{
327-
gil::Value basePtr = inst->getStructPtr();
328-
MemoryState baseState = getTrackedStateOrDefault(
329-
basePtr, currentState, MemoryState::Uninitialized
315+
currentState[inst->getResult(0)] = getTrackedStateOrDefault(
316+
inst->getStructPtr(), currentState, MemoryState::Uninitialized
330317
);
331-
332-
gil::Value resultPtr = inst->getResult(0);
333-
currentState[resultPtr] = baseState;
334318
}
335319

336320
void visitBitcastInst(gil::BitcastInst *inst)
@@ -352,8 +336,7 @@ class DetectUninitializedPass
352336

353337
void visitStructExtractInst(gil::StructExtractInst *inst)
354338
{
355-
gil::Value fieldValue = inst->getResult(0);
356-
currentState[fieldValue] = MemoryState::Initialized;
339+
currentState[inst->getResult(0)] = MemoryState::Initialized;
357340
}
358341

359342
void afterVisitFunction(gil::Function *func)

0 commit comments

Comments
 (0)