Lines Matching refs:RuleMatcher
659 class RuleMatcher;
807 class RuleMatcher : public Matcher { class
873 RuleMatcher(ArrayRef<SMLoc> SrcLoc) in RuleMatcher() function in __anon0a286f430111::RuleMatcher
878 RuleMatcher(RuleMatcher &&Other) = default;
879 RuleMatcher &operator=(RuleMatcher &&Other) = default;
973 bool isHigherPriorityThan(const RuleMatcher &B) const;
999 uint64_t RuleMatcher::NextRuleID = 0;
1001 using action_iterator = RuleMatcher::action_iterator;
1142 RuleMatcher &Rule) const = 0;
1213 RuleMatcher &Rule) const override;
1264 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1304 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1338 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1369 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1404 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1425 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1442 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1469 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1498 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1526 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1556 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1617 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes()
1794 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1870 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1926 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1967 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2003 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2034 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2073 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2115 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2153 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2185 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2204 RuleMatcher &Rule;
2220 InstructionMatcher(RuleMatcher &Rule, StringRef SymbolicName, in InstructionMatcher()
2236 RuleMatcher &getRuleMatcher() const { return Rule; } in getRuleMatcher()
2295 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes()
2378 StringRef RuleMatcher::getOpcode() const { in getOpcode()
2382 unsigned RuleMatcher::getNumOperands() const { in getNumOperands()
2386 LLTCodeGen RuleMatcher::getFirstConditionAsRootType() { in getFirstConditionAsRootType()
2411 RuleMatcher &Rule, StringRef SymbolicName, in InstructionOperandMatcher()
2422 void emitCaptureOpcodes(MatchTable &Table, RuleMatcher &Rule) const { in emitCaptureOpcodes()
2434 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2518 RuleMatcher &Rule) const = 0;
2542 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2573 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2609 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2646 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2677 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2711 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2744 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2791 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2831 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2852 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2891 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2921 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2952 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2978 RuleMatcher &Rule) const = 0;
2989 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3004 bool canMutate(RuleMatcher &Rule, const InstructionMatcher *Insn) const { in canMutate()
3031 void chooseInsnToMutate(RuleMatcher &Rule) { in chooseInsnToMutate()
3049 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3135 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3154 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3176 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3185 InstructionMatcher &RuleMatcher::addInstructionMatcher(StringRef SymbolicName) { in addInstructionMatcher()
3191 void RuleMatcher::addRequiredFeature(Record *Feature) { in addRequiredFeature()
3195 const std::vector<Record *> &RuleMatcher::getRequiredFeatures() const { in getRequiredFeatures()
3207 Kind &RuleMatcher::addAction(Args &&... args) { in addAction()
3220 action_iterator RuleMatcher::insertAction(action_iterator InsertPt, in insertAction()
3226 unsigned RuleMatcher::implicitlyDefineInsnVar(InstructionMatcher &Matcher) { in implicitlyDefineInsnVar()
3232 unsigned RuleMatcher::getInsnVarID(InstructionMatcher &InsnMatcher) const { in getInsnVarID()
3239 void RuleMatcher::defineOperand(StringRef SymbolicName, OperandMatcher &OM) { in defineOperand()
3250 void RuleMatcher::definePhysRegOperand(Record *Reg, OperandMatcher &OM) { in definePhysRegOperand()
3258 RuleMatcher::getInstructionMatcher(StringRef SymbolicName) const { in getInstructionMatcher()
3267 RuleMatcher::getPhysRegOperandMatcher(Record *Reg) const { in getPhysRegOperandMatcher()
3279 RuleMatcher::getOperandMatcher(StringRef Name) const { in getOperandMatcher()
3288 void RuleMatcher::emit(MatchTable &Table) { in emit()
3393 bool RuleMatcher::isHigherPriorityThan(const RuleMatcher &B) const { in isHigherPriorityThan()
3410 unsigned RuleMatcher::countRendererFns() const { in countRendererFns()
3451 RuleMatcher &Rule) const { in emitPredicateOpcodes()
3539 Error importRulePredicates(RuleMatcher &M, ArrayRef<Predicate> Predicates);
3541 createAndImportSelDAGMatcher(RuleMatcher &Rule,
3546 Error importChildMatcher(RuleMatcher &Rule, InstructionMatcher &InsnMatcher,
3552 RuleMatcher &M, InstructionMatcher &InsnMatcher,
3555 action_iterator InsertPt, RuleMatcher &M, const TreePatternNode *Dst,
3558 createInstructionRenderer(action_iterator InsertPt, RuleMatcher &M,
3562 importExplicitDefRenderers(action_iterator InsertPt, RuleMatcher &M,
3567 importExplicitUseRenderers(action_iterator InsertPt, RuleMatcher &M,
3571 importExplicitUseRenderer(action_iterator InsertPt, RuleMatcher &Rule,
3574 Error importDefaultOperandRenderers(action_iterator InsertPt, RuleMatcher &M,
3593 Expected<RuleMatcher> runOnPattern(const PatternToMatch &P);
3597 MatchTable buildMatchTable(MutableArrayRef<RuleMatcher> Rules, bool Optimize,
3727 GlobalISelEmitter::importRulePredicates(RuleMatcher &M, in importRulePredicates()
3881 RuleMatcher &Rule, InstructionMatcher &InsnMatcher, in createAndImportSelDAGMatcher()
4118 RuleMatcher &Rule, InstructionMatcher &InsnMatcher, in importChildMatcher()
4324 action_iterator InsertPt, RuleMatcher &Rule, BuildMIAction &DstMIBuilder, in importExplicitUseRenderer()
4472 RuleMatcher &M, InstructionMatcher &InsnMatcher, const TreePatternNode *Src, in createAndImportInstructionRenderer()
4506 const action_iterator InsertPt, RuleMatcher &M, const TreePatternNode *Dst, in createAndImportSubInstructionRenderer()
4627 action_iterator InsertPt, RuleMatcher &M, const TreePatternNode *Dst) { in createInstructionRenderer()
4648 action_iterator InsertPt, RuleMatcher &M, BuildMIAction &DstMIBuilder, in importExplicitDefRenderers()
4683 action_iterator InsertPt, RuleMatcher &M, BuildMIAction &DstMIBuilder, in importExplicitUseRenderers()
4848 action_iterator InsertPt, RuleMatcher &M, BuildMIAction &DstMIBuilder, in importDefaultOperandRenderers()
5034 Expected<RuleMatcher> GlobalISelEmitter::runOnPattern(const PatternToMatch &P) { in runOnPattern()
5037 RuleMatcher M(P.getSrcRecord()->getLoc()); in runOnPattern()
5463 GlobalISelEmitter::buildMatchTable(MutableArrayRef<RuleMatcher> Rules, in buildMatchTable()
5474 for (RuleMatcher &Rule : Rules) { in buildMatchTable()
5483 auto *L = static_cast<const RuleMatcher *>(A); in buildMatchTable()
5484 auto *R = static_cast<const RuleMatcher *>(B); in buildMatchTable()
5514 auto *R = static_cast<RuleMatcher *>(*T); in optimize()
5520 auto *L = static_cast<RuleMatcher *>(A); in optimize()
5521 auto *R = static_cast<RuleMatcher *>(B); in optimize()
5559 std::vector<RuleMatcher> Rules; in run()
5808 llvm::stable_sort(Rules, [&](const RuleMatcher &A, const RuleMatcher &B) { in run()
5879 void RuleMatcher::optimize() { in optimize()
5903 bool RuleMatcher::hasFirstCondition() const { in hasFirstCondition()
5916 const PredicateMatcher &RuleMatcher::getFirstCondition() const { in getFirstCondition()
5934 std::unique_ptr<PredicateMatcher> RuleMatcher::popFirstCondition() { in popFirstCondition()
6020 Table, *static_cast<RuleMatcher *>(*Matchers.begin())); in emit()