Lines Matching defs:ClassInfo

135 /// ClassInfo - Helper class for storing the information about a particular
137 struct ClassInfo {
161 std::vector<ClassInfo*> SuperClasses;
204 bool isRelatedTo(const ClassInfo &RHS) const {
230 const ClassInfo *Root = this;
234 const ClassInfo *RHSRoot = &RHS;
242 bool isSubsetOf(const ClassInfo &RHS) const {
248 for (std::vector<ClassInfo*>::const_iterator it = SuperClasses.begin(),
257 bool operator<(const ClassInfo &RHS) const {
290 ClassInfo *Class;
523 AsmOperands[i].Class->Kind == ClassInfo::Token)
568 ClassInfo *CI;
570 static OperandMatchEntry create(MatchableInfo* mi, ClassInfo *ci,
593 std::vector<ClassInfo*> Classes;
602 std::map<Record*, ClassInfo*> RegisterClasses;
608 std::map<Record*, ClassInfo*> AsmOperandClasses;
612 std::map<std::string, ClassInfo*> TokenClasses;
615 std::map<Record*, ClassInfo*> RegisterClassClasses;
619 ClassInfo *getTokenClass(StringRef Token);
622 ClassInfo *getOperandClass(const CGIOperandList::OperandInfo &OI,
624 ClassInfo *getOperandClass(Record *Rec, int SubOpIdx);
626 /// buildRegisterClasses - Build the ClassInfo* instances for register
630 /// buildOperandClasses - Build the ClassInfo* instances for user defined
962 ClassInfo *AsmMatcherInfo::getTokenClass(StringRef Token) {
963 ClassInfo *&Entry = TokenClasses[Token];
966 Entry = new ClassInfo();
967 Entry->Kind = ClassInfo::Token;
981 ClassInfo *
990 ClassInfo *
1002 if (ClassInfo *CI = AsmOperandClasses[MatchClass])
1011 if (ClassInfo *CI = RegisterClassClasses[ClassRec])
1018 if (ClassInfo *CI = RegisterClassClasses[Rec])
1025 if (ClassInfo *CI = AsmOperandClasses[MatchClass])
1088 std::map<std::set<Record*>, ClassInfo*> RegisterSetClasses;
1092 ClassInfo *CI = new ClassInfo();
1093 CI->Kind = ClassInfo::RegisterClass0 + Index;
1110 ClassInfo *CI = RegisterSetClasses[*it];
1126 ClassInfo *CI = RegisterSetClasses[std::set<Record*>(RC.getOrder().begin(),
1147 ClassInfo *CI = RegisterClasses[Rec];
1166 AsmOperandClasses[*it] = new ClassInfo();
1171 ClassInfo *CI = AsmOperandClasses[*it];
1172 CI->Kind = ClassInfo::UserClass0 + Index;
1182 ClassInfo *SC = AsmOperandClasses[DI->getDef()];
1240 std::map<ClassInfo*, unsigned> OpClassMask;
1259 for (std::map<ClassInfo*, unsigned>::iterator iit = OpClassMask.begin(),
1262 ClassInfo *CI = iit->first;
1457 ClassInfo *FromClass = getTokenClass(Rec->getValueAsString("FromToken"));
1458 ClassInfo *ToClass = getTokenClass(Rec->getValueAsString("ToToken"));
1466 std::sort(Classes.begin(), Classes.end(), less_ptr<ClassInfo>());
1972 std::vector<ClassInfo*> &Infos,
1980 for (std::vector<ClassInfo*>::iterator it = Infos.begin(),
1982 ClassInfo &CI = **it;
1984 if (CI.Kind == ClassInfo::Token) {
2022 for (std::vector<ClassInfo*>::iterator it = Info.Classes.begin(),
2024 ClassInfo &CI = **it;
2044 for (std::map<Record*, ClassInfo*>::iterator
2063 std::vector<ClassInfo*> &Infos,
2073 for (std::vector<ClassInfo*>::iterator it = Infos.begin(),
2075 ClassInfo &A = **it;
2078 for (std::vector<ClassInfo*>::iterator it = Infos.begin(),
2080 ClassInfo &B = **it;
2109 std::vector<ClassInfo*> &Infos,
2113 for (std::vector<ClassInfo*>::iterator it = Infos.begin(),
2115 ClassInfo &CI = **it;
2117 if (CI.Kind == ClassInfo::Token)
2177 for (std::map<Record*, ClassInfo*>::const_iterator
2470 for (std::vector<ClassInfo*>::const_iterator it = Info.Classes.begin(),
2472 ClassInfo *CI = *it;