summaryrefslogtreecommitdiff
path: root/utils/TableGen/DAGISelMatcher.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-02-16 06:10:58 +0000
committerChris Lattner <sabre@nondot.org>2010-02-16 06:10:58 +0000
commite39650a805425ffdbd79692c7d1bad80f7332dae (patch)
tree8f37117cb54641819bccacc5809ef98d6c0f6dd2 /utils/TableGen/DAGISelMatcher.h
parenta08b587494a09a94a72245dd9d7088564e511f4e (diff)
downloadllvm-e39650a805425ffdbd79692c7d1bad80f7332dae.tar.gz
llvm-e39650a805425ffdbd79692c7d1bad80f7332dae.tar.bz2
llvm-e39650a805425ffdbd79692c7d1bad80f7332dae.tar.xz
add support for the new isel matcher to generate
(isprofitable|islegal)tofold checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96331 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelMatcher.h')
-rw-r--r--utils/TableGen/DAGISelMatcher.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/utils/TableGen/DAGISelMatcher.h b/utils/TableGen/DAGISelMatcher.h
index 72bdb7bf27..8699d516ed 100644
--- a/utils/TableGen/DAGISelMatcher.h
+++ b/utils/TableGen/DAGISelMatcher.h
@@ -48,7 +48,9 @@ public:
CheckValueType,
CheckComplexPat,
CheckAndImm,
- CheckOrImm
+ CheckOrImm,
+ CheckProfitableToFold,
+ CheckLegalToFold
};
const KindTy Kind;
@@ -355,8 +357,34 @@ public:
virtual void print(raw_ostream &OS, unsigned indent = 0) const;
};
+
+/// CheckProfitableToFoldMatcherNode - This checks to see if the current node is
+/// worthwhile to try to fold into a large pattern.
+class CheckProfitableToFoldMatcherNode : public MatcherNodeWithChild {
+public:
+ CheckProfitableToFoldMatcherNode()
+ : MatcherNodeWithChild(CheckProfitableToFold) {}
+
+ static inline bool classof(const MatcherNode *N) {
+ return N->getKind() == CheckProfitableToFold;
+ }
+
+ virtual void print(raw_ostream &OS, unsigned indent = 0) const;
+};
+
+/// CheckLegalToFoldMatcherNode - This checks to see if the current node is
+/// legal to try to fold into a large pattern.
+class CheckLegalToFoldMatcherNode : public MatcherNodeWithChild {
+public:
+ CheckLegalToFoldMatcherNode()
+ : MatcherNodeWithChild(CheckLegalToFold) {}
+ static inline bool classof(const MatcherNode *N) {
+ return N->getKind() == CheckLegalToFold;
+ }
+ virtual void print(raw_ostream &OS, unsigned indent = 0) const;
+};
} // end namespace llvm
#endif