Lines Matching refs:Predicate

86 std::string getEnumNameForPredicate(const TreePredicateFn &Predicate) {  in getEnumNameForPredicate()  argument
87 if (Predicate.hasGISelPredicateCode()) in getEnumNameForPredicate()
88 return "GIPFP_MI_" + Predicate.getFnName(); in getEnumNameForPredicate()
89 return "GIPFP_" + Predicate.getImmTypeIdentifier().str() + "_" + in getEnumNameForPredicate()
90 Predicate.getFnName(); in getEnumNameForPredicate()
94 std::string getMatchOpcodeForPredicate(const TreePredicateFn &Predicate) { in getMatchOpcodeForPredicate() argument
95 return "GIM_Check" + Predicate.getImmTypeIdentifier().str() + "ImmPredicate"; in getMatchOpcodeForPredicate()
289 const TreePredicateFn &Predicate = Call.Fn; in isTrivialOperatorNode() local
291 if (Predicate.isAlwaysTrue()) in isTrivialOperatorNode()
294 if (Predicate.isImmediatePattern()) in isTrivialOperatorNode()
297 if (Predicate.isNonExtLoad() || Predicate.isAnyExtLoad() || in isTrivialOperatorNode()
298 Predicate.isSignExtLoad() || Predicate.isZeroExtLoad()) in isTrivialOperatorNode()
301 if (Predicate.isNonTruncStore()) in isTrivialOperatorNode()
304 if (Predicate.isLoad() && Predicate.getMemoryVT()) in isTrivialOperatorNode()
307 if (Predicate.isLoad() || Predicate.isStore()) { in isTrivialOperatorNode()
308 if (Predicate.isUnindexed()) in isTrivialOperatorNode()
312 if (Predicate.isAtomic() && Predicate.getMemoryVT()) in isTrivialOperatorNode()
315 if (Predicate.isAtomic() && in isTrivialOperatorNode()
316 (Predicate.isAtomicOrderingMonotonic() || in isTrivialOperatorNode()
317 Predicate.isAtomicOrderingAcquire() || in isTrivialOperatorNode()
318 Predicate.isAtomicOrderingRelease() || in isTrivialOperatorNode()
319 Predicate.isAtomicOrderingAcquireRelease() || in isTrivialOperatorNode()
320 Predicate.isAtomicOrderingSequentiallyConsistent() || in isTrivialOperatorNode()
321 Predicate.isAtomicOrderingAcquireOrStronger() || in isTrivialOperatorNode()
322 Predicate.isAtomicOrderingWeakerThanAcquire() || in isTrivialOperatorNode()
323 Predicate.isAtomicOrderingReleaseOrStronger() || in isTrivialOperatorNode()
324 Predicate.isAtomicOrderingWeakerThanRelease())) in isTrivialOperatorNode()
327 if (Predicate.hasGISelPredicateCode()) in isTrivialOperatorNode()
334 Predicate.getOrigPatFragRecord()->getRecord()->getName()) in isTrivialOperatorNode()
713 bool candidateConditionMatches(const PredicateMatcher &Predicate) const;
761 static bool isSupportedPredicateType(const PredicateMatcher &Predicate);
763 bool candidateConditionMatches(const PredicateMatcher &Predicate) const;
978 void prependPredicate(std::unique_ptr<PredicateTy> &&Predicate) { in prependPredicate() argument
979 Predicates.push_front(std::move(Predicate)); in prependPredicate()
1001 for (const auto &Predicate : predicates()) in emitPredicateListOpcodes() local
1002 Predicate->emitPredicateOpcodes(Table, std::forward<Args>(args)...); in emitPredicateListOpcodes()
1461 for (auto &&Predicate : zip(predicates(), B.predicates())) { in isHigherPriorityThan()
1462 if (std::get<0>(Predicate)->isHigherPriorityThan(*std::get<1>(Predicate))) in isHigherPriorityThan()
1464 if (std::get<1>(Predicate)->isHigherPriorityThan(*std::get<0>(Predicate))) in isHigherPriorityThan()
1477 const std::unique_ptr<OperandPredicateMatcher> &Predicate) { in countRendererFns() argument
1478 return A + Predicate->countRendererFns(); in countRendererFns()
1487 for (const auto &Predicate : predicates()) in isSameAsAnotherOperand() local
1488 if (isa<SameOperandMatcher>(Predicate)) in isSameAsAnotherOperand()
1677 TreePredicateFn Predicate; member in __anon7e76e5f80111::InstructionImmPredicateMatcher
1681 const TreePredicateFn &Predicate) in InstructionImmPredicateMatcher() argument
1683 Predicate(Predicate) {} in InstructionImmPredicateMatcher()
1687 Predicate.getOrigPatFragRecord() == in isIdentical()
1689 ->Predicate.getOrigPatFragRecord(); in isIdentical()
1698 Table << MatchTable::Opcode(getMatchOpcodeForPredicate(Predicate)) in emitPredicateOpcodes()
1701 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
1832 TreePredicateFn Predicate; member in __anon7e76e5f80111::GenericInstructionPredicateMatcher
1836 TreePredicateFn Predicate) in GenericInstructionPredicateMatcher() argument
1838 Predicate(Predicate) {} in GenericInstructionPredicateMatcher()
1845 Predicate == in isIdentical()
1847 .Predicate; in isIdentical()
1854 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
1986 const std::unique_ptr<PredicateMatcher> &Predicate) { in countRendererFns() argument
1987 return A + Predicate->countRendererFns(); in countRendererFns()
3001 Error importRulePredicates(RuleMatcher &M, ArrayRef<Predicate> Predicates);
3050 void declareSubtargetFeature(Record *Predicate);
3124 const TreePredicateFn &Predicate = Call.Fn; in getEquivNode() local
3125 if (!Equiv.isValueUnset("IfSignExtend") && Predicate.isLoad() && in getEquivNode()
3126 Predicate.isSignExtLoad()) in getEquivNode()
3128 if (!Equiv.isValueUnset("IfZeroExtend") && Predicate.isLoad() && in getEquivNode()
3129 Predicate.isZeroExtLoad()) in getEquivNode()
3143 ArrayRef<Predicate> Predicates) { in importRulePredicates()
3144 for (const Predicate &P : Predicates) { in importRulePredicates()
3194 const TreePredicateFn &Predicate = Call.Fn; in createAndImportSelDAGMatcher() local
3195 if (Predicate.isAlwaysTrue()) in createAndImportSelDAGMatcher()
3198 if (Predicate.isImmediatePattern()) { in createAndImportSelDAGMatcher()
3199 InsnMatcher.addPredicate<InstructionImmPredicateMatcher>(Predicate); in createAndImportSelDAGMatcher()
3204 if (Predicate.isLoad() && Predicate.isNonExtLoad()) { in createAndImportSelDAGMatcher()
3209 if (Predicate.isLoad() && Predicate.isAnyExtLoad()) { in createAndImportSelDAGMatcher()
3217 Predicate.isSignExtLoad()) in createAndImportSelDAGMatcher()
3222 Predicate.isZeroExtLoad()) in createAndImportSelDAGMatcher()
3226 if (Predicate.isNonTruncStore()) in createAndImportSelDAGMatcher()
3229 if (Predicate.isLoad() || Predicate.isStore() || Predicate.isAtomic()) { in createAndImportSelDAGMatcher()
3230 if (Predicate.getMemoryVT() != nullptr) { in createAndImportSelDAGMatcher()
3232 MVTToLLT(getValueType(Predicate.getMemoryVT())); in createAndImportSelDAGMatcher()
3248 if (Predicate.isLoad() || Predicate.isStore()) { in createAndImportSelDAGMatcher()
3250 if (Predicate.isUnindexed()) in createAndImportSelDAGMatcher()
3254 if (Predicate.isAtomic()) { in createAndImportSelDAGMatcher()
3255 if (Predicate.isAtomicOrderingMonotonic()) { in createAndImportSelDAGMatcher()
3260 if (Predicate.isAtomicOrderingAcquire()) { in createAndImportSelDAGMatcher()
3264 if (Predicate.isAtomicOrderingRelease()) { in createAndImportSelDAGMatcher()
3268 if (Predicate.isAtomicOrderingAcquireRelease()) { in createAndImportSelDAGMatcher()
3273 if (Predicate.isAtomicOrderingSequentiallyConsistent()) { in createAndImportSelDAGMatcher()
3279 if (Predicate.isAtomicOrderingAcquireOrStronger()) { in createAndImportSelDAGMatcher()
3284 if (Predicate.isAtomicOrderingWeakerThanAcquire()) { in createAndImportSelDAGMatcher()
3290 if (Predicate.isAtomicOrderingReleaseOrStronger()) { in createAndImportSelDAGMatcher()
3295 if (Predicate.isAtomicOrderingWeakerThanRelease()) { in createAndImportSelDAGMatcher()
3302 if (Predicate.hasGISelPredicateCode()) { in createAndImportSelDAGMatcher()
3303 InsnMatcher.addPredicate<GenericInstructionPredicateMatcher>(Predicate); in createAndImportSelDAGMatcher()
4561 void GlobalISelEmitter::declareSubtargetFeature(Record *Predicate) { in declareSubtargetFeature() argument
4562 if (SubtargetFeatures.count(Predicate) == 0) in declareSubtargetFeature()
4564 Predicate, SubtargetFeatureInfo(Predicate, SubtargetFeatures.size())); in declareSubtargetFeature()
4644 const PredicateMatcher &Predicate) const { in candidateConditionMatches()
4650 if (Predicate.getInsnVarID() != 0) in candidateConditionMatches()
4661 return Predicate.isIdentical(RepresentativeCondition); in candidateConditionMatches()
4668 const PredicateMatcher &Predicate = Candidate.getFirstCondition(); in addMatcher() local
4669 if (!candidateConditionMatches(Predicate)) in addMatcher()
4724 const PredicateMatcher &Predicate) const { in candidateConditionMatches()
4730 if (Predicate.getInsnVarID() != 0) in candidateConditionMatches()
4734 if (!isSupportedPredicateType(Predicate)) in candidateConditionMatches()
4738 if (!Predicate.hasValue()) in candidateConditionMatches()
4749 if (!Predicate.isIdenticalDownToValue(RepresentativeCondition)) in candidateConditionMatches()
4752 const auto Value = Predicate.getValue(); in candidateConditionMatches()
4761 const PredicateMatcher &Predicate = Candidate.getFirstCondition(); in addMatcher() local
4762 if (!candidateConditionMatches(Predicate)) in addMatcher()
4764 const auto Value = Predicate.getValue(); in addMatcher()