Changes in directory llvm/utils/TableGen:
FileParser.y updated: 1.39 -> 1.40 Record.cpp updated: 1.49 -> 1.50 Record.h updated: 1.54 -> 1.55 --- Log message: implement test/Regression/TableGen/DagIntSubst.ll --- Diffs of the changes: (+19 -2) FileParser.y | 2 +- Record.cpp | 11 +++++++++++ Record.h | 8 +++++++- 3 files changed, 19 insertions(+), 2 deletions(-) Index: llvm/utils/TableGen/FileParser.y diff -u llvm/utils/TableGen/FileParser.y:1.39 llvm/utils/TableGen/FileParser.y:1.40 --- llvm/utils/TableGen/FileParser.y:1.39 Thu Sep 29 23:53:04 2005 +++ llvm/utils/TableGen/FileParser.y Tue Jan 31 00:02:35 2006 @@ -68,7 +68,7 @@ } static void setValue(const std::string &ValName, - std::vector<unsigned> *BitList, Init *V) { + std::vector<unsigned> *BitList, Init *V) { if (!V) return; RecordVal *RV = CurRec->getValue(ValName); Index: llvm/utils/TableGen/Record.cpp diff -u llvm/utils/TableGen/Record.cpp:1.49 llvm/utils/TableGen/Record.cpp:1.50 --- llvm/utils/TableGen/Record.cpp:1.49 Sun Dec 25 23:08:55 2005 +++ llvm/utils/TableGen/Record.cpp Tue Jan 31 00:02:35 2006 @@ -554,6 +554,17 @@ return this; } +Init *DagInit::resolveReferences(Record &R, const RecordVal *RV) { + std::vector<Init*> NewArgs; + for (unsigned i = 0, e = Args.size(); i != e; ++i) + NewArgs.push_back(Args[i]->resolveReferences(R, RV)); + + if (Args != NewArgs) + return new DagInit(NodeTypeDef, NewArgs, ArgNames); + + return this; +} + void DagInit::print(std::ostream &OS) const { OS << "(" << NodeTypeDef->getName(); Index: llvm/utils/TableGen/Record.h diff -u llvm/utils/TableGen/Record.h:1.54 llvm/utils/TableGen/Record.h:1.55 --- llvm/utils/TableGen/Record.h:1.54 Fri Oct 28 17:49:02 2005 +++ llvm/utils/TableGen/Record.h Tue Jan 31 00:02:35 2006 @@ -826,7 +826,11 @@ ArgNames.push_back(args[i].second); } } - + DagInit(Record *D, const std::vector<Init*> &args, + const std::vector<std::string> &argNames) + : NodeTypeDef(D), Args(args), ArgNames(argNames) { + } + virtual Init *convertInitializerTo(RecTy *Ty) { return Ty->convertValue(this); } @@ -847,6 +851,8 @@ assert(Num < Args.size() && "Arg number out of range!"); Args[Num] = I; } + + virtual Init *resolveReferences(Record &R, const RecordVal *RV); virtual void print(std::ostream &OS) const; }; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits