Lines Matching refs:Predicate

85 std::string getEnumNameForPredicate(const TreePredicateFn &Predicate) {  in getEnumNameForPredicate()  argument
86 if (Predicate.hasGISelPredicateCode()) in getEnumNameForPredicate()
87 return "GIPFP_MI_" + Predicate.getFnName(); in getEnumNameForPredicate()
88 return "GIPFP_" + Predicate.getImmTypeIdentifier().str() + "_" + in getEnumNameForPredicate()
89 Predicate.getFnName(); in getEnumNameForPredicate()
93 std::string getMatchOpcodeForImmPredicate(const TreePredicateFn &Predicate) { in getMatchOpcodeForImmPredicate() argument
94 return "GIM_Check" + Predicate.getImmTypeIdentifier().str() + "ImmPredicate"; in getMatchOpcodeForImmPredicate()
326 const TreePredicateFn &Predicate = Call.Fn; in isTrivialOperatorNode() local
328 if (Predicate.isAlwaysTrue()) in isTrivialOperatorNode()
331 if (Predicate.isImmediatePattern()) in isTrivialOperatorNode()
334 if (Predicate.isNonExtLoad() || Predicate.isAnyExtLoad() || in isTrivialOperatorNode()
335 Predicate.isSignExtLoad() || Predicate.isZeroExtLoad()) in isTrivialOperatorNode()
338 if (Predicate.isNonTruncStore() || Predicate.isTruncStore()) in isTrivialOperatorNode()
341 if (Predicate.isLoad() && Predicate.getMemoryVT()) in isTrivialOperatorNode()
344 if (Predicate.isLoad() || Predicate.isStore()) { in isTrivialOperatorNode()
345 if (Predicate.isUnindexed()) in isTrivialOperatorNode()
349 if (Predicate.isLoad() || Predicate.isStore() || Predicate.isAtomic()) { in isTrivialOperatorNode()
350 const ListInit *AddrSpaces = Predicate.getAddressSpaces(); in isTrivialOperatorNode()
354 if (Predicate.getMinAlignment() > 0) in isTrivialOperatorNode()
358 if (Predicate.isAtomic() && Predicate.getMemoryVT()) in isTrivialOperatorNode()
361 if (Predicate.isAtomic() && in isTrivialOperatorNode()
362 (Predicate.isAtomicOrderingMonotonic() || in isTrivialOperatorNode()
363 Predicate.isAtomicOrderingAcquire() || in isTrivialOperatorNode()
364 Predicate.isAtomicOrderingRelease() || in isTrivialOperatorNode()
365 Predicate.isAtomicOrderingAcquireRelease() || in isTrivialOperatorNode()
366 Predicate.isAtomicOrderingSequentiallyConsistent() || in isTrivialOperatorNode()
367 Predicate.isAtomicOrderingAcquireOrStronger() || in isTrivialOperatorNode()
368 Predicate.isAtomicOrderingWeakerThanAcquire() || in isTrivialOperatorNode()
369 Predicate.isAtomicOrderingReleaseOrStronger() || in isTrivialOperatorNode()
370 Predicate.isAtomicOrderingWeakerThanRelease())) in isTrivialOperatorNode()
373 if (Predicate.hasGISelPredicateCode()) in isTrivialOperatorNode()
380 Predicate.getOrigPatFragRecord()->getRecord()->getName()) in isTrivialOperatorNode()
761 bool candidateConditionMatches(const PredicateMatcher &Predicate) const;
809 static bool isSupportedPredicateType(const PredicateMatcher &Predicate);
811 bool candidateConditionMatches(const PredicateMatcher &Predicate) const;
1052 void prependPredicate(std::unique_ptr<PredicateTy> &&Predicate) { in prependPredicate() argument
1053 Predicates.push_front(std::move(Predicate)); in prependPredicate()
1075 for (const auto &Predicate : predicates()) in emitPredicateListOpcodes() local
1076 Predicate->emitPredicateOpcodes(Table, std::forward<Args>(args)...); in emitPredicateListOpcodes()
1095 for (const auto &Predicate : predicates()) { in emitFilteredPredicateListOpcodes() local
1096 if (ShouldEmitPredicate(*Predicate)) in emitFilteredPredicateListOpcodes()
1097 Predicate->emitPredicateOpcodes(Table, std::forward<Args>(args)...); in emitFilteredPredicateListOpcodes()
1582 TreePredicateFn Predicate; member in __anon612774070111::OperandImmPredicateMatcher
1586 const TreePredicateFn &Predicate) in OperandImmPredicateMatcher() argument
1588 Predicate(Predicate) {} in OperandImmPredicateMatcher()
1592 Predicate.getOrigPatFragRecord() == in isIdentical()
1594 ->Predicate.getOrigPatFragRecord(); in isIdentical()
1607 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
1690 for (auto &&Predicate : zip(predicates(), B.predicates())) { in isHigherPriorityThan()
1691 if (std::get<0>(Predicate)->isHigherPriorityThan(*std::get<1>(Predicate))) in isHigherPriorityThan()
1693 if (std::get<1>(Predicate)->isHigherPriorityThan(*std::get<0>(Predicate))) in isHigherPriorityThan()
1706 const std::unique_ptr<OperandPredicateMatcher> &Predicate) { in countRendererFns() argument
1707 return A + Predicate->countRendererFns(); in countRendererFns()
1716 for (const auto &Predicate : predicates()) in isSameAsAnotherOperand() local
1717 if (isa<SameOperandMatcher>(Predicate)) in isSameAsAnotherOperand()
1953 TreePredicateFn Predicate; member in __anon612774070111::InstructionImmPredicateMatcher
1957 const TreePredicateFn &Predicate) in InstructionImmPredicateMatcher() argument
1959 Predicate(Predicate) {} in InstructionImmPredicateMatcher()
1963 Predicate.getOrigPatFragRecord() == in isIdentical()
1965 ->Predicate.getOrigPatFragRecord(); in isIdentical()
1974 Table << MatchTable::Opcode(getMatchOpcodeForImmPredicate(Predicate)) in emitPredicateOpcodes()
1977 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
2214 TreePredicateFn Predicate; member in __anon612774070111::GenericInstructionPredicateMatcher
2218 TreePredicateFn Predicate) in GenericInstructionPredicateMatcher() argument
2220 Predicate(Predicate) {} in GenericInstructionPredicateMatcher()
2227 Predicate == in isIdentical()
2229 .Predicate; in isIdentical()
2236 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
2401 const std::unique_ptr<PredicateMatcher> &Predicate) { in countRendererFns() argument
2402 return A + Predicate->countRendererFns(); in countRendererFns()
3642 void declareSubtargetFeature(Record *Predicate);
3675 getMemSizeBitsFromPredicate(const TreePredicateFn &Predicate);
3680 const TreePredicateFn &Predicate,
3759 const TreePredicateFn &Predicate = Call.Fn; in getEquivNode() local
3760 if (!Equiv.isValueUnset("IfSignExtend") && Predicate.isLoad() && in getEquivNode()
3761 Predicate.isSignExtLoad()) in getEquivNode()
3763 if (!Equiv.isValueUnset("IfZeroExtend") && Predicate.isLoad() && in getEquivNode()
3764 Predicate.isZeroExtLoad()) in getEquivNode()
3789 Optional<unsigned> GlobalISelEmitter::getMemSizeBitsFromPredicate(const TreePredicateFn &Predicate)… in getMemSizeBitsFromPredicate() argument
3791 MVTToLLT(getValueType(Predicate.getMemoryVT())); in getMemSizeBitsFromPredicate()
3802 const Record *SrcGIEquivOrNull, const TreePredicateFn &Predicate, in addBuiltinPredicates() argument
3804 if (Predicate.isLoad() || Predicate.isStore() || Predicate.isAtomic()) { in addBuiltinPredicates()
3805 if (const ListInit *AddrSpaces = Predicate.getAddressSpaces()) { in addBuiltinPredicates()
3821 int64_t MinAlign = Predicate.getMinAlignment(); in addBuiltinPredicates()
3827 if (Predicate.isLoad() && Predicate.isNonExtLoad()) { in addBuiltinPredicates()
3832 if (Predicate.isLoad() && Predicate.isAnyExtLoad()) { in addBuiltinPredicates()
3838 if (Predicate.isStore()) { in addBuiltinPredicates()
3839 if (Predicate.isTruncStore()) { in addBuiltinPredicates()
3840 if (Predicate.getMemoryVT() != nullptr) { in addBuiltinPredicates()
3842 auto MemSizeInBits = getMemSizeBitsFromPredicate(Predicate); in addBuiltinPredicates()
3854 if (Predicate.isNonTruncStore()) { in addBuiltinPredicates()
3864 Predicate.isSignExtLoad()) in addBuiltinPredicates()
3869 Predicate.isZeroExtLoad()) in addBuiltinPredicates()
3873 if (Predicate.isNonTruncStore()) in addBuiltinPredicates()
3876 if (Predicate.isLoad() || Predicate.isStore() || Predicate.isAtomic()) { in addBuiltinPredicates()
3877 if (Predicate.getMemoryVT() != nullptr) { in addBuiltinPredicates()
3878 auto MemSizeInBits = getMemSizeBitsFromPredicate(Predicate); in addBuiltinPredicates()
3888 if (Predicate.isLoad() || Predicate.isStore()) { in addBuiltinPredicates()
3890 if (Predicate.isUnindexed()) in addBuiltinPredicates()
3894 if (Predicate.isAtomic()) { in addBuiltinPredicates()
3895 if (Predicate.isAtomicOrderingMonotonic()) { in addBuiltinPredicates()
3899 if (Predicate.isAtomicOrderingAcquire()) { in addBuiltinPredicates()
3903 if (Predicate.isAtomicOrderingRelease()) { in addBuiltinPredicates()
3907 if (Predicate.isAtomicOrderingAcquireRelease()) { in addBuiltinPredicates()
3912 if (Predicate.isAtomicOrderingSequentiallyConsistent()) { in addBuiltinPredicates()
3919 if (Predicate.isAtomicOrderingAcquireOrStronger()) { in addBuiltinPredicates()
3924 if (Predicate.isAtomicOrderingWeakerThanAcquire()) { in addBuiltinPredicates()
3930 if (Predicate.isAtomicOrderingReleaseOrStronger()) { in addBuiltinPredicates()
3935 if (Predicate.isAtomicOrderingWeakerThanRelease()) { in addBuiltinPredicates()
3984 const TreePredicateFn &Predicate = Call.Fn; in createAndImportSelDAGMatcher() local
3986 if (Predicate.isAlwaysTrue()) in createAndImportSelDAGMatcher()
3989 if (Predicate.isImmediatePattern()) { in createAndImportSelDAGMatcher()
3990 InsnMatcher.addPredicate<InstructionImmPredicateMatcher>(Predicate); in createAndImportSelDAGMatcher()
3995 SrcGIEquivOrNull, Predicate, InsnMatcher, HasAddedBuiltinMatcher); in createAndImportSelDAGMatcher()
3999 if (Predicate.hasGISelPredicateCode()) { in createAndImportSelDAGMatcher()
4000 if (Predicate.usesOperands()) { in createAndImportSelDAGMatcher()
4004 TreePattern *TP = Predicate.getOrigPatFragRecord(); in createAndImportSelDAGMatcher()
4009 InsnMatcher.addPredicate<GenericInstructionPredicateMatcher>(Predicate); in createAndImportSelDAGMatcher()
4223 const TreePredicateFn &Predicate = Call.Fn; in importChildMatcher() local
4226 if (Predicate.isImmediatePattern()) { in importChildMatcher()
4227 OM.addPredicate<OperandImmPredicateMatcher>(Predicate); in importChildMatcher()
5947 void GlobalISelEmitter::declareSubtargetFeature(Record *Predicate) { in declareSubtargetFeature() argument
5948 if (SubtargetFeatures.count(Predicate) == 0) in declareSubtargetFeature()
5950 Predicate, SubtargetFeatureInfo(Predicate, SubtargetFeatures.size())); in declareSubtargetFeature()
6030 const PredicateMatcher &Predicate) const { in candidateConditionMatches()
6036 if (Predicate.getInsnVarID() != 0) in candidateConditionMatches()
6047 return Predicate.isIdentical(RepresentativeCondition); in candidateConditionMatches()
6054 const PredicateMatcher &Predicate = Candidate.getFirstCondition(); in addMatcher() local
6055 if (!candidateConditionMatches(Predicate)) in addMatcher()
6110 const PredicateMatcher &Predicate) const { in candidateConditionMatches()
6116 if (Predicate.getInsnVarID() != 0) in candidateConditionMatches()
6120 if (!isSupportedPredicateType(Predicate)) in candidateConditionMatches()
6124 if (!Predicate.hasValue()) in candidateConditionMatches()
6135 if (!Predicate.isIdenticalDownToValue(RepresentativeCondition)) in candidateConditionMatches()
6138 const auto Value = Predicate.getValue(); in candidateConditionMatches()
6147 const PredicateMatcher &Predicate = Candidate.getFirstCondition(); in addMatcher() local
6148 if (!candidateConditionMatches(Predicate)) in addMatcher()
6150 const auto Value = Predicate.getValue(); in addMatcher()