Lines Matching refs:Rule
689 for (Matcher *Rule : Rules) in buildTable()
690 Rule->emit(Table); in buildTable()
1156 RuleMatcher &Rule) const = 0;
1229 RuleMatcher &Rule) const override;
1281 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1321 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1355 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1386 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1421 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1442 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1459 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1486 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1515 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1543 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1573 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1606 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1668 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes() argument
1680 emitPredicateListOpcodes(Table, Rule); in emitPredicateOpcodes()
1845 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1921 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
1977 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2018 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2054 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2085 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2124 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2166 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2204 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2236 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2261 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2278 RuleMatcher &Rule; member in __anoncee47b830111::InstructionMatcher
2294 InstructionMatcher(RuleMatcher &Rule, StringRef SymbolicName, in InstructionMatcher() argument
2296 : Rule(Rule), NumOperandsCheck(NumOpsCheck), SymbolicName(SymbolicName) { in InstructionMatcher()
2299 InsnVarID = Rule.implicitlyDefineInsnVar(*this); in InstructionMatcher()
2310 RuleMatcher &getRuleMatcher() const { return Rule; } in getRuleMatcher()
2320 Rule.defineOperand(SymbolicName, *Operands.back()); in addOperand()
2340 Rule.definePhysRegOperand(Reg, *OM); in addPhysRegInput()
2369 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes() argument
2372 .emitPredicateOpcodes(Table, Rule); in emitPredicateOpcodes()
2379 }, Table, Rule); in emitPredicateOpcodes()
2383 Operand->emitPredicateOpcodes(Table, Rule); in emitPredicateOpcodes()
2390 }, Table, Rule); in emitPredicateOpcodes()
2485 RuleMatcher &Rule, StringRef SymbolicName, in InstructionOperandMatcher() argument
2488 InsnMatcher(new InstructionMatcher(Rule, SymbolicName, NumOpsCheck)) {} in InstructionOperandMatcher()
2496 void emitCaptureOpcodes(MatchTable &Table, RuleMatcher &Rule) const { in emitCaptureOpcodes()
2508 RuleMatcher &Rule) const override { in emitPredicateOpcodes()
2509 emitCaptureOpcodes(Table, Rule); in emitPredicateOpcodes()
2510 InsnMatcher->emitPredicateOpcodes(Table, Rule); in emitPredicateOpcodes()
2592 RuleMatcher &Rule) const = 0;
2616 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2617 const OperandMatcher &Operand = Rule.getOperandMatcher(SymbolicName); in emitRenderOpcodes()
2618 unsigned OldInsnVarID = Rule.getInsnVarID(Operand.getInstructionMatcher()); in emitRenderOpcodes()
2647 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2648 const OperandMatcher &Operand = Rule.getPhysRegOperandMatcher(PhysReg); in emitRenderOpcodes()
2649 unsigned OldInsnVarID = Rule.getInsnVarID(Operand.getInstructionMatcher()); in emitRenderOpcodes()
2683 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2684 const OperandMatcher &Operand = Rule.getOperandMatcher(SymbolicName); in emitRenderOpcodes()
2685 unsigned OldInsnVarID = Rule.getInsnVarID(Operand.getInstructionMatcher()); in emitRenderOpcodes()
2720 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2721 InstructionMatcher &InsnMatcher = Rule.getInstructionMatcher(SymbolicName); in emitRenderOpcodes()
2722 unsigned OldInsnVarID = Rule.getInsnVarID(InsnMatcher); in emitRenderOpcodes()
2751 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2752 InstructionMatcher &InsnMatcher = Rule.getInstructionMatcher(SymbolicName); in emitRenderOpcodes()
2753 unsigned OldInsnVarID = Rule.getInsnVarID(InsnMatcher); in emitRenderOpcodes()
2785 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2786 const OperandMatcher &Operand = Rule.getOperandMatcher(SymbolicName); in emitRenderOpcodes()
2787 unsigned OldInsnVarID = Rule.getInsnVarID(Operand.getInstructionMatcher()); in emitRenderOpcodes()
2818 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2865 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2905 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2926 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2965 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2995 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2996 InstructionMatcher &InsnMatcher = Rule.getInstructionMatcher(SymbolicName); in emitRenderOpcodes()
2997 unsigned OldInsnVarID = Rule.getInsnVarID(InsnMatcher); in emitRenderOpcodes()
3026 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
3027 const OperandMatcher &OpdMatcher = Rule.getOperandMatcher(SymbolicName); in emitRenderOpcodes()
3052 RuleMatcher &Rule) const = 0;
3063 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3078 bool canMutate(RuleMatcher &Rule, const InstructionMatcher *Insn) const { in canMutate() argument
3087 const OperandMatcher &OM = Rule.getOperandMatcher(Copy->getSymbolicName()); in canMutate()
3105 void chooseInsnToMutate(RuleMatcher &Rule) { in chooseInsnToMutate() argument
3106 for (auto *MutateCandidate : Rule.mutatable_insns()) { in chooseInsnToMutate()
3107 if (canMutate(Rule, MutateCandidate)) { in chooseInsnToMutate()
3109 Rule.reserveInsnMatcherForMutation(MutateCandidate); in chooseInsnToMutate()
3123 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3125 assert(canMutate(Rule, Matched) && in emitActionOpcodes()
3128 unsigned RecycleInsnID = Rule.getInsnVarID(*Matched); in emitActionOpcodes()
3168 Renderer->emitRenderOpcodes(Table, Rule); in emitActionOpcodes()
3182 for (const auto &IDMatcherPair : Rule.defined_insn_vars()) in emitActionOpcodes()
3209 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3228 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3250 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3526 RuleMatcher &Rule) const { in emitPredicateOpcodes()
3527 const OperandMatcher &OtherOM = Rule.getOperandMatcher(MatchingName); in emitPredicateOpcodes()
3528 unsigned OtherInsnVarID = Rule.getInsnVarID(OtherOM.getInstructionMatcher()); in emitPredicateOpcodes()
3616 createAndImportSelDAGMatcher(RuleMatcher &Rule,
3621 Error importChildMatcher(RuleMatcher &Rule, InstructionMatcher &InsnMatcher,
3646 importExplicitUseRenderer(action_iterator InsertPt, RuleMatcher &Rule,
3978 RuleMatcher &Rule, InstructionMatcher &InsnMatcher, in createAndImportSelDAGMatcher() argument
4131 if (auto Error = importChildMatcher(Rule, InsnMatcher, PtrChild, true, in createAndImportSelDAGMatcher()
4135 if (auto Error = importChildMatcher(Rule, InsnMatcher, ValueChild, false, in createAndImportSelDAGMatcher()
4186 importChildMatcher(Rule, InsnMatcher, SrcChild, OperandIsAPointer, in createAndImportSelDAGMatcher()
4226 RuleMatcher &Rule, InstructionMatcher &InsnMatcher, in importChildMatcher() argument
4304 if (auto Error = Rule.defineComplexSubOperand( in importChildMatcher()
4326 Rule, InsnOperand.getInsnMatcher(), SrcChild, TempOpIdx); in importChildMatcher()
4443 action_iterator InsertPt, RuleMatcher &Rule, BuildMIAction &DstMIBuilder, in importExplicitUseRenderer() argument
4446 const auto &SubOperand = Rule.getComplexSubOperand(DstChild->getName()); in importExplicitUseRenderer()
4508 unsigned TempRegID = Rule.allocateTempRegID(); in importExplicitUseRenderer()
4509 InsertPt = Rule.insertAction<MakeTempRegisterAction>( in importExplicitUseRenderer()
4514 ++InsertPt, Rule, DstChild, TempRegID); in importExplicitUseRenderer()
4576 const OperandMatcher &OM = Rule.getOperandMatcher(DstChild->getName()); in importExplicitUseRenderer()
5578 for (Matcher *Rule : Rules) { in optimizeRules()
5580 if (CurrentGroup->addMatcher(*Rule)) in optimizeRules()
5587 if (!CurrentGroup->addMatcher(*Rule)) in optimizeRules()
5590 OptRules.push_back(Rule); in optimizeRules()
5604 for (Matcher &Rule : Rules) in buildMatchTable()
5605 InputRules.push_back(&Rule); in buildMatchTable()
5612 for (RuleMatcher &Rule : Rules) { in buildMatchTable()
5613 const StringRef Opcode = Rule.getOpcode(); in buildMatchTable()
5627 for (Matcher *Rule : InputRules) in buildMatchTable()
5628 Rule->optimize(); in buildMatchTable()
5634 for (Matcher *Rule : OptRules) in buildMatchTable()
5635 Rule->optimize(); in buildMatchTable()
5747 for (const auto &Rule : Rules) in run() local
5748 MaxTemporaries = std::max(MaxTemporaries, Rule.countRendererFns()); in run()
5852 for (auto &Rule : Rules) in run() local
5853 FeatureBitsets.push_back(Rule.getRequiredFeatures()); in run()
6130 for (const auto &Rule : Matchers) in finalize() local
6131 if (!Rule->hasFirstCondition()) in finalize()