Lines Matching refs:CodeGenSubRegIndex
51 CodeGenSubRegIndex::CodeGenSubRegIndex(Record *R, unsigned Enum, in CodeGenSubRegIndex() function in CodeGenSubRegIndex
65 CodeGenSubRegIndex::CodeGenSubRegIndex(StringRef N, StringRef Nspace, in CodeGenSubRegIndex() function in CodeGenSubRegIndex
71 std::string CodeGenSubRegIndex::getQualifiedName() const { in getQualifiedName()
79 void CodeGenSubRegIndex::updateComponents(CodeGenRegBank &RegBank) { in updateComponents()
88 CodeGenSubRegIndex *A = RegBank.getSubRegIdx(Comps[0]); in updateComponents()
89 CodeGenSubRegIndex *B = RegBank.getSubRegIdx(Comps[1]); in updateComponents()
90 CodeGenSubRegIndex *X = A->addComposite(B, this, RegBank.getHwModes()); in updateComponents()
101 SmallVector<CodeGenSubRegIndex *, 8> IdxParts; in updateComponents()
108 LaneBitmask CodeGenSubRegIndex::computeLaneMask() const { in computeLaneMask()
125 void CodeGenSubRegIndex::setConcatenationOf( in setConcatenationOf()
126 ArrayRef<CodeGenSubRegIndex *> Parts) { in setConcatenationOf()
134 void CodeGenSubRegIndex::computeConcatTransitiveClosure() { in computeConcatTransitiveClosure()
135 for (SmallVectorImpl<CodeGenSubRegIndex *>::iterator I = in computeConcatTransitiveClosure()
139 CodeGenSubRegIndex *SubIdx = *I; in computeConcatTransitiveClosure()
142 for (CodeGenSubRegIndex *SRI : SubIdx->ConcatenationOf) in computeConcatTransitiveClosure()
287 CodeGenSubRegIndex *Idx = ExplicitSubRegIndices[i]; in computeSubRegs()
318 SmallVector<CodeGenSubRegIndex *, 8> Indices = ExplicitSubRegIndices; in computeSubRegs()
320 CodeGenSubRegIndex *Idx = Indices[i]; in computeSubRegs()
321 const CodeGenSubRegIndex::CompMap &Comps = Idx->getComposites(); in computeSubRegs()
358 CodeGenSubRegIndex *Idx = Indices.pop_back_val(); in computeSubRegs()
382 DenseMap<const CodeGenRegister *, CodeGenSubRegIndex *>::iterator Ins = in computeSubRegs()
407 SmallVector<CodeGenSubRegIndex *, 8> Parts; in computeSubRegs()
409 CodeGenSubRegIndex &I = *SR->ExplicitSubRegIndices[j]; in computeSubRegs()
415 CodeGenSubRegIndex &Idx = *ExplicitSubRegIndices[i]; in computeSubRegs()
479 std::queue<std::pair<CodeGenSubRegIndex *, CodeGenRegister *>> SubRegQueue; in computeSecondarySubRegs()
480 for (std::pair<CodeGenSubRegIndex *, CodeGenRegister *> P : SubRegs) in computeSecondarySubRegs()
487 CodeGenSubRegIndex *SubRegIdx; in computeSecondarySubRegs()
503 SmallVector<CodeGenSubRegIndex *, 8> Parts; in computeSecondarySubRegs()
509 if (CodeGenSubRegIndex *SubRegIdx = getSubRegIndex(SubReg)) { in computeSecondarySubRegs()
527 CodeGenSubRegIndex *Concat = in computeSecondarySubRegs()
529 std::pair<CodeGenSubRegIndex *, CodeGenRegister *> NewSubReg = in computeSecondarySubRegs()
544 CodeGenSubRegIndex *NewIdx = NewSubRegs[i].first; in computeSecondarySubRegs()
547 CodeGenSubRegIndex *SubIdx = getSubRegIndex(SubReg.second); in computeSecondarySubRegs()
1058 CodeGenRegBank &RegBank, const CodeGenSubRegIndex *SubIdx) const { in getMatchingSubClassWithSubRegs()
1142 void CodeGenRegisterClass::getSuperRegClasses(const CodeGenSubRegIndex *SubIdx, in getSuperRegClasses()
1258 for (CodeGenSubRegIndex &SRI : SubRegIndices) { in CodeGenRegBank()
1262 std::pair(SmallVector<CodeGenSubRegIndex *, 8>( in CodeGenRegBank()
1324 CodeGenSubRegIndex *CodeGenRegBank::createSubRegIndex(StringRef Name, in createSubRegIndex()
1330 CodeGenSubRegIndex *CodeGenRegBank::getSubRegIdx(Record *Def) { in getSubRegIdx()
1331 CodeGenSubRegIndex *&Idx = Def2SubRegIdx[Def]; in getSubRegIdx()
1339 const CodeGenSubRegIndex *
1387 CodeGenSubRegIndex *
1388 CodeGenRegBank::getCompositeSubRegIndex(CodeGenSubRegIndex *A, in getCompositeSubRegIndex()
1389 CodeGenSubRegIndex *B) { in getCompositeSubRegIndex()
1391 CodeGenSubRegIndex *Comp = A->compose(B); in getCompositeSubRegIndex()
1402 CodeGenSubRegIndex *CodeGenRegBank::getConcatSubRegIndex( in getConcatSubRegIndex()
1403 const SmallVector<CodeGenSubRegIndex *, 8> &Parts, in getConcatSubRegIndex() argument
1407 for (CodeGenSubRegIndex *Idx : Parts) { in getConcatSubRegIndex()
1413 CodeGenSubRegIndex *&Idx = ConcatIdx[Parts]; in getConcatSubRegIndex()
1431 const CodeGenSubRegIndex *Part = Parts.front(); in getConcatSubRegIndex()
1469 std::map<const CodeGenSubRegIndex *, RegMap> SubRegAction; in computeComposites()
1472 for (std::pair<const CodeGenSubRegIndex *, const CodeGenRegister *> P : SM) in computeComposites()
1478 auto compose = [&SubRegAction](const CodeGenSubRegIndex *Sub1, in computeComposites()
1479 const CodeGenSubRegIndex *Sub2) { in computeComposites()
1507 std::pair<const CodeGenSubRegIndex *, const CodeGenSubRegIndex *>; in computeComposites()
1509 for (const CodeGenSubRegIndex &Idx : SubRegIndices) in computeComposites()
1525 CodeGenSubRegIndex *Idx1 = I1.first; in computeComposites()
1533 CodeGenSubRegIndex *Idx2 = I2.first; in computeComposites()
1539 CodeGenSubRegIndex *Idx3 = Reg1.getSubRegIndex(Reg3); in computeComposites()
1543 if (CodeGenSubRegIndex *Prev = in computeComposites()
1625 const CodeGenSubRegIndex *Composite = C->second; in computeSubRegLaneMasks()
2179 CodeGenSubRegIndex *SubRegIndex = S.first; in computeRegUnitLaneMasks()
2292 typedef std::map<const CodeGenSubRegIndex *, CodeGenRegister::Vec, in inferSubClassWithSubReg()