reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
15524   getStoreMergeCandidates(St, StoreNodes, RootNode);
15527   if (StoreNodes.size() < 2)
15532   llvm::sort(StoreNodes, [](MemOpLink LHS, MemOpLink RHS) {
15545   while (StoreNodes.size() > 1) {
15547     while ((StartIdx + 1 < StoreNodes.size()) &&
15548            StoreNodes[StartIdx].OffsetFromBase + ElementSizeBytes !=
15549                StoreNodes[StartIdx + 1].OffsetFromBase)
15553     if (StartIdx + 1 >= StoreNodes.size())
15557       StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + StartIdx);
15557       StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + StartIdx);
15557       StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + StartIdx);
15562     int64_t StartAddress = StoreNodes[0].OffsetFromBase;
15565     for (unsigned i = 1, e = StoreNodes.size(); i < e; ++i) {
15566       int64_t CurrAddress = StoreNodes[i].OffsetFromBase;
15573       StoreNodes.erase(StoreNodes.begin(),
15573       StoreNodes.erase(StoreNodes.begin(),
15574                        StoreNodes.begin() + NumConsecutiveStores);
15585         LSBaseSDNode *FirstInChain = StoreNodes[0].MemNode;
15594           StoreSDNode *ST = cast<StoreSDNode>(StoreNodes[i].MemNode);
15674               (StoreNodes[NumSkip].MemNode->getAlignment() <= FirstStoreAlign))
15677           StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumSkip);
15677           StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumSkip);
15677           StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumSkip);
15683         if (!checkMergeStoreCandidatesForDependencies(StoreNodes, NumElem,
15685           StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
15685           StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
15685           StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
15690         RV |= MergeStoresOfConstantsOrVecElts(StoreNodes, MemVT, NumElem, true,
15694         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
15694         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
15694         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
15705         LSBaseSDNode *FirstInChain = StoreNodes[0].MemNode;
15740               (StoreNodes[NumSkip].MemNode->getAlignment() <= FirstStoreAlign))
15743           StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumSkip);
15743           StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumSkip);
15743           StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumSkip);
15750                 StoreNodes, NumStoresToMerge, RootNode)) {
15751           StoreNodes.erase(StoreNodes.begin(),
15751           StoreNodes.erase(StoreNodes.begin(),
15752                            StoreNodes.begin() + NumStoresToMerge);
15758             StoreNodes, MemVT, NumStoresToMerge, false, true, false);
15760         StoreNodes.erase(StoreNodes.begin(),
15760         StoreNodes.erase(StoreNodes.begin(),
15761                          StoreNodes.begin() + NumStoresToMerge);
15779       StoreSDNode *St = cast<StoreSDNode>(StoreNodes[i].MemNode);
15805           StoreNodes[0].MemNode->getAlignment() >= RequiredAlignment) {
15806         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + 2);
15806         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + 2);
15806         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + 2);
15810       LSBaseSDNode *FirstInChain = StoreNodes[0].MemNode;
15923                (StoreNodes[NumSkip].MemNode->getAlignment() <= FirstStoreAlign))
15925         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumSkip);
15925         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumSkip);
15925         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumSkip);
15932       if (!checkMergeStoreCandidatesForDependencies(StoreNodes, NumElem,
15934         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
15934         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
15934         StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
15953       SDLoc StoreDL(StoreNodes[0].MemNode);
15958       SDValue NewStoreChain = getMergeStoreChains(StoreNodes, NumElem);
16004         SDValue Val = StoreNodes[i].MemNode->getOperand(1);
16005         CombineTo(StoreNodes[i].MemNode, NewStore);
16011       StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
16011       StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);
16011       StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + NumElem);