summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/SetTheory.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-04 07:49:55 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-04 07:49:55 +0000
commit25b753bb3f3610110eea152f02e8c3bb5dfc00bb (patch)
treeacbb2da705bb877cd70f07abd25946d0945af3a9 /llvm/utils/TableGen/SetTheory.cpp
parent5e300b82e282811e0de0ed7df4e8b3b7043f79d6 (diff)
downloadbcm5719-llvm-25b753bb3f3610110eea152f02e8c3bb5dfc00bb.tar.gz
bcm5719-llvm-25b753bb3f3610110eea152f02e8c3bb5dfc00bb.zip
Drop a RecordKeeper reference that wasn't necessary.
llvm-svn: 132636
Diffstat (limited to 'llvm/utils/TableGen/SetTheory.cpp')
-rw-r--r--llvm/utils/TableGen/SetTheory.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/llvm/utils/TableGen/SetTheory.cpp b/llvm/utils/TableGen/SetTheory.cpp
index e168b549bc3..ade18255767 100644
--- a/llvm/utils/TableGen/SetTheory.cpp
+++ b/llvm/utils/TableGen/SetTheory.cpp
@@ -140,10 +140,6 @@ struct DecimateOp : public SetIntBinOp {
// (sequence "Format", From, To) Generate a sequence of records by name.
struct SequenceOp : public SetTheory::Operator {
- RecordKeeper &Records;
-
- SequenceOp(RecordKeeper&R) : Records(R) {}
-
void apply(SetTheory &ST, DagInit *Expr, RecSet &Elts) {
if (Expr->arg_size() != 3)
throw "Bad args to (sequence \"Format\", From, To): " +
@@ -164,6 +160,9 @@ struct SequenceOp : public SetTheory::Operator {
else
throw "From must be an integer: " + Expr->getAsString();
+ RecordKeeper &Records =
+ dynamic_cast<DefInit&>(*Expr->getOperator()).getDef()->getRecords();
+
int Step = From <= To ? 1 : -1;
for (To += Step; From != To; From += Step) {
std::string Name;
@@ -193,7 +192,7 @@ struct FieldExpander : public SetTheory::Expander {
};
} // end anonymous namespace
-SetTheory::SetTheory(RecordKeeper *Records) {
+SetTheory::SetTheory() {
addOperator("add", new AddOp);
addOperator("sub", new SubOp);
addOperator("and", new AndOp);
@@ -202,8 +201,7 @@ SetTheory::SetTheory(RecordKeeper *Records) {
addOperator("rotl", new RotOp(false));
addOperator("rotr", new RotOp(true));
addOperator("decimate", new DecimateOp);
- if (Records)
- addOperator("sequence", new SequenceOp(*Records));
+ addOperator("sequence", new SequenceOp);
}
void SetTheory::addOperator(StringRef Name, Operator *Op) {
OpenPOWER on IntegriCloud