Added support for ComplexPattern. These are patterns that require C++ pattern

matching code that is not currently auto-generated by tblgen, e.g. X86
addressing mode. Selection routines for complex patterns can return multiple operands, e.g. X86 addressing mode returns 4.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24634 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2005-12-08 02:00:36 +00:00
parent cc827e60b6
commit 0fc7198890
5 changed files with 220 additions and 57 deletions
+17
View File
@@ -157,6 +157,23 @@ public:
bool isLittleEndianEncoding() const;
};
/// ComplexPattern - ComplexPattern info, corresponding to the ComplexPattern
/// tablegen class in TargetSelectionDAG.td
class ComplexPattern {
unsigned NumOperands;
std::string SelectFunc;
std::vector<Record*> MatchingNodes;
public:
ComplexPattern() : NumOperands(0) {};
ComplexPattern(Record *R);
unsigned getNumOperands() const { return NumOperands; }
const std::string &getSelectFunc() const { return SelectFunc; }
const std::vector<Record*> &getMatchingNodes() const {
return MatchingNodes;
}
};
} // End llvm namespace
#endif