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.hasNoUse()) in isTrivialOperatorNode()
337 if (Predicate.isNonExtLoad() || Predicate.isAnyExtLoad() || in isTrivialOperatorNode()
338 Predicate.isSignExtLoad() || Predicate.isZeroExtLoad()) in isTrivialOperatorNode()
341 if (Predicate.isNonTruncStore() || Predicate.isTruncStore()) in isTrivialOperatorNode()
344 if (Predicate.isLoad() && Predicate.getMemoryVT()) in isTrivialOperatorNode()
347 if (Predicate.isLoad() || Predicate.isStore()) { in isTrivialOperatorNode()
348 if (Predicate.isUnindexed()) in isTrivialOperatorNode()
352 if (Predicate.isLoad() || Predicate.isStore() || Predicate.isAtomic()) { in isTrivialOperatorNode()
353 const ListInit *AddrSpaces = Predicate.getAddressSpaces(); in isTrivialOperatorNode()
357 if (Predicate.getMinAlignment() > 0) in isTrivialOperatorNode()
361 if (Predicate.isAtomic() && Predicate.getMemoryVT()) in isTrivialOperatorNode()
364 if (Predicate.isAtomic() && in isTrivialOperatorNode()
365 (Predicate.isAtomicOrderingMonotonic() || in isTrivialOperatorNode()
366 Predicate.isAtomicOrderingAcquire() || in isTrivialOperatorNode()
367 Predicate.isAtomicOrderingRelease() || in isTrivialOperatorNode()
368 Predicate.isAtomicOrderingAcquireRelease() || in isTrivialOperatorNode()
369 Predicate.isAtomicOrderingSequentiallyConsistent() || in isTrivialOperatorNode()
370 Predicate.isAtomicOrderingAcquireOrStronger() || in isTrivialOperatorNode()
371 Predicate.isAtomicOrderingWeakerThanAcquire() || in isTrivialOperatorNode()
372 Predicate.isAtomicOrderingReleaseOrStronger() || in isTrivialOperatorNode()
373 Predicate.isAtomicOrderingWeakerThanRelease())) in isTrivialOperatorNode()
376 if (Predicate.hasGISelPredicateCode()) in isTrivialOperatorNode()
383 Predicate.getOrigPatFragRecord()->getRecord()->getName()) in isTrivialOperatorNode()
763 bool candidateConditionMatches(const PredicateMatcher &Predicate) const;
811 static bool isSupportedPredicateType(const PredicateMatcher &Predicate);
813 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()
1586 TreePredicateFn Predicate; member in __anoncee47b830111::OperandImmPredicateMatcher
1590 const TreePredicateFn &Predicate) in OperandImmPredicateMatcher() argument
1592 Predicate(Predicate) {} in OperandImmPredicateMatcher()
1596 Predicate.getOrigPatFragRecord() == in isIdentical()
1598 ->Predicate.getOrigPatFragRecord(); in isIdentical()
1611 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
1694 for (auto &&Predicate : zip(predicates(), B.predicates())) { in isHigherPriorityThan()
1695 if (std::get<0>(Predicate)->isHigherPriorityThan(*std::get<1>(Predicate))) in isHigherPriorityThan()
1697 if (std::get<1>(Predicate)->isHigherPriorityThan(*std::get<0>(Predicate))) in isHigherPriorityThan()
1710 const std::unique_ptr<OperandPredicateMatcher> &Predicate) { in countRendererFns() argument
1711 return A + Predicate->countRendererFns(); in countRendererFns()
1720 for (const auto &Predicate : predicates()) in isSameAsAnotherOperand() local
1721 if (isa<SameOperandMatcher>(Predicate)) in isSameAsAnotherOperand()
1957 TreePredicateFn Predicate; member in __anoncee47b830111::InstructionImmPredicateMatcher
1961 const TreePredicateFn &Predicate) in InstructionImmPredicateMatcher() argument
1963 Predicate(Predicate) {} in InstructionImmPredicateMatcher()
1967 Predicate.getOrigPatFragRecord() == in isIdentical()
1969 ->Predicate.getOrigPatFragRecord(); in isIdentical()
1978 Table << MatchTable::Opcode(getMatchOpcodeForImmPredicate(Predicate)) in emitPredicateOpcodes()
1981 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
2218 TreePredicateFn Predicate; member in __anoncee47b830111::GenericInstructionPredicateMatcher
2222 TreePredicateFn Predicate) in GenericInstructionPredicateMatcher() argument
2224 Predicate(Predicate) {} in GenericInstructionPredicateMatcher()
2231 Predicate == in isIdentical()
2233 .Predicate; in isIdentical()
2240 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
2428 const std::unique_ptr<PredicateMatcher> &Predicate) { in countRendererFns() argument
2429 return A + Predicate->countRendererFns(); in countRendererFns()
3670 void declareSubtargetFeature(Record *Predicate);
3703 getMemSizeBitsFromPredicate(const TreePredicateFn &Predicate);
3708 const TreePredicateFn &Predicate,
3787 const TreePredicateFn &Predicate = Call.Fn; in getEquivNode() local
3789 (Predicate.isLoad() || Predicate.isAtomic()) && in getEquivNode()
3790 Predicate.isSignExtLoad()) in getEquivNode()
3793 (Predicate.isLoad() || Predicate.isAtomic()) && in getEquivNode()
3794 Predicate.isZeroExtLoad()) in getEquivNode()
3819 Optional<unsigned> GlobalISelEmitter::getMemSizeBitsFromPredicate(const TreePredicateFn &Predicate)… in getMemSizeBitsFromPredicate() argument
3821 MVTToLLT(getValueType(Predicate.getMemoryVT())); in getMemSizeBitsFromPredicate()
3832 const Record *SrcGIEquivOrNull, const TreePredicateFn &Predicate, in addBuiltinPredicates() argument
3834 if (Predicate.isLoad() || Predicate.isStore() || Predicate.isAtomic()) { in addBuiltinPredicates()
3835 if (const ListInit *AddrSpaces = Predicate.getAddressSpaces()) { in addBuiltinPredicates()
3852 int64_t MinAlign = Predicate.getMinAlignment(); in addBuiltinPredicates()
3860 if (Predicate.isLoad() && Predicate.isNonExtLoad()) { in addBuiltinPredicates()
3865 if (Predicate.isLoad() && Predicate.isAnyExtLoad()) { in addBuiltinPredicates()
3871 if (Predicate.isStore()) { in addBuiltinPredicates()
3872 if (Predicate.isTruncStore()) { in addBuiltinPredicates()
3873 if (Predicate.getMemoryVT() != nullptr) { in addBuiltinPredicates()
3875 auto MemSizeInBits = getMemSizeBitsFromPredicate(Predicate); in addBuiltinPredicates()
3887 if (Predicate.isNonTruncStore()) { in addBuiltinPredicates()
3897 Predicate.isSignExtLoad()) in addBuiltinPredicates()
3902 Predicate.isZeroExtLoad()) in addBuiltinPredicates()
3906 if (Predicate.isNonTruncStore()) in addBuiltinPredicates()
3909 if (Predicate.isLoad() || Predicate.isStore() || Predicate.isAtomic()) { in addBuiltinPredicates()
3910 if (Predicate.getMemoryVT() != nullptr) { in addBuiltinPredicates()
3911 auto MemSizeInBits = getMemSizeBitsFromPredicate(Predicate); in addBuiltinPredicates()
3921 if (Predicate.isLoad() || Predicate.isStore()) { in addBuiltinPredicates()
3923 if (Predicate.isUnindexed()) in addBuiltinPredicates()
3927 if (Predicate.isAtomic()) { in addBuiltinPredicates()
3928 if (Predicate.isAtomicOrderingMonotonic()) { in addBuiltinPredicates()
3932 if (Predicate.isAtomicOrderingAcquire()) { in addBuiltinPredicates()
3936 if (Predicate.isAtomicOrderingRelease()) { in addBuiltinPredicates()
3940 if (Predicate.isAtomicOrderingAcquireRelease()) { in addBuiltinPredicates()
3945 if (Predicate.isAtomicOrderingSequentiallyConsistent()) { in addBuiltinPredicates()
3952 if (Predicate.isAtomicOrderingAcquireOrStronger()) { in addBuiltinPredicates()
3957 if (Predicate.isAtomicOrderingWeakerThanAcquire()) { in addBuiltinPredicates()
3963 if (Predicate.isAtomicOrderingReleaseOrStronger()) { in addBuiltinPredicates()
3968 if (Predicate.isAtomicOrderingWeakerThanRelease()) { in addBuiltinPredicates()
4017 const TreePredicateFn &Predicate = Call.Fn; in createAndImportSelDAGMatcher() local
4019 if (Predicate.isAlwaysTrue()) in createAndImportSelDAGMatcher()
4022 if (Predicate.isImmediatePattern()) { in createAndImportSelDAGMatcher()
4023 InsnMatcher.addPredicate<InstructionImmPredicateMatcher>(Predicate); in createAndImportSelDAGMatcher()
4028 SrcGIEquivOrNull, Predicate, InsnMatcher, HasAddedBuiltinMatcher); in createAndImportSelDAGMatcher()
4038 if (Predicate.hasNoUse()) { in createAndImportSelDAGMatcher()
4043 if (Predicate.hasGISelPredicateCode()) { in createAndImportSelDAGMatcher()
4044 if (Predicate.usesOperands()) { in createAndImportSelDAGMatcher()
4048 TreePattern *TP = Predicate.getOrigPatFragRecord(); in createAndImportSelDAGMatcher()
4053 InsnMatcher.addPredicate<GenericInstructionPredicateMatcher>(Predicate); in createAndImportSelDAGMatcher()
4267 const TreePredicateFn &Predicate = Call.Fn; in importChildMatcher() local
4270 if (Predicate.isImmediatePattern()) { in importChildMatcher()
4271 OM.addPredicate<OperandImmPredicateMatcher>(Predicate); in importChildMatcher()
6007 void GlobalISelEmitter::declareSubtargetFeature(Record *Predicate) { in declareSubtargetFeature() argument
6008 if (SubtargetFeatures.count(Predicate) == 0) in declareSubtargetFeature()
6010 Predicate, SubtargetFeatureInfo(Predicate, SubtargetFeatures.size())); in declareSubtargetFeature()
6090 const PredicateMatcher &Predicate) const { in candidateConditionMatches()
6096 if (Predicate.getInsnVarID() != 0) in candidateConditionMatches()
6107 return Predicate.isIdentical(RepresentativeCondition); in candidateConditionMatches()
6114 const PredicateMatcher &Predicate = Candidate.getFirstCondition(); in addMatcher() local
6115 if (!candidateConditionMatches(Predicate)) in addMatcher()
6170 const PredicateMatcher &Predicate) const { in candidateConditionMatches()
6176 if (Predicate.getInsnVarID() != 0) in candidateConditionMatches()
6180 if (!isSupportedPredicateType(Predicate)) in candidateConditionMatches()
6184 if (!Predicate.hasValue()) in candidateConditionMatches()
6195 if (!Predicate.isIdenticalDownToValue(RepresentativeCondition)) in candidateConditionMatches()
6198 const auto Value = Predicate.getValue(); in candidateConditionMatches()
6207 const PredicateMatcher &Predicate = Candidate.getFirstCondition(); in addMatcher() local
6208 if (!candidateConditionMatches(Predicate)) in addMatcher()
6210 const auto Value = Predicate.getValue(); in addMatcher()