diff options
author | Chris Lattner <sabre@nondot.org> | 2010-02-16 06:10:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-02-16 06:10:58 +0000 |
commit | e39650a805425ffdbd79692c7d1bad80f7332dae (patch) | |
tree | 8f37117cb54641819bccacc5809ef98d6c0f6dd2 /utils/TableGen/DAGISelMatcher.h | |
parent | a08b587494a09a94a72245dd9d7088564e511f4e (diff) | |
download | llvm-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.h | 30 |
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 |