Lines Matching refs:Stores
360 bool LoadStoreOpt::doSingleStoreMerge(SmallVectorImpl<GStore *> &Stores) { in doSingleStoreMerge() argument
361 assert(Stores.size() > 1); in doSingleStoreMerge()
367 GStore *FirstStore = Stores[0]; in doSingleStoreMerge()
368 const unsigned NumStores = Stores.size(); in doSingleStoreMerge()
374 DebugLoc MergedLoc = Stores.front()->getDebugLoc(); in doSingleStoreMerge()
375 for (auto *Store : drop_begin(Stores)) in doSingleStoreMerge()
378 Builder.setInstr(*Stores.back()); in doSingleStoreMerge()
385 for (auto *Store : Stores) { in doSingleStoreMerge()
419 LLVM_DEBUG(dbgs() << "Merged " << Stores.size() in doSingleStoreMerge()
421 LLVM_DEBUG(for (auto *MI : Stores) dbgs() << " " << *MI;); in doSingleStoreMerge()
422 NumStoresMerged += Stores.size(); in doSingleStoreMerge()
429 R << "Merged " << NV("NumMerged", Stores.size()) << " stores of " in doSingleStoreMerge()
436 for (auto *MI : Stores) in doSingleStoreMerge()
442 if (C.Stores.size() < 2) { in processMergeCandidate()
447 LLVM_DEBUG(dbgs() << "Checking store merge candidate with " << C.Stores.size() in processMergeCandidate()
448 << " stores, starting with " << *C.Stores[0]); in processMergeCandidate()
484 for (int StoreIdx = C.Stores.size() - 1; StoreIdx >= 0; --StoreIdx) { in processMergeCandidate()
485 auto *CheckStore = C.Stores[StoreIdx]; in processMergeCandidate()
503 if (C.Stores.empty()) in operationAliasesWithCandidate()
505 return llvm::any_of(C.Stores, [&](MachineInstr *OtherMI) { in operationAliasesWithCandidate()
511 PotentialAliases.emplace_back(std::make_pair(&MI, Stores.size() - 1)); in addPotentialAlias()
538 if (C.Stores.empty()) { in addStoreToCandidate()
551 C.Stores.emplace_back(&StoreMI); in addStoreToCandidate()
558 if (MRI->getType(C.Stores[0]->getValueReg()).getSizeInBits() != in addStoreToCandidate()
562 if (MRI->getType(C.Stores[0]->getPointerReg()).getAddressSpace() != in addStoreToCandidate()
579 C.Stores.emplace_back(&StoreMI); in addStoreToCandidate()
609 if (Candidate.Stores.empty()) in mergeBlockStores()
615 Candidate.Stores.clear(); in mergeBlockStores()
909 SmallVector<GStore *, 16> Stores; in mergeTruncStoresBlock() local
914 Stores.emplace_back(StoreMI); in mergeTruncStoresBlock()
916 for (auto *StoreMI : Stores) { in mergeTruncStoresBlock()