Lines Matching defs:CombineInfo
90 GLOBAL_STORE // any CombineInfo, they are only ever returned by
109 struct CombineInfo {
126 bool hasSameBaseAddress(const CombineInfo &CI) {
182 bool operator<(const CombineInfo& Other) const {
213 static bool dmasksCanBeCombined(const CombineInfo &CI,
215 const CombineInfo &Paired);
216 static bool offsetsCanBeCombined(CombineInfo &CI, const GCNSubtarget &STI,
217 CombineInfo &Paired, bool Modify = false);
218 static bool widthsFit(const GCNSubtarget &STI, const CombineInfo &CI,
219 const CombineInfo &Paired);
220 unsigned getNewOpcode(const CombineInfo &CI, const CombineInfo &Paired);
221 static std::pair<unsigned, unsigned> getSubRegIdxs(const CombineInfo &CI,
222 const CombineInfo &Paired);
224 getTargetRegisterClass(const CombineInfo &CI,
225 const CombineInfo &Paired) const;
228 CombineInfo *checkAndPrepareMerge(CombineInfo &CI, CombineInfo &Paired);
230 void copyToDestRegs(CombineInfo &CI, CombineInfo &Paired,
233 Register copyFromSrcRegs(CombineInfo &CI, CombineInfo &Paired,
240 mergeRead2Pair(CombineInfo &CI, CombineInfo &Paired,
246 mergeWrite2Pair(CombineInfo &CI, CombineInfo &Paired,
249 mergeImagePair(CombineInfo &CI, CombineInfo &Paired,
252 mergeSMemLoadImmPair(CombineInfo &CI, CombineInfo &Paired,
255 mergeBufferLoadPair(CombineInfo &CI, CombineInfo &Paired,
258 mergeBufferStorePair(CombineInfo &CI, CombineInfo &Paired,
261 mergeTBufferLoadPair(CombineInfo &CI, CombineInfo &Paired,
264 mergeTBufferStorePair(CombineInfo &CI, CombineInfo &Paired,
267 mergeFlatLoadPair(CombineInfo &CI, CombineInfo &Paired,
270 mergeFlatStorePair(CombineInfo &CI, CombineInfo &Paired,
285 void addInstToMergeableList(const CombineInfo &CI,
286 std::list<std::list<CombineInfo> > &MergeableInsts) const;
291 std::list<std::list<CombineInfo>> &MergeableInsts) const;
293 static MachineMemOperand *combineKnownAdjacentMMOs(const CombineInfo &CI,
294 const CombineInfo &Paired);
296 static InstClassEnum getCommonInstClass(const CombineInfo &CI,
297 const CombineInfo &Paired);
299 bool optimizeInstsWithSameBaseAddr(std::list<CombineInfo> &MergeList,
301 bool optimizeBlock(std::list<std::list<CombineInfo> > &MergeableInsts);
674 SILoadStoreOptimizer::getCommonInstClass(const CombineInfo &CI,
675 const CombineInfo &Paired) {
802 void SILoadStoreOptimizer::CombineInfo::setMI(MachineBasicBlock::iterator MI,
937 SILoadStoreOptimizer::combineKnownAdjacentMMOs(const CombineInfo &CI,
938 const CombineInfo &Paired) {
958 bool SILoadStoreOptimizer::dmasksCanBeCombined(const CombineInfo &CI,
960 const CombineInfo &Paired) {
1033 bool SILoadStoreOptimizer::offsetsCanBeCombined(CombineInfo &CI,
1035 CombineInfo &Paired,
1158 const CombineInfo &CI,
1159 const CombineInfo &Paired) {
1202 SILoadStoreOptimizer::CombineInfo *
1203 SILoadStoreOptimizer::checkAndPrepareMerge(CombineInfo &CI,
1204 CombineInfo &Paired) {
1227 CombineInfo *Where;
1248 // this function should only be called on CombineInfo objects that
1258 CombineInfo &CI, CombineInfo &Paired,
1288 SILoadStoreOptimizer::copyFromSrcRegs(CombineInfo &CI, CombineInfo &Paired,
1327 SILoadStoreOptimizer::mergeRead2Pair(CombineInfo &CI, CombineInfo &Paired,
1402 CombineInfo &CI, CombineInfo &Paired,
1468 SILoadStoreOptimizer::mergeImagePair(CombineInfo &CI, CombineInfo &Paired,
1504 CombineInfo &CI, CombineInfo &Paired,
1536 CombineInfo &CI, CombineInfo &Paired,
1577 CombineInfo &CI, CombineInfo &Paired,
1622 CombineInfo &CI, CombineInfo &Paired,
1663 CombineInfo &CI, CombineInfo &Paired,
1692 CombineInfo &CI, CombineInfo &Paired,
1727 unsigned SILoadStoreOptimizer::getNewOpcode(const CombineInfo &CI,
1728 const CombineInfo &Paired) {
1884 SILoadStoreOptimizer::getSubRegIdxs(const CombineInfo &CI,
1885 const CombineInfo &Paired) {
1917 SILoadStoreOptimizer::getTargetRegisterClass(const CombineInfo &CI,
1918 const CombineInfo &Paired) const {
1944 CombineInfo &CI, CombineInfo &Paired,
2300 void SILoadStoreOptimizer::addInstToMergeableList(const CombineInfo &CI,
2301 std::list<std::list<CombineInfo> > &MergeableInsts) const {
2302 for (std::list<CombineInfo> &AddrList : MergeableInsts) {
2319 std::list<std::list<CombineInfo>> &MergeableInsts) const {
2353 CombineInfo CI;
2377 // Part 2: Sort lists by offset and then for each CombineInfo object in the
2380 // the CombineInfo object is deleted from the list.
2382 for (std::list<std::list<CombineInfo>>::iterator I = MergeableInsts.begin(),
2385 std::list<CombineInfo> &MergeList = *I;
2398 [] (const CombineInfo &A, const CombineInfo &B) {
2411 std::list<std::list<CombineInfo> > &MergeableInsts) {
2414 for (std::list<std::list<CombineInfo>>::iterator I = MergeableInsts.begin(),
2416 std::list<CombineInfo> &MergeList = *I;
2442 std::list<CombineInfo> &MergeList,
2457 CombineInfo &CI = *First;
2458 CombineInfo &Paired = *Second;
2460 CombineInfo *Where = checkAndPrepareMerge(CI, Paired);
2563 std::list<std::list<CombineInfo>> MergeableInsts;