Lines Matching refs:CodeGenSubRegIndex
54 CodeGenSubRegIndex::CodeGenSubRegIndex(Record *R, unsigned Enum) in CodeGenSubRegIndex() function in CodeGenSubRegIndex
63 CodeGenSubRegIndex::CodeGenSubRegIndex(StringRef N, StringRef Nspace, in CodeGenSubRegIndex() function in CodeGenSubRegIndex
69 std::string CodeGenSubRegIndex::getQualifiedName() const { in getQualifiedName()
77 void CodeGenSubRegIndex::updateComponents(CodeGenRegBank &RegBank) { in updateComponents()
86 CodeGenSubRegIndex *A = RegBank.getSubRegIdx(Comps[0]); in updateComponents()
87 CodeGenSubRegIndex *B = RegBank.getSubRegIdx(Comps[1]); in updateComponents()
88 CodeGenSubRegIndex *X = A->addComposite(B, this); in updateComponents()
99 SmallVector<CodeGenSubRegIndex*, 8> IdxParts; in updateComponents()
106 LaneBitmask CodeGenSubRegIndex::computeLaneMask() const { in computeLaneMask()
123 void CodeGenSubRegIndex::setConcatenationOf( in setConcatenationOf()
124 ArrayRef<CodeGenSubRegIndex*> Parts) { in setConcatenationOf()
132 void CodeGenSubRegIndex::computeConcatTransitiveClosure() { in computeConcatTransitiveClosure()
133 for (SmallVectorImpl<CodeGenSubRegIndex*>::iterator in computeConcatTransitiveClosure()
135 CodeGenSubRegIndex *SubIdx = *I; in computeConcatTransitiveClosure()
138 for (CodeGenSubRegIndex *SRI : SubIdx->ConcatenationOf) in computeConcatTransitiveClosure()
279 CodeGenSubRegIndex *Idx = ExplicitSubRegIndices[i]; in computeSubRegs()
309 SmallVector<CodeGenSubRegIndex*, 8> Indices = ExplicitSubRegIndices; in computeSubRegs()
311 CodeGenSubRegIndex *Idx = Indices[i]; in computeSubRegs()
312 const CodeGenSubRegIndex::CompMap &Comps = Idx->getComposites(); in computeSubRegs()
318 for (CodeGenSubRegIndex::CompMap::const_iterator I = Comps.begin(), in computeSubRegs()
350 CodeGenSubRegIndex *Idx = Indices.pop_back_val(); in computeSubRegs()
373 DenseMap<const CodeGenRegister*, CodeGenSubRegIndex*>::iterator Ins = in computeSubRegs()
397 SmallVector<CodeGenSubRegIndex*, 8> Parts; in computeSubRegs()
399 CodeGenSubRegIndex &I = *SR->ExplicitSubRegIndices[j]; in computeSubRegs()
405 CodeGenSubRegIndex &Idx = *ExplicitSubRegIndices[i]; in computeSubRegs()
469 std::queue<std::pair<CodeGenSubRegIndex*,CodeGenRegister*>> SubRegQueue; in computeSecondarySubRegs()
470 for (std::pair<CodeGenSubRegIndex*,CodeGenRegister*> P : SubRegs) in computeSecondarySubRegs()
477 CodeGenSubRegIndex *SubRegIdx; in computeSecondarySubRegs()
493 SmallVector<CodeGenSubRegIndex*, 8> Parts; in computeSecondarySubRegs()
499 if (CodeGenSubRegIndex *SubRegIdx = getSubRegIndex(SubReg)) { in computeSecondarySubRegs()
503 for (CodeGenSubRegIndex *SubIdx : SubRegIdx->ConcatenationOf) in computeSecondarySubRegs()
518 CodeGenSubRegIndex *Concat = RegBank.getConcatSubRegIndex(Parts); in computeSecondarySubRegs()
519 std::pair<CodeGenSubRegIndex*,CodeGenRegister*> NewSubReg = in computeSecondarySubRegs()
534 CodeGenSubRegIndex *NewIdx = NewSubRegs[i].first; in computeSecondarySubRegs()
538 CodeGenSubRegIndex *SubIdx = getSubRegIndex(SI->second); in computeSecondarySubRegs()
983 CodeGenRegBank &RegBank, const CodeGenSubRegIndex *SubIdx) const { in getMatchingSubClassWithSubRegs()
1059 void CodeGenRegisterClass::getSuperRegClasses(const CodeGenSubRegIndex *SubIdx, in getSuperRegClasses()
1143 for (CodeGenSubRegIndex &SRI : SubRegIndices) { in CodeGenRegBank()
1147 SmallVector<CodeGenSubRegIndex*,8>(SRI.ConcatenationOf.begin(), in CodeGenRegBank()
1202 CodeGenSubRegIndex*
1208 CodeGenSubRegIndex *CodeGenRegBank::getSubRegIdx(Record *Def) { in getSubRegIdx()
1209 CodeGenSubRegIndex *&Idx = Def2SubRegIdx[Def]; in getSubRegIdx()
1260 CodeGenSubRegIndex*
1261 CodeGenRegBank::getCompositeSubRegIndex(CodeGenSubRegIndex *A, in getCompositeSubRegIndex()
1262 CodeGenSubRegIndex *B) { in getCompositeSubRegIndex()
1264 CodeGenSubRegIndex *Comp = A->compose(B); in getCompositeSubRegIndex()
1275 CodeGenSubRegIndex *CodeGenRegBank::
1276 getConcatSubRegIndex(const SmallVector<CodeGenSubRegIndex *, 8> &Parts) { in getConcatSubRegIndex() argument
1279 for (CodeGenSubRegIndex *Idx : Parts) { in getConcatSubRegIndex()
1285 CodeGenSubRegIndex *&Idx = ConcatIdx[Parts]; in getConcatSubRegIndex()
1318 std::map<const CodeGenSubRegIndex*, RegMap> SubRegAction; in computeComposites()
1321 for (std::pair<const CodeGenSubRegIndex*, const CodeGenRegister*> P : SM) in computeComposites()
1327 auto compose = [&SubRegAction] (const CodeGenSubRegIndex *Sub1, in computeComposites()
1328 const CodeGenSubRegIndex *Sub2) { in computeComposites()
1355 using CompositePair = std::pair<const CodeGenSubRegIndex*, in computeComposites()
1356 const CodeGenSubRegIndex*>; in computeComposites()
1358 for (const CodeGenSubRegIndex &Idx : SubRegIndices) in computeComposites()
1375 CodeGenSubRegIndex *Idx1 = i1->first; in computeComposites()
1384 CodeGenSubRegIndex *Idx2 = i2->first; in computeComposites()
1390 CodeGenSubRegIndex *Idx3 = Reg1.getSubRegIndex(Reg3); in computeComposites()
1394 if (CodeGenSubRegIndex *Prev = Idx1->addComposite(Idx2, Idx3)) { in computeComposites()
1475 const CodeGenSubRegIndex *Composite = C->second; in computeSubRegLaneMasks()
2048 CodeGenSubRegIndex *SubRegIndex = S->first; in computeRegUnitLaneMasks()
2161 typedef std::map<const CodeGenSubRegIndex *, CodeGenRegister::Vec, in inferSubClassWithSubReg()