Lines Matching refs:RuleMatcher
623 class RuleMatcher;
771 class RuleMatcher : public Matcher { class
828 RuleMatcher(ArrayRef<SMLoc> SrcLoc) in RuleMatcher() function in __anon7e76e5f80111::RuleMatcher
833 RuleMatcher(RuleMatcher &&Other) = default;
834 RuleMatcher &operator=(RuleMatcher &&Other) = default;
908 bool isHigherPriorityThan(const RuleMatcher &B) const;
934 uint64_t RuleMatcher::NextRuleID = 0;
936 using action_iterator = RuleMatcher::action_iterator;
1053 RuleMatcher &Rule) const = 0;
1117 RuleMatcher &Rule) const override;
1168 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1203 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1234 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1269 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1290 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1317 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1346 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1374 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1435 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes()
1582 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1641 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1697 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1738 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1774 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1816 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1850 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1869 RuleMatcher &Rule;
1880 InstructionMatcher(RuleMatcher &Rule, StringRef SymbolicName) in InstructionMatcher()
1895 RuleMatcher &getRuleMatcher() const { return Rule; } in getRuleMatcher()
1940 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes()
2010 StringRef RuleMatcher::getOpcode() const { in getOpcode()
2014 unsigned RuleMatcher::getNumOperands() const { in getNumOperands()
2018 LLTCodeGen RuleMatcher::getFirstConditionAsRootType() { in getFirstConditionAsRootType()
2043 RuleMatcher &Rule, StringRef SymbolicName) in InstructionOperandMatcher()
2053 void emitCaptureOpcodes(MatchTable &Table, RuleMatcher &Rule) const { in emitCaptureOpcodes()
2065 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2146 RuleMatcher &Rule) const = 0;
2170 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2205 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2242 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2273 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2307 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2337 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2367 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2394 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2432 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2462 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2487 RuleMatcher &Rule) const = 0;
2498 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
2513 bool canMutate(RuleMatcher &Rule, const InstructionMatcher *Insn) const { in canMutate()
2540 void chooseInsnToMutate(RuleMatcher &Rule) { in chooseInsnToMutate()
2558 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
2644 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
2663 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
2683 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
2692 InstructionMatcher &RuleMatcher::addInstructionMatcher(StringRef SymbolicName) { in addInstructionMatcher()
2698 void RuleMatcher::addRequiredFeature(Record *Feature) { in addRequiredFeature()
2702 const std::vector<Record *> &RuleMatcher::getRequiredFeatures() const { in getRequiredFeatures()
2714 Kind &RuleMatcher::addAction(Args &&... args) { in addAction()
2727 action_iterator RuleMatcher::insertAction(action_iterator InsertPt, in insertAction()
2733 unsigned RuleMatcher::implicitlyDefineInsnVar(InstructionMatcher &Matcher) { in implicitlyDefineInsnVar()
2739 unsigned RuleMatcher::getInsnVarID(InstructionMatcher &InsnMatcher) const { in getInsnVarID()
2746 void RuleMatcher::defineOperand(StringRef SymbolicName, OperandMatcher &OM) { in defineOperand()
2758 RuleMatcher::getInstructionMatcher(StringRef SymbolicName) const { in getInstructionMatcher()
2767 RuleMatcher::getOperandMatcher(StringRef Name) const { in getOperandMatcher()
2776 void RuleMatcher::emit(MatchTable &Table) { in emit()
2881 bool RuleMatcher::isHigherPriorityThan(const RuleMatcher &B) const { in isHigherPriorityThan()
2898 unsigned RuleMatcher::countRendererFns() const { in countRendererFns()
2939 RuleMatcher &Rule) const { in emitPredicateOpcodes()
3001 Error importRulePredicates(RuleMatcher &M, ArrayRef<Predicate> Predicates);
3003 createAndImportSelDAGMatcher(RuleMatcher &Rule,
3008 Error importChildMatcher(RuleMatcher &Rule, InstructionMatcher &InsnMatcher,
3014 createAndImportInstructionRenderer(RuleMatcher &M,
3017 action_iterator InsertPt, RuleMatcher &M, const TreePatternNode *Dst,
3020 createInstructionRenderer(action_iterator InsertPt, RuleMatcher &M,
3024 importExplicitUseRenderers(action_iterator InsertPt, RuleMatcher &M,
3028 importExplicitUseRenderer(action_iterator InsertPt, RuleMatcher &Rule,
3048 Expected<RuleMatcher> runOnPattern(const PatternToMatch &P);
3052 MatchTable buildMatchTable(MutableArrayRef<RuleMatcher> Rules, bool Optimize,
3142 GlobalISelEmitter::importRulePredicates(RuleMatcher &M, in importRulePredicates()
3155 RuleMatcher &Rule, InstructionMatcher &InsnMatcher, in createAndImportSelDAGMatcher()
3380 Error GlobalISelEmitter::importChildMatcher(RuleMatcher &Rule, in importChildMatcher()
3497 action_iterator InsertPt, RuleMatcher &Rule, BuildMIAction &DstMIBuilder, in importExplicitUseRenderer()
3633 RuleMatcher &M, const TreePatternNode *Dst) { in createAndImportInstructionRenderer()
3652 const action_iterator InsertPt, RuleMatcher &M, const TreePatternNode *Dst, in createAndImportSubInstructionRenderer()
3678 action_iterator InsertPt, RuleMatcher &M, const TreePatternNode *Dst) { in createInstructionRenderer()
3711 action_iterator InsertPt, RuleMatcher &M, BuildMIAction &DstMIBuilder, in importExplicitUseRenderers()
3828 Expected<RuleMatcher> GlobalISelEmitter::runOnPattern(const PatternToMatch &P) { in runOnPattern()
3831 RuleMatcher M(P.getSrcRecord()->getLoc()); in runOnPattern()
4163 GlobalISelEmitter::buildMatchTable(MutableArrayRef<RuleMatcher> Rules, in buildMatchTable()
4174 for (RuleMatcher &Rule : Rules) { in buildMatchTable()
4183 auto *L = static_cast<const RuleMatcher *>(A); in buildMatchTable()
4184 auto *R = static_cast<const RuleMatcher *>(B); in buildMatchTable()
4214 auto *R = static_cast<RuleMatcher *>(*T); in optimize()
4220 auto *L = static_cast<RuleMatcher *>(A); in optimize()
4221 auto *R = static_cast<RuleMatcher *>(B); in optimize()
4259 std::vector<RuleMatcher> Rules; in run()
4492 std::stable_sort(Rules.begin(), Rules.end(), [&](const RuleMatcher &A, in run()
4493 const RuleMatcher &B) { in run()
4567 void RuleMatcher::optimize() { in optimize()
4591 bool RuleMatcher::hasFirstCondition() const { in hasFirstCondition()
4604 const PredicateMatcher &RuleMatcher::getFirstCondition() const { in getFirstCondition()
4622 std::unique_ptr<PredicateMatcher> RuleMatcher::popFirstCondition() { in popFirstCondition()
4708 Table, *static_cast<RuleMatcher *>(*Matchers.begin())); in emit()