Lines Matching refs:PredicateMatcher
670 class PredicateMatcher;
680 virtual const PredicateMatcher &getFirstCondition() const = 0;
681 virtual std::unique_ptr<PredicateMatcher> popFirstCondition() = 0;
695 SmallVector<std::unique_ptr<PredicateMatcher>, 1> Conditions;
744 std::unique_ptr<PredicateMatcher> popFirstCondition() override { in popFirstCondition()
747 std::unique_ptr<PredicateMatcher> P = std::move(Conditions.front()); in popFirstCondition()
751 const PredicateMatcher &getFirstCondition() const override { in getFirstCondition()
761 bool candidateConditionMatches(const PredicateMatcher &Predicate) const;
774 std::unique_ptr<PredicateMatcher> Condition = nullptr;
796 std::unique_ptr<PredicateMatcher> popFirstCondition() override { in popFirstCondition()
802 const PredicateMatcher &getFirstCondition() const override { in getFirstCondition()
809 static bool isSupportedPredicateType(const PredicateMatcher &Predicate);
811 bool candidateConditionMatches(const PredicateMatcher &Predicate) const;
814 static void emitPredicateSpecificOpcodes(const PredicateMatcher &P,
865 std::vector<std::unique_ptr<PredicateMatcher>> EpilogueMatchers;
992 std::unique_ptr<PredicateMatcher> popFirstCondition() override;
993 const PredicateMatcher &getFirstCondition() const override;
1102 class PredicateMatcher { class
1146 PredicateMatcher(PredicateKind Kind, unsigned InsnVarID, unsigned OpIdx = ~0) in PredicateMatcher() function in __anon612774070111::PredicateMatcher
1152 virtual ~PredicateMatcher() = default;
1166 virtual bool isIdentical(const PredicateMatcher &B) const { in isIdentical()
1171 virtual bool isIdenticalDownToValue(const PredicateMatcher &B) const { in isIdenticalDownToValue()
1172 return hasValue() && PredicateMatcher::isIdentical(B); in isIdenticalDownToValue()
1192 class OperandPredicateMatcher : public PredicateMatcher {
1196 : PredicateMatcher(Kind, InsnVarID, OpIdx) {} in OperandPredicateMatcher()
1221 static bool classof(const PredicateMatcher *P) { in classof()
1228 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1255 static bool classof(const PredicateMatcher *P) { in classof()
1258 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1307 static bool classof(const PredicateMatcher *P) { in classof()
1311 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1340 static bool classof(const PredicateMatcher *P) { in classof()
1344 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1369 bool isIdentical(const PredicateMatcher &B) const override { return false; } in isIdentical()
1377 static bool classof(const PredicateMatcher *P) { in classof()
1407 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1412 static bool classof(const PredicateMatcher *P) { in classof()
1433 static bool classof(const PredicateMatcher *P) { in classof()
1450 static bool classof(const PredicateMatcher *P) { in classof()
1472 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1477 static bool classof(const PredicateMatcher *P) { in classof()
1501 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1506 static bool classof(const PredicateMatcher *P) { in classof()
1529 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1534 static bool classof(const PredicateMatcher *P) { in classof()
1559 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1564 static bool classof(const PredicateMatcher *P) { in classof()
1590 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1597 static bool classof(const PredicateMatcher *P) { in classof()
1756 class InstructionPredicateMatcher : public PredicateMatcher {
1759 : PredicateMatcher(Kind, InsnVarID) {} in InstructionPredicateMatcher()
1773 PredicateListMatcher<PredicateMatcher>::getNoPredicateComment() const { in getNoPredicateComment()
1814 static bool classof(const PredicateMatcher *P) { in classof()
1818 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1907 static bool classof(const PredicateMatcher *P) { in classof()
1911 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1961 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
1968 static bool classof(const PredicateMatcher *P) { in classof()
2002 static bool classof(const PredicateMatcher *P) { in classof()
2006 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
2040 static bool classof(const PredicateMatcher *P) { in classof()
2043 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
2070 static bool classof(const PredicateMatcher *P) { in classof()
2073 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
2108 static bool classof(const PredicateMatcher *P) { in classof()
2112 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
2151 static bool classof(const PredicateMatcher *P) { in classof()
2154 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
2190 static bool classof(const PredicateMatcher *P) { in classof()
2194 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
2225 bool isIdentical(const PredicateMatcher &B) const override { in isIdentical()
2247 class InstructionMatcher final : public PredicateListMatcher<PredicateMatcher> {
2350 [](const PredicateMatcher &P) { in emitPredicateOpcodes()
2361 [](const PredicateMatcher &P) { in emitPredicateOpcodes()
2401 const std::unique_ptr<PredicateMatcher> &Predicate) { in countRendererFns()
2463 static bool classof(const PredicateMatcher *P) { in classof()
2501 SmallVector<std::unique_ptr<PredicateMatcher>, 8> Stash; in optimize()
5970 llvm::sort(EpilogueMatchers, [](const std::unique_ptr<PredicateMatcher> &L, in optimize()
5971 const std::unique_ptr<PredicateMatcher> &R) { in optimize()
5990 const PredicateMatcher &RuleMatcher::getFirstCondition() const { in getFirstCondition()
6008 std::unique_ptr<PredicateMatcher> RuleMatcher::popFirstCondition() { in popFirstCondition()
6020 std::unique_ptr<PredicateMatcher> Result = std::move(OP); in popFirstCondition()
6030 const PredicateMatcher &Predicate) const { in candidateConditionMatches()
6054 const PredicateMatcher &Predicate = Candidate.getFirstCondition(); in addMatcher()
6105 bool SwitchMatcher::isSupportedPredicateType(const PredicateMatcher &P) { in isSupportedPredicateType()
6110 const PredicateMatcher &Predicate) const { in candidateConditionMatches()
6147 const PredicateMatcher &Predicate = Candidate.getFirstCondition(); in addMatcher()
6172 void SwitchMatcher::emitPredicateSpecificOpcodes(const PredicateMatcher &P, in emitPredicateSpecificOpcodes()