Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
Show First 20 Lines • Show All 1,248 Lines • ▼ Show 20 Lines | while (InstDep.isDef() || InstDep.isClobber()) { | ||||
APInt Merged = | APInt Merged = | ||||
(EarlierValue & ~Mask) | (LaterValue << LShiftAmount); | (EarlierValue & ~Mask) | (LaterValue << LShiftAmount); | ||||
LLVM_DEBUG(dbgs() << "DSE: Merge Stores:\n Earlier: " << *DepWrite | LLVM_DEBUG(dbgs() << "DSE: Merge Stores:\n Earlier: " << *DepWrite | ||||
<< "\n Later: " << *Inst | << "\n Later: " << *Inst | ||||
<< "\n Merged Value: " << Merged << '\n'); | << "\n Merged Value: " << Merged << '\n'); | ||||
auto *SI = new StoreInst( | auto *SI = new StoreInst( | ||||
ConstantInt::get(Earlier->getValueOperand()->getType(), Merged), | ConstantInt::get(Earlier->getValueOperand()->getType(), Merged), | ||||
Earlier->getPointerOperand(), false, Earlier->getAlignment(), | Earlier->getPointerOperand(), false, | ||||
Earlier->getOrdering(), Earlier->getSyncScopeID(), DepWrite); | MaybeAlign(Earlier->getAlignment()), Earlier->getOrdering(), | ||||
Earlier->getSyncScopeID(), DepWrite); | |||||
unsigned MDToKeep[] = {LLVMContext::MD_dbg, LLVMContext::MD_tbaa, | unsigned MDToKeep[] = {LLVMContext::MD_dbg, LLVMContext::MD_tbaa, | ||||
LLVMContext::MD_alias_scope, | LLVMContext::MD_alias_scope, | ||||
LLVMContext::MD_noalias, | LLVMContext::MD_noalias, | ||||
LLVMContext::MD_nontemporal}; | LLVMContext::MD_nontemporal}; | ||||
SI->copyMetadata(*DepWrite, MDToKeep); | SI->copyMetadata(*DepWrite, MDToKeep); | ||||
++NumModifiedStores; | ++NumModifiedStores; | ||||
▲ Show 20 Lines • Show All 131 Lines • Show Last 20 Lines |