Lines Matching defs:InstructionMatcher
53 class InstructionMatcher;
470 using MatchersTy = std::vector<std::unique_ptr<InstructionMatcher>>;
481 using DefinedInsnVariablesMap = std::map<InstructionMatcher *, unsigned>;
486 using MutatableInsnSet = SmallPtrSet<InstructionMatcher *, 4>;
558 InstructionMatcher &addInstructionMatcher(StringRef SymbolicName);
615 unsigned implicitlyDefineInsnVar(InstructionMatcher &Matcher);
617 unsigned getInsnVarID(InstructionMatcher &InsnMatcher) const;
639 void reserveInsnMatcherForMutation(InstructionMatcher *InsnMatcher) {
672 InstructionMatcher &getInstructionMatcher(StringRef SymbolicName) const;
696 InstructionMatcher &insnmatchers_front() const { return *Matchers.front(); }
1262 InstructionMatcher &Insn;
1277 OperandMatcher(InstructionMatcher &Insn, unsigned OpIdx,
1314 InstructionMatcher &getInstructionMatcher() const { return Insn; }
1471 /// InstructionMatcher, InstructionOpcodeMatcher, OperandMatcher, and a
1475 /// * ImmLeaf is a PatFrag whose root is an InstructionMatcher. This means that
1752 class InstructionMatcher final : public PredicateListMatcher<PredicateMatcher> {
1778 InstructionMatcher(RuleMatcher &Rule, StringRef SymbolicName,
1837 bool isHigherPriorityThan(InstructionMatcher &B);
1868 std::unique_ptr<InstructionMatcher> InsnMatcher;
1878 new InstructionMatcher(Rule, SymbolicName, AllowNumOpsCheck)),
1885 InstructionMatcher &getInsnMatcher() const { return *InsnMatcher; }
2342 InstructionMatcher *Matched;
2346 std::vector<const InstructionMatcher *> CopiedFlags;
2351 bool canMutate(RuleMatcher &Rule, const InstructionMatcher *Insn) const;
2366 void addCopiedMIFlags(const InstructionMatcher &IM) {