[InstCombine] Remove unnecessary MaybeAlign use (NFC)

Alloca align is required now.
This commit is contained in:
Nikita Popov 2020-06-06 11:15:45 +02:00
parent 97a670958c
commit a4953db530
1 changed files with 32 additions and 34 deletions

View File

@ -365,7 +365,6 @@ Instruction *InstCombiner::visitAllocaInst(AllocaInst &AI) {
} }
} }
if (AI.getAlignment()) {
// Check to see if this allocation is only modified by a memcpy/memmove from // Check to see if this allocation is only modified by a memcpy/memmove from
// a constant whose alignment is equal to or exceeds that of the allocation. // a constant whose alignment is equal to or exceeds that of the allocation.
// If this is the case, we can change all users to use the constant global // If this is the case, we can change all users to use the constant global
@ -374,10 +373,10 @@ Instruction *InstCombiner::visitAllocaInst(AllocaInst &AI) {
// read. // read.
SmallVector<Instruction *, 4> ToDelete; SmallVector<Instruction *, 4> ToDelete;
if (MemTransferInst *Copy = isOnlyCopiedFromConstantMemory(AA, &AI, ToDelete)) { if (MemTransferInst *Copy = isOnlyCopiedFromConstantMemory(AA, &AI, ToDelete)) {
MaybeAlign AllocaAlign = AI.getAlign(); Align AllocaAlign = AI.getAlign();
Align SourceAlign = getOrEnforceKnownAlignment( Align SourceAlign = getOrEnforceKnownAlignment(
Copy->getSource(), AllocaAlign, DL, &AI, &AC, &DT); Copy->getSource(), AllocaAlign, DL, &AI, &AC, &DT);
if ((!AllocaAlign || *AllocaAlign <= SourceAlign) && if (AllocaAlign <= SourceAlign &&
isDereferenceableForAllocaSize(Copy->getSource(), &AI, DL)) { isDereferenceableForAllocaSize(Copy->getSource(), &AI, DL)) {
LLVM_DEBUG(dbgs() << "Found alloca equal to global: " << AI << '\n'); LLVM_DEBUG(dbgs() << "Found alloca equal to global: " << AI << '\n');
LLVM_DEBUG(dbgs() << " memcpy = " << *Copy << '\n'); LLVM_DEBUG(dbgs() << " memcpy = " << *Copy << '\n');
@ -402,7 +401,6 @@ Instruction *InstCombiner::visitAllocaInst(AllocaInst &AI) {
++NumGlobalCopies; ++NumGlobalCopies;
} }
} }
}
// At last, use the generic allocation site handler to aggressively remove // At last, use the generic allocation site handler to aggressively remove
// unused allocas. // unused allocas.