Lines Matching refs:RuleMatcher
671 class RuleMatcher;
819 class RuleMatcher : public Matcher { class
885 RuleMatcher(ArrayRef<SMLoc> SrcLoc) in RuleMatcher() function in __anon612774070111::RuleMatcher
890 RuleMatcher(RuleMatcher &&Other) = default;
891 RuleMatcher &operator=(RuleMatcher &&Other) = default;
986 bool isHigherPriorityThan(const RuleMatcher &B) const;
1012 uint64_t RuleMatcher::NextRuleID = 0;
1014 using action_iterator = RuleMatcher::action_iterator;
1155 RuleMatcher &Rule) const = 0;
1226 RuleMatcher &Rule) const override;
1277 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1317 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1351 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1382 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1417 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1438 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1455 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1482 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1511 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1539 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1569 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1602 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1664 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes()
1841 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1917 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1973 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2014 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2050 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2081 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2120 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2162 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2200 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2232 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2251 RuleMatcher &Rule;
2267 InstructionMatcher(RuleMatcher &Rule, StringRef SymbolicName, in InstructionMatcher()
2283 RuleMatcher &getRuleMatcher() const { return Rule; } in getRuleMatcher()
2342 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes()
2425 StringRef RuleMatcher::getOpcode() const { in getOpcode()
2429 unsigned RuleMatcher::getNumOperands() const { in getNumOperands()
2433 LLTCodeGen RuleMatcher::getFirstConditionAsRootType() { in getFirstConditionAsRootType()
2458 RuleMatcher &Rule, StringRef SymbolicName, in InstructionOperandMatcher()
2469 void emitCaptureOpcodes(MatchTable &Table, RuleMatcher &Rule) const { in emitCaptureOpcodes()
2481 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2565 RuleMatcher &Rule) const = 0;
2589 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2620 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2656 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2693 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2724 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2758 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2791 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2838 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2878 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2899 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2938 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2968 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2999 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
3025 RuleMatcher &Rule) const = 0;
3036 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3051 bool canMutate(RuleMatcher &Rule, const InstructionMatcher *Insn) const { in canMutate()
3078 void chooseInsnToMutate(RuleMatcher &Rule) { in chooseInsnToMutate()
3096 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3182 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3201 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3223 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3232 InstructionMatcher &RuleMatcher::addInstructionMatcher(StringRef SymbolicName) { in addInstructionMatcher()
3238 void RuleMatcher::addRequiredFeature(Record *Feature) { in addRequiredFeature()
3242 const std::vector<Record *> &RuleMatcher::getRequiredFeatures() const { in getRequiredFeatures()
3254 Kind &RuleMatcher::addAction(Args &&... args) { in addAction()
3267 action_iterator RuleMatcher::insertAction(action_iterator InsertPt, in insertAction()
3273 unsigned RuleMatcher::implicitlyDefineInsnVar(InstructionMatcher &Matcher) { in implicitlyDefineInsnVar()
3279 unsigned RuleMatcher::getInsnVarID(InstructionMatcher &InsnMatcher) const { in getInsnVarID()
3286 void RuleMatcher::defineOperand(StringRef SymbolicName, OperandMatcher &OM) { in defineOperand()
3297 void RuleMatcher::definePhysRegOperand(Record *Reg, OperandMatcher &OM) { in definePhysRegOperand()
3305 RuleMatcher::getInstructionMatcher(StringRef SymbolicName) const { in getInstructionMatcher()
3314 RuleMatcher::getPhysRegOperandMatcher(Record *Reg) const { in getPhysRegOperandMatcher()
3326 RuleMatcher::getOperandMatcher(StringRef Name) const { in getOperandMatcher()
3335 void RuleMatcher::emit(MatchTable &Table) { in emit()
3440 bool RuleMatcher::isHigherPriorityThan(const RuleMatcher &B) const { in isHigherPriorityThan()
3457 unsigned RuleMatcher::countRendererFns() const { in countRendererFns()
3498 RuleMatcher &Rule) const { in emitPredicateOpcodes()
3586 Error importRulePredicates(RuleMatcher &M, ArrayRef<Record *> Predicates);
3588 createAndImportSelDAGMatcher(RuleMatcher &Rule,
3593 Error importChildMatcher(RuleMatcher &Rule, InstructionMatcher &InsnMatcher,
3599 RuleMatcher &M, InstructionMatcher &InsnMatcher,
3602 action_iterator InsertPt, RuleMatcher &M, const TreePatternNode *Dst,
3605 createInstructionRenderer(action_iterator InsertPt, RuleMatcher &M,
3609 importExplicitDefRenderers(action_iterator InsertPt, RuleMatcher &M,
3614 importExplicitUseRenderers(action_iterator InsertPt, RuleMatcher &M,
3618 importExplicitUseRenderer(action_iterator InsertPt, RuleMatcher &Rule,
3621 Error importDefaultOperandRenderers(action_iterator InsertPt, RuleMatcher &M,
3640 Expected<RuleMatcher> runOnPattern(const PatternToMatch &P);
3644 MatchTable buildMatchTable(MutableArrayRef<RuleMatcher> Rules, bool Optimize,
3777 Error GlobalISelEmitter::importRulePredicates(RuleMatcher &M, in importRulePredicates()
3945 RuleMatcher &Rule, InstructionMatcher &InsnMatcher, in createAndImportSelDAGMatcher()
4182 RuleMatcher &Rule, InstructionMatcher &InsnMatcher, in importChildMatcher()
4399 action_iterator InsertPt, RuleMatcher &Rule, BuildMIAction &DstMIBuilder, in importExplicitUseRenderer()
4546 RuleMatcher &M, InstructionMatcher &InsnMatcher, const TreePatternNode *Src, in createAndImportInstructionRenderer()
4580 const action_iterator InsertPt, RuleMatcher &M, const TreePatternNode *Dst, in createAndImportSubInstructionRenderer()
4701 action_iterator InsertPt, RuleMatcher &M, const TreePatternNode *Dst) { in createInstructionRenderer()
4722 action_iterator InsertPt, RuleMatcher &M, BuildMIAction &DstMIBuilder, in importExplicitDefRenderers()
4757 action_iterator InsertPt, RuleMatcher &M, BuildMIAction &DstMIBuilder, in importExplicitUseRenderers()
4924 action_iterator InsertPt, RuleMatcher &M, BuildMIAction &DstMIBuilder, in importDefaultOperandRenderers()
5111 Expected<RuleMatcher> GlobalISelEmitter::runOnPattern(const PatternToMatch &P) { in runOnPattern()
5114 RuleMatcher M(P.getSrcRecord()->getLoc()); in runOnPattern()
5541 GlobalISelEmitter::buildMatchTable(MutableArrayRef<RuleMatcher> Rules, in buildMatchTable()
5552 for (RuleMatcher &Rule : Rules) { in buildMatchTable()
5561 auto *L = static_cast<const RuleMatcher *>(A); in buildMatchTable()
5562 auto *R = static_cast<const RuleMatcher *>(B); in buildMatchTable()
5590 auto *R = static_cast<RuleMatcher *>(*T); in optimize()
5596 auto *L = static_cast<RuleMatcher *>(A); in optimize()
5597 auto *R = static_cast<RuleMatcher *>(B); in optimize()
5635 std::vector<RuleMatcher> Rules; in run()
5882 llvm::stable_sort(Rules, [&](const RuleMatcher &A, const RuleMatcher &B) { in run()
5953 void RuleMatcher::optimize() { in optimize()
5977 bool RuleMatcher::hasFirstCondition() const { in hasFirstCondition()
5990 const PredicateMatcher &RuleMatcher::getFirstCondition() const { in getFirstCondition()
6008 std::unique_ptr<PredicateMatcher> RuleMatcher::popFirstCondition() { in popFirstCondition()
6094 Table, *static_cast<RuleMatcher *>(*Matchers.begin())); in emit()