Lines Matching defs:MatchableInfo

382 /// MatchableInfo - Helper class for storing the necessary information for an
384 struct MatchableInfo {
551 MatchableInfo(const CodeGenInstruction &CGI)
556 MatchableInfo(std::unique_ptr<const CodeGenInstAlias> Alias)
565 MatchableInfo(const MatchableInfo &RHS)
576 ~MatchableInfo() {
621 bool shouldBeMatchedBefore(const MatchableInfo &RHS,
671 bool couldMatchAmbiguouslyWith(const MatchableInfo &RHS,
726 const MatchableInfo *MI;
729 static OperandMatchEntry create(const MatchableInfo *mi, ClassInfo *ci,
754 std::vector<std::unique_ptr<MatchableInfo>> Matchables;
795 void buildInstructionOperandReference(MatchableInfo *II, StringRef OpName,
797 void buildAliasOperandReference(MatchableInfo *II, StringRef OpName,
798 MatchableInfo::AsmOperand &Op);
830 LLVM_DUMP_METHOD void MatchableInfo::dump() const {
866 void MatchableInfo::formTwoOperandAlias(StringRef Constraint) {
911 static void extractSingletonRegisterForAsmOperand(MatchableInfo::AsmOperand &Op,
939 void MatchableInfo::initialize(
974 for (MatchableInfo::AsmOperand &Op : AsmOperands) {
989 void MatchableInfo::addAsmOperand(StringRef Token, bool IsIsolatedToken) {
994 void MatchableInfo::tokenizeAsmString(const AsmMatcherInfo &Info,
1078 bool MatchableInfo::validate(StringRef CommentDelimiter, bool IsAlias) const {
1559 auto II = std::make_unique<MatchableInfo>(*CGI);
1588 auto II = std::make_unique<MatchableInfo>(std::move(Alias));
1607 std::vector<std::unique_ptr<MatchableInfo>> NewMatchables;
1614 MatchableInfo::AsmOperand &Op = II->AsmOperands[Idx];
1657 auto AliasII = std::make_unique<MatchableInfo>(*II);
1705 void AsmMatcherInfo::buildInstructionOperandReference(MatchableInfo *II,
1710 MatchableInfo::AsmOperand *Op = &II->AsmOperands[AsmOpIdx];
1729 MatchableInfo::AsmOperand NewAsmOp(/*IsIsolatedToken=*/true, Token);
1769 void AsmMatcherInfo::buildAliasOperandReference(MatchableInfo *II,
1771 MatchableInfo::AsmOperand &Op) {
1795 void MatchableInfo::buildInstructionResultOperands() {
1844 void MatchableInfo::buildAliasResultOperands(bool AliasConstraintsAreChecked) {
1971 std::vector<std::unique_ptr<MatchableInfo>> &Infos,
2107 case MatchableInfo::ResOperand::RenderAsmOperand: {
2109 const MatchableInfo::AsmOperand &Op =
2179 case MatchableInfo::ResOperand::TiedOperand: {
2201 case MatchableInfo::ResOperand::ImmOperand: {
2229 case MatchableInfo::ResOperand::RegOperand: {
2928 const MatchableInfo &II = *OMI.MI;
3258 [PreferSmallerInstructions](const std::unique_ptr<MatchableInfo> &A,
3259 const std::unique_ptr<MatchableInfo> &B) {
3284 const MatchableInfo &A = **I;
3285 const MatchableInfo &B = **J;
3575 for (const MatchableInfo::AsmOperand &Op : MI->AsmOperands)