Lines Matching refs:TreePattern
33 class TreePattern;
60 TypeSet(MVT::SimpleValueType VT, TreePattern &TP);
108 bool MergeInTypeInfo(const EEVT::TypeSet &InVT, TreePattern &TP);
110 bool MergeInTypeInfo(MVT::SimpleValueType InVT, TreePattern &TP) {
115 bool EnforceInteger(TreePattern &TP);
118 bool EnforceFloatingPoint(TreePattern &TP);
121 bool EnforceScalar(TreePattern &TP);
124 bool EnforceVector(TreePattern &TP);
128 bool EnforceSmallerThan(EEVT::TypeSet &Other, TreePattern &TP);
132 bool EnforceVectorEltTypeIs(EEVT::TypeSet &VT, TreePattern &TP);
136 bool EnforceVectorSubVectorTypeIs(EEVT::TypeSet &VT, TreePattern &TP);
145 bool FillWithPossibleTypes(TreePattern &TP,
192 TreePattern &TP) const;
235 bool ApplyTypeConstraints(TreePatternNode *N, TreePattern &TP) const {
247 /// PatFragRec - This is the TreePattern for the PatFrag that we
249 TreePattern *PatFragRec;
252 TreePredicateFn(TreePattern *N);
255 TreePattern *getOrigPatFragRecord() const { return PatFragRec; }
444 TreePatternNode *InlinePatternFragments(TreePattern &TP);
450 bool ApplyTypeConstraints(TreePattern &TP, bool NotRegisters);
457 TreePattern &TP) {
462 TreePattern &TP) {
488 /// TreePattern - Represent a pattern, used for instructions, pattern
491 class TreePattern {
518 /// TreePattern constructor - Parse the specified DagInits into the
520 TreePattern(Record *TheRec, ListInit *RawPat, bool isInput,
522 TreePattern(Record *TheRec, DagInit *Pat, bool isInput,
524 TreePattern(Record *TheRec, TreePatternNode *Pat, bool isInput,
591 TreePattern *Pattern;
597 DAGInstruction(TreePattern *TP,
604 const TreePattern *getPattern() const { return Pattern; }
677 std::map<Record*, TreePattern*, RecordPtrCmp> PatternFragments;
754 TreePattern *getPatternFragment(Record *R) const {
758 TreePattern *getPatternFragmentIfRead(Record *R) const {
763 typedef std::map<Record*, TreePattern*, RecordPtrCmp>::const_iterator
803 void AddPatternToMatch(const TreePattern *Pattern, const PatternToMatch &PTM);
804 void FindPatternInputsAndOutputs(TreePattern *I, TreePatternNode *Pat,