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;
793 void buildInstructionOperandReference(MatchableInfo *II, StringRef OpName,
795 void buildAliasOperandReference(MatchableInfo *II, StringRef OpName,
796 MatchableInfo::AsmOperand &Op);
828 LLVM_DUMP_METHOD void MatchableInfo::dump() const {
865 void MatchableInfo::formTwoOperandAlias(StringRef Constraint) {
910 static void extractSingletonRegisterForAsmOperand(MatchableInfo::AsmOperand &Op,
938 void MatchableInfo::initialize(const AsmMatcherInfo &Info,
973 for (MatchableInfo::AsmOperand &Op : AsmOperands) {
988 void MatchableInfo::addAsmOperand(StringRef Token, bool IsIsolatedToken) {
993 void MatchableInfo::tokenizeAsmString(const AsmMatcherInfo &Info,
1077 bool MatchableInfo::validate(StringRef CommentDelimiter, bool IsAlias) const {
1492 const MatchableInfo::AsmOperand &Op = MI->AsmOperands[i];
1561 auto II = std::make_unique<MatchableInfo>(*CGI);
1591 auto II = std::make_unique<MatchableInfo>(std::move(Alias));
1610 std::vector<std::unique_ptr<MatchableInfo>> NewMatchables;
1616 MatchableInfo::AsmOperand &Op = II->AsmOperands[i];
1660 auto AliasII = std::make_unique<MatchableInfo>(*II);
1710 void AsmMatcherInfo::buildInstructionOperandReference(MatchableInfo *II,
1715 MatchableInfo::AsmOperand *Op = &II->AsmOperands[AsmOpIdx];
1734 MatchableInfo::AsmOperand NewAsmOp(/*IsIsolatedToken=*/true, Token);
1774 void AsmMatcherInfo::buildAliasOperandReference(MatchableInfo *II,
1776 MatchableInfo::AsmOperand &Op) {
1800 void MatchableInfo::buildInstructionResultOperands() {
1849 void MatchableInfo::buildAliasResultOperands(bool AliasConstraintsAreChecked) {
1978 std::vector<std::unique_ptr<MatchableInfo>> &Infos,
2112 const MatchableInfo::ResOperand &OpInfo = II->ResOperands[i];
2116 case MatchableInfo::ResOperand::RenderAsmOperand: {
2118 const MatchableInfo::AsmOperand &Op =
2188 case MatchableInfo::ResOperand::TiedOperand: {
2210 case MatchableInfo::ResOperand::ImmOperand: {
2238 case MatchableInfo::ResOperand::RegOperand: {
2921 const MatchableInfo &II = *OMI.MI;
3251 [PreferSmallerInstructions](const std::unique_ptr<MatchableInfo> &A,
3252 const std::unique_ptr<MatchableInfo> &B) {
3277 const MatchableInfo &A = **I;
3278 const MatchableInfo &B = **J;
3572 for (const MatchableInfo::AsmOperand &Op : MI->AsmOperands)