Lines Matching refs:InstructionPattern
216 bool processMatchPattern(InstructionPattern &P);
219 bool processApplyPattern(InstructionPattern &P);
261 void getInstEqClasses(const InstructionPattern &P,
277 PatternType inferImmediateType(const InstructionPattern &IP,
285 PatternType inferNamedOperandType(const InstructionPattern &IP,
291 SmallVector<InstructionPattern *, 8> MatchPats;
292 SmallVector<InstructionPattern *, 8> ApplyPats;
297 bool CombineRuleOperandTypeChecker::processMatchPattern(InstructionPattern &P) { in processMatchPattern()
306 bool CombineRuleOperandTypeChecker::processApplyPattern(InstructionPattern &P) { in processApplyPattern()
402 const InstructionPattern &IP, unsigned ImmOpIdx, in inferImmediateType()
441 const InstructionPattern &IP, StringRef OpName, in inferNamedOperandType()
517 const InstructionPattern &P, TypeEquivalenceClasses &OutTECs) const { in getInstEqClasses()
726 bool parseInstructionPatternOperand(InstructionPattern &IP,
729 bool parseInstructionPatternMIFlags(InstructionPattern &IP,
738 const InstructionPattern &IP);
753 const InstructionPattern &P,
772 function_ref<const InstructionPattern *(StringRef)>;
802 SmallDenseSet<InstructionPattern *, 2> ApplyRoots;
854 if (!emitMatchPattern(CE, Alts, *cast<InstructionPattern>(MatchRoot))) in emitRuleMatchers()
903 if (isa<InstructionPattern>(Pat.get()) && in print()
904 ApplyRoots.contains(cast<InstructionPattern>(Pat.get()))) in print()
1084 if (auto *IP = dyn_cast<InstructionPattern>(Pat.get())) { in typecheckPatterns()
1091 if (auto *IP = dyn_cast<InstructionPattern>(Pat.get())) { in typecheckPatterns()
1102 if (auto *IP = dyn_cast<InstructionPattern>(Pat.get())) { in typecheckPatterns()
1206 const auto *IP = dyn_cast<InstructionPattern>(Apply.second.get()); in checkSemantics()
1349 auto *IPRoot = dyn_cast<InstructionPattern>(MatchRoot); in findRoots()
1361 auto *ApplyRoot = dyn_cast<InstructionPattern>(It->second.get()); in findRoots()
1385 ApplyRoots.insert((InstructionPattern *)ApplyRedef); in findRoots()
1438 auto *IP = dyn_cast<InstructionPattern>(Pat.get()); in buildRuleOperandsTable()
1444 auto *IP = dyn_cast<InstructionPattern>(Pat.get()); in buildRuleOperandsTable()
1556 std::unique_ptr<InstructionPattern> Pat; in parseInstructionPattern()
1623 InstructionPattern &IP, const Init *OpInit, in parseInstructionPatternOperand()
1693 InstructionPattern &IP, const DagInit *Op) const { in parseInstructionPatternMIFlags()
1887 const InstructionPattern &IP) { in emitMatchPattern()
1896 const auto FindOperandDef = [&](StringRef Op) -> InstructionPattern * { in emitMatchPattern()
1936 cast<InstructionPattern>(Pat.get())->reportUnreachable(RuleDef.getLoc()); in emitMatchPattern()
1988 cast<InstructionPattern>(Pat.get())->reportUnreachable( in emitMatchPattern()
2093 [&](StringRef Op) -> const InstructionPattern * { in emitPatFragMatchPattern()
2125 if (const auto *IP = dyn_cast<InstructionPattern>(Pat.get())) { in emitPatFragMatchPattern()
2153 assert(isa<InstructionPattern>(ApplyRoot) && in emitApplyPatterns()
2156 cast<InstructionPattern>(*ApplyRoot), in emitApplyPatterns()
2197 CodeExpansions &CE, RuleMatcher &M, const InstructionPattern &P, in emitInstructionApplyPattern()
2433 bool isLiteralImm(const InstructionPattern &P, unsigned OpIdx) { in isLiteralImm()