Lines Matching refs:Matcher

447 class Matcher;
517 static MatchTable buildTable(ArrayRef<Matcher *> Rules, bool WithCoverage);
625 class Matcher { class
627 virtual ~Matcher() = default;
636 MatchTable MatchTable::buildTable(ArrayRef<Matcher *> Rules, in buildTable()
639 for (Matcher *Rule : Rules) in buildTable()
645 class GroupMatcher final : public Matcher {
650 std::vector<Matcher *> Matchers;
654 std::vector<std::unique_ptr<Matcher>> MatcherStorage;
661 bool addMatcher(Matcher &Candidate);
690 iterator_range<std::vector<Matcher *>::iterator> matchers() { in matchers()
716 class SwitchMatcher : public Matcher {
722 std::vector<Matcher *> Matchers;
734 std::vector<std::unique_ptr<Matcher>> MatcherStorage;
737 bool addMatcher(Matcher &Candidate);
742 iterator_range<std::vector<Matcher *>::iterator> matchers() { in matchers()
771 class RuleMatcher : public Matcher {
847 unsigned implicitlyDefineInsnVar(InstructionMatcher &Matcher);
2733 unsigned RuleMatcher::implicitlyDefineInsnVar(InstructionMatcher &Matcher) { in implicitlyDefineInsnVar() argument
2735 InsnVariableIDs[&Matcher] = NewInsnVarID; in implicitlyDefineInsnVar()
2888 for (const auto &Matcher : zip(Matchers, B.Matchers)) { in isHigherPriorityThan() local
2889 if (std::get<0>(Matcher)->isHigherPriorityThan(*std::get<1>(Matcher))) in isHigherPriorityThan()
2891 if (std::get<1>(Matcher)->isHigherPriorityThan(*std::get<0>(Matcher))) in isHigherPriorityThan()
2901 [](unsigned A, const std::unique_ptr<InstructionMatcher> &Matcher) { in countRendererFns() argument
2902 return A + Matcher->countRendererFns(); in countRendererFns()
3082 static std::vector<Matcher *> optimizeRules(
3083 ArrayRef<Matcher *> Rules,
3084 std::vector<std::unique_ptr<Matcher>> &MatcherStorage);
4113 std::vector<Matcher *> GlobalISelEmitter::optimizeRules( in optimizeRules()
4114 ArrayRef<Matcher *> Rules, in optimizeRules()
4115 std::vector<std::unique_ptr<Matcher>> &MatcherStorage) { in optimizeRules()
4117 std::vector<Matcher *> OptRules; in optimizeRules()
4131 for (Matcher *M : CurrentGroup->matchers()) in optimizeRules()
4141 for (Matcher *Rule : Rules) { in optimizeRules()
4165 std::vector<Matcher *> InputRules; in buildMatchTable()
4166 for (Matcher &Rule : Rules) in buildMatchTable()
4182 [&OpcodeOrder](const Matcher *A, const Matcher *B) { in buildMatchTable()
4191 for (Matcher *Rule : InputRules) in buildMatchTable()
4194 std::vector<std::unique_ptr<Matcher>> MatcherStorage; in buildMatchTable()
4195 std::vector<Matcher *> OptRules = in buildMatchTable()
4198 for (Matcher *Rule : OptRules) in buildMatchTable()
4219 std::stable_sort(F, T, [](Matcher *A, Matcher *B) { in optimize()
4594 InstructionMatcher &Matcher = insnmatchers_front(); in hasFirstCondition() local
4595 if (!Matcher.predicates_empty()) in hasFirstCondition()
4597 for (auto &OM : Matcher.operands()) in hasFirstCondition()
4608 InstructionMatcher &Matcher = insnmatchers_front(); in getFirstCondition() local
4609 if (!Matcher.predicates_empty()) in getFirstCondition()
4610 return **Matcher.predicates_begin(); in getFirstCondition()
4613 for (auto &OM : Matcher.operands()) in getFirstCondition()
4626 InstructionMatcher &Matcher = insnmatchers_front(); in popFirstCondition() local
4627 if (!Matcher.predicates_empty()) in popFirstCondition()
4628 return Matcher.predicates_pop_front(); in popFirstCondition()
4631 for (auto &OM : Matcher.operands()) in popFirstCondition()
4657 const Matcher &Representative = **Matchers.begin(); in candidateConditionMatches()
4664 bool GroupMatcher::addMatcher(Matcher &Candidate) { in addMatcher()
4681 Matcher &FirstRule = **Matchers.begin(); in finalize()
4745 const Matcher &CaseRepresentative = **Matchers.begin(); in candidateConditionMatches()
4757 bool SwitchMatcher::addMatcher(Matcher &Candidate) { in addMatcher()
4778 [](const Matcher *L, const Matcher *R) { in finalize()