Lines Matching refs:CodeGenSubRegIndex
50 CodeGenSubRegIndex::CodeGenSubRegIndex(Record *R, unsigned Enum) in CodeGenSubRegIndex() function in CodeGenSubRegIndex
59 CodeGenSubRegIndex::CodeGenSubRegIndex(StringRef N, StringRef Nspace, in CodeGenSubRegIndex() function in CodeGenSubRegIndex
65 std::string CodeGenSubRegIndex::getQualifiedName() const { in getQualifiedName()
73 void CodeGenSubRegIndex::updateComponents(CodeGenRegBank &RegBank) { in updateComponents()
82 CodeGenSubRegIndex *A = RegBank.getSubRegIdx(Comps[0]); in updateComponents()
83 CodeGenSubRegIndex *B = RegBank.getSubRegIdx(Comps[1]); in updateComponents()
84 CodeGenSubRegIndex *X = A->addComposite(B, this); in updateComponents()
95 SmallVector<CodeGenSubRegIndex*, 8> IdxParts; in updateComponents()
102 LaneBitmask CodeGenSubRegIndex::computeLaneMask() const { in computeLaneMask()
119 void CodeGenSubRegIndex::setConcatenationOf( in setConcatenationOf()
120 ArrayRef<CodeGenSubRegIndex*> Parts) { in setConcatenationOf()
128 void CodeGenSubRegIndex::computeConcatTransitiveClosure() { in computeConcatTransitiveClosure()
129 for (SmallVectorImpl<CodeGenSubRegIndex*>::iterator in computeConcatTransitiveClosure()
131 CodeGenSubRegIndex *SubIdx = *I; in computeConcatTransitiveClosure()
134 for (CodeGenSubRegIndex *SRI : SubIdx->ConcatenationOf) in computeConcatTransitiveClosure()
278 CodeGenSubRegIndex *Idx = ExplicitSubRegIndices[i]; in computeSubRegs()
308 SmallVector<CodeGenSubRegIndex*, 8> Indices = ExplicitSubRegIndices; in computeSubRegs()
310 CodeGenSubRegIndex *Idx = Indices[i]; in computeSubRegs()
311 const CodeGenSubRegIndex::CompMap &Comps = Idx->getComposites(); in computeSubRegs()
348 CodeGenSubRegIndex *Idx = Indices.pop_back_val(); in computeSubRegs()
371 DenseMap<const CodeGenRegister*, CodeGenSubRegIndex*>::iterator Ins = in computeSubRegs()
395 SmallVector<CodeGenSubRegIndex*, 8> Parts; in computeSubRegs()
397 CodeGenSubRegIndex &I = *SR->ExplicitSubRegIndices[j]; in computeSubRegs()
403 CodeGenSubRegIndex &Idx = *ExplicitSubRegIndices[i]; in computeSubRegs()
467 std::queue<std::pair<CodeGenSubRegIndex*,CodeGenRegister*>> SubRegQueue; in computeSecondarySubRegs()
468 for (std::pair<CodeGenSubRegIndex*,CodeGenRegister*> P : SubRegs) in computeSecondarySubRegs()
475 CodeGenSubRegIndex *SubRegIdx; in computeSecondarySubRegs()
491 SmallVector<CodeGenSubRegIndex*, 8> Parts; in computeSecondarySubRegs()
497 if (CodeGenSubRegIndex *SubRegIdx = getSubRegIndex(SubReg)) { in computeSecondarySubRegs()
515 CodeGenSubRegIndex *Concat = RegBank.getConcatSubRegIndex(Parts); in computeSecondarySubRegs()
516 std::pair<CodeGenSubRegIndex*,CodeGenRegister*> NewSubReg = in computeSecondarySubRegs()
531 CodeGenSubRegIndex *NewIdx = NewSubRegs[i].first; in computeSecondarySubRegs()
534 CodeGenSubRegIndex *SubIdx = getSubRegIndex(SubReg.second); in computeSecondarySubRegs()
1038 CodeGenRegBank &RegBank, const CodeGenSubRegIndex *SubIdx) const { in getMatchingSubClassWithSubRegs()
1122 void CodeGenRegisterClass::getSuperRegClasses(const CodeGenSubRegIndex *SubIdx, in getSuperRegClasses()
1237 for (CodeGenSubRegIndex &SRI : SubRegIndices) { in CodeGenRegBank()
1241 SmallVector<CodeGenSubRegIndex*,8>(SRI.ConcatenationOf.begin(), in CodeGenRegBank()
1302 CodeGenSubRegIndex*
1308 CodeGenSubRegIndex *CodeGenRegBank::getSubRegIdx(Record *Def) { in getSubRegIdx()
1309 CodeGenSubRegIndex *&Idx = Def2SubRegIdx[Def]; in getSubRegIdx()
1317 const CodeGenSubRegIndex *
1365 CodeGenSubRegIndex*
1366 CodeGenRegBank::getCompositeSubRegIndex(CodeGenSubRegIndex *A, in getCompositeSubRegIndex()
1367 CodeGenSubRegIndex *B) { in getCompositeSubRegIndex()
1369 CodeGenSubRegIndex *Comp = A->compose(B); in getCompositeSubRegIndex()
1380 CodeGenSubRegIndex *CodeGenRegBank::
1381 getConcatSubRegIndex(const SmallVector<CodeGenSubRegIndex *, 8> &Parts) { in getConcatSubRegIndex() argument
1384 for (CodeGenSubRegIndex *Idx : Parts) { in getConcatSubRegIndex()
1390 CodeGenSubRegIndex *&Idx = ConcatIdx[Parts]; in getConcatSubRegIndex()
1427 std::map<const CodeGenSubRegIndex*, RegMap> SubRegAction; in computeComposites()
1430 for (std::pair<const CodeGenSubRegIndex*, const CodeGenRegister*> P : SM) in computeComposites()
1436 auto compose = [&SubRegAction] (const CodeGenSubRegIndex *Sub1, in computeComposites()
1437 const CodeGenSubRegIndex *Sub2) { in computeComposites()
1464 using CompositePair = std::pair<const CodeGenSubRegIndex*, in computeComposites()
1465 const CodeGenSubRegIndex*>; in computeComposites()
1467 for (const CodeGenSubRegIndex &Idx : SubRegIndices) in computeComposites()
1483 CodeGenSubRegIndex *Idx1 = I1.first; in computeComposites()
1491 CodeGenSubRegIndex *Idx2 = I2.first; in computeComposites()
1497 CodeGenSubRegIndex *Idx3 = Reg1.getSubRegIndex(Reg3); in computeComposites()
1501 if (CodeGenSubRegIndex *Prev = Idx1->addComposite(Idx2, Idx3)) { in computeComposites()
1582 const CodeGenSubRegIndex *Composite = C->second; in computeSubRegLaneMasks()
2157 CodeGenSubRegIndex *SubRegIndex = S.first; in computeRegUnitLaneMasks()
2270 typedef std::map<const CodeGenSubRegIndex *, CodeGenRegister::Vec, in inferSubClassWithSubReg()