aboutsummaryrefslogtreecommitdiffstats
path: root/utils/TableGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-10-28 22:43:25 +0000
committerChris Lattner <sabre@nondot.org>2005-10-28 22:43:25 +0000
commit6bc0d742c284d65514b63f3fa4a2bb3ab1fe040e (patch)
tree70d7f226720cadee8ab6642de90b84be43ee6111 /utils/TableGen
parentf7bcde085440d1fd90eba8980ed9c512bc58824d (diff)
downloadexternal_llvm-6bc0d742c284d65514b63f3fa4a2bb3ab1fe040e.zip
external_llvm-6bc0d742c284d65514b63f3fa4a2bb3ab1fe040e.tar.gz
external_llvm-6bc0d742c284d65514b63f3fa4a2bb3ab1fe040e.tar.bz2
Use the new interface Jim added
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24071 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen')
-rw-r--r--utils/TableGen/DAGISelEmitter.cpp22
1 files changed, 7 insertions, 15 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index e468f30..590a5ba 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -228,16 +228,14 @@ SDNodeInfo::SDNodeInfo(Record *R) : Def(R) {
// Parse the properties.
Properties = 0;
- ListInit *LI = R->getValueAsListInit("Properties");
- for (unsigned i = 0, e = LI->getSize(); i != e; ++i) {
- DefInit *DI = dynamic_cast<DefInit*>(LI->getElement(i));
- assert(DI && "Properties list must be list of defs!");
- if (DI->getDef()->getName() == "SDNPCommutative") {
+ std::vector<Record*> PropList = R->getValueAsListDef("Properties");
+ for (unsigned i = 0, e = PropList.size(); i != e; ++i) {
+ if (PropList[i]->getName() == "SDNPCommutative") {
Properties |= 1 << SDNPCommutative;
- } else if (DI->getDef()->getName() == "SDNPAssociative") {
+ } else if (PropList[i]->getName() == "SDNPAssociative") {
Properties |= 1 << SDNPAssociative;
} else {
- std::cerr << "Unknown SD Node property '" << DI->getDef()->getName()
+ std::cerr << "Unknown SD Node property '" << PropList[i]->getName()
<< "' on node '" << R->getName() << "'!\n";
exit(1);
}
@@ -245,14 +243,8 @@ SDNodeInfo::SDNodeInfo(Record *R) : Def(R) {
// Parse the type constraints.
- ListInit *Constraints = TypeProfile->getValueAsListInit("Constraints");
- for (unsigned i = 0, e = Constraints->getSize(); i != e; ++i) {
- assert(dynamic_cast<DefInit*>(Constraints->getElement(i)) &&
- "Constraints list should contain constraint definitions!");
- Record *Constraint =
- static_cast<DefInit*>(Constraints->getElement(i))->getDef();
- TypeConstraints.push_back(Constraint);
- }
+ std::vector<Record*> ConstList =TypeProfile->getValueAsListDef("Constraints");
+ TypeConstraints.assign(ConstList.begin(), ConstList.end());
}
//===----------------------------------------------------------------------===//