summaryrefslogtreecommitdiff
path: root/utils/TableGen/CodeGenTarget.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-10-11 21:02:01 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-10-11 21:02:01 +0000
commit94b3040fef9475c74b877fb32cb45200cea273bb (patch)
tree7e8fa9cab9871b355dfc7d14071b9ad4803d6018 /utils/TableGen/CodeGenTarget.h
parent7aed46c25b9c1527b4112e71060f35c4f9c6b024 (diff)
downloadllvm-94b3040fef9475c74b877fb32cb45200cea273bb.tar.gz
llvm-94b3040fef9475c74b877fb32cb45200cea273bb.tar.bz2
llvm-94b3040fef9475c74b877fb32cb45200cea273bb.tar.xz
Added properties such as SDNPHasChain to ComplexPattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30890 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/CodeGenTarget.h')
-rw-r--r--utils/TableGen/CodeGenTarget.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/utils/TableGen/CodeGenTarget.h b/utils/TableGen/CodeGenTarget.h
index dd58d929f8..bd403402ca 100644
--- a/utils/TableGen/CodeGenTarget.h
+++ b/utils/TableGen/CodeGenTarget.h
@@ -29,6 +29,10 @@ class RecordKeeper;
struct CodeGenRegister;
class CodeGenTarget;
+// SelectionDAG node properties.
+enum SDNP { SDNPCommutative, SDNPAssociative, SDNPHasChain,
+ SDNPOutFlag, SDNPInFlag, SDNPOptInFlag };
+
/// getValueType - Return the MVT::ValueType that the specified TableGen record
/// corresponds to.
MVT::ValueType getValueType(Record *Rec, const CodeGenTarget *CGT = 0);
@@ -157,6 +161,7 @@ class ComplexPattern {
unsigned NumOperands;
std::string SelectFunc;
std::vector<Record*> RootNodes;
+ unsigned Properties;
public:
ComplexPattern() : NumOperands(0) {};
ComplexPattern(Record *R);
@@ -167,6 +172,8 @@ public:
const std::vector<Record*> &getRootNodes() const {
return RootNodes;
}
+ bool hasProperty(enum SDNP Prop) const { return Properties & (1 << Prop); }
+
};
} // End llvm namespace