Lines Matching refs:CodeGenSubRegIndex
53 CodeGenSubRegIndex::CodeGenSubRegIndex(Record *R, unsigned Enum) in CodeGenSubRegIndex() function in CodeGenSubRegIndex
62 CodeGenSubRegIndex::CodeGenSubRegIndex(StringRef N, StringRef Nspace, in CodeGenSubRegIndex() function in CodeGenSubRegIndex
68 std::string CodeGenSubRegIndex::getQualifiedName() const { in getQualifiedName()
76 void CodeGenSubRegIndex::updateComponents(CodeGenRegBank &RegBank) { in updateComponents()
85 CodeGenSubRegIndex *A = RegBank.getSubRegIdx(Comps[0]); in updateComponents()
86 CodeGenSubRegIndex *B = RegBank.getSubRegIdx(Comps[1]); in updateComponents()
87 CodeGenSubRegIndex *X = A->addComposite(B, this); in updateComponents()
98 SmallVector<CodeGenSubRegIndex*, 8> IdxParts; in updateComponents()
105 LaneBitmask CodeGenSubRegIndex::computeLaneMask() const { in computeLaneMask()
122 void CodeGenSubRegIndex::setConcatenationOf( in setConcatenationOf()
123 ArrayRef<CodeGenSubRegIndex*> Parts) { in setConcatenationOf()
131 void CodeGenSubRegIndex::computeConcatTransitiveClosure() { in computeConcatTransitiveClosure()
132 for (SmallVectorImpl<CodeGenSubRegIndex*>::iterator in computeConcatTransitiveClosure()
134 CodeGenSubRegIndex *SubIdx = *I; in computeConcatTransitiveClosure()
137 for (CodeGenSubRegIndex *SRI : SubIdx->ConcatenationOf) in computeConcatTransitiveClosure()
275 CodeGenSubRegIndex *Idx = ExplicitSubRegIndices[i]; in computeSubRegs()
305 SmallVector<CodeGenSubRegIndex*, 8> Indices = ExplicitSubRegIndices; in computeSubRegs()
307 CodeGenSubRegIndex *Idx = Indices[i]; in computeSubRegs()
308 const CodeGenSubRegIndex::CompMap &Comps = Idx->getComposites(); in computeSubRegs()
345 CodeGenSubRegIndex *Idx = Indices.pop_back_val(); in computeSubRegs()
368 DenseMap<const CodeGenRegister*, CodeGenSubRegIndex*>::iterator Ins = in computeSubRegs()
392 SmallVector<CodeGenSubRegIndex*, 8> Parts; in computeSubRegs()
394 CodeGenSubRegIndex &I = *SR->ExplicitSubRegIndices[j]; in computeSubRegs()
400 CodeGenSubRegIndex &Idx = *ExplicitSubRegIndices[i]; in computeSubRegs()
464 std::queue<std::pair<CodeGenSubRegIndex*,CodeGenRegister*>> SubRegQueue; in computeSecondarySubRegs()
465 for (std::pair<CodeGenSubRegIndex*,CodeGenRegister*> P : SubRegs) in computeSecondarySubRegs()
472 CodeGenSubRegIndex *SubRegIdx; in computeSecondarySubRegs()
488 SmallVector<CodeGenSubRegIndex*, 8> Parts; in computeSecondarySubRegs()
494 if (CodeGenSubRegIndex *SubRegIdx = getSubRegIndex(SubReg)) { in computeSecondarySubRegs()
512 CodeGenSubRegIndex *Concat = RegBank.getConcatSubRegIndex(Parts); in computeSecondarySubRegs()
513 std::pair<CodeGenSubRegIndex*,CodeGenRegister*> NewSubReg = in computeSecondarySubRegs()
528 CodeGenSubRegIndex *NewIdx = NewSubRegs[i].first; in computeSecondarySubRegs()
531 CodeGenSubRegIndex *SubIdx = getSubRegIndex(SubReg.second); in computeSecondarySubRegs()
994 CodeGenRegBank &RegBank, const CodeGenSubRegIndex *SubIdx) const { in getMatchingSubClassWithSubRegs()
1078 void CodeGenRegisterClass::getSuperRegClasses(const CodeGenSubRegIndex *SubIdx, in getSuperRegClasses()
1162 for (CodeGenSubRegIndex &SRI : SubRegIndices) { in CodeGenRegBank()
1166 SmallVector<CodeGenSubRegIndex*,8>(SRI.ConcatenationOf.begin(), in CodeGenRegBank()
1221 CodeGenSubRegIndex*
1227 CodeGenSubRegIndex *CodeGenRegBank::getSubRegIdx(Record *Def) { in getSubRegIdx()
1228 CodeGenSubRegIndex *&Idx = Def2SubRegIdx[Def]; in getSubRegIdx()
1236 const CodeGenSubRegIndex *
1284 CodeGenSubRegIndex*
1285 CodeGenRegBank::getCompositeSubRegIndex(CodeGenSubRegIndex *A, in getCompositeSubRegIndex()
1286 CodeGenSubRegIndex *B) { in getCompositeSubRegIndex()
1288 CodeGenSubRegIndex *Comp = A->compose(B); in getCompositeSubRegIndex()
1299 CodeGenSubRegIndex *CodeGenRegBank::
1300 getConcatSubRegIndex(const SmallVector<CodeGenSubRegIndex *, 8> &Parts) { in getConcatSubRegIndex() argument
1303 for (CodeGenSubRegIndex *Idx : Parts) { in getConcatSubRegIndex()
1309 CodeGenSubRegIndex *&Idx = ConcatIdx[Parts]; in getConcatSubRegIndex()
1342 std::map<const CodeGenSubRegIndex*, RegMap> SubRegAction; in computeComposites()
1345 for (std::pair<const CodeGenSubRegIndex*, const CodeGenRegister*> P : SM) in computeComposites()
1351 auto compose = [&SubRegAction] (const CodeGenSubRegIndex *Sub1, in computeComposites()
1352 const CodeGenSubRegIndex *Sub2) { in computeComposites()
1379 using CompositePair = std::pair<const CodeGenSubRegIndex*, in computeComposites()
1380 const CodeGenSubRegIndex*>; in computeComposites()
1382 for (const CodeGenSubRegIndex &Idx : SubRegIndices) in computeComposites()
1398 CodeGenSubRegIndex *Idx1 = I1.first; in computeComposites()
1406 CodeGenSubRegIndex *Idx2 = I2.first; in computeComposites()
1412 CodeGenSubRegIndex *Idx3 = Reg1.getSubRegIndex(Reg3); in computeComposites()
1416 if (CodeGenSubRegIndex *Prev = Idx1->addComposite(Idx2, Idx3)) { in computeComposites()
1497 const CodeGenSubRegIndex *Composite = C->second; in computeSubRegLaneMasks()
2068 CodeGenSubRegIndex *SubRegIndex = S.first; in computeRegUnitLaneMasks()
2181 typedef std::map<const CodeGenSubRegIndex *, CodeGenRegister::Vec, in inferSubClassWithSubReg()