summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/CodeGenTarget.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2005-12-08 02:00:36 +0000
committerEvan Cheng <evan.cheng@apple.com>2005-12-08 02:00:36 +0000
commit9b9567bfb54c250c8701b2e7e507bbbbf377d058 (patch)
treee446367bf1393a11d914d6fd9a8c15845b140bbc /llvm/utils/TableGen/CodeGenTarget.h
parentae89d862f52b299737c1b468ac67f502000f0070 (diff)
downloadbcm5719-llvm-9b9567bfb54c250c8701b2e7e507bbbbf377d058.tar.gz
bcm5719-llvm-9b9567bfb54c250c8701b2e7e507bbbbf377d058.zip
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. llvm-svn: 24634
Diffstat (limited to 'llvm/utils/TableGen/CodeGenTarget.h')
-rw-r--r--llvm/utils/TableGen/CodeGenTarget.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.h b/llvm/utils/TableGen/CodeGenTarget.h
index f2c4da336cb..36b87599322 100644
--- a/llvm/utils/TableGen/CodeGenTarget.h
+++ b/llvm/utils/TableGen/CodeGenTarget.h
@@ -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
OpenPOWER on IntegriCloud