diff options
Diffstat (limited to 'llvm/utils/TableGen/Record.h')
| -rw-r--r-- | llvm/utils/TableGen/Record.h | 69 |
1 files changed, 32 insertions, 37 deletions
diff --git a/llvm/utils/TableGen/Record.h b/llvm/utils/TableGen/Record.h index 56171326c90..4384c42d265 100644 --- a/llvm/utils/TableGen/Record.h +++ b/llvm/utils/TableGen/Record.h @@ -22,7 +22,7 @@ namespace llvm { class raw_ostream; - + // RecTy subclasses. class BitRecTy; class BitsRecTy; @@ -443,7 +443,7 @@ public: virtual bool baseClassOf(const RecordRecTy *RHS) const; }; -/// resolveTypes - Find a common type that T1 and T2 convert to. +/// resolveTypes - Find a common type that T1 and T2 convert to. /// Return 0 if no such type exists. /// RecTy *resolveTypes(RecTy *T1, RecTy *T2); @@ -731,7 +731,7 @@ public: } Record *getElementAsRecord(unsigned i) const; - + Init *convertInitListSlice(const std::vector<unsigned> &Elements); virtual Init *convertInitializerTo(RecTy *Ty) { @@ -792,7 +792,7 @@ public: virtual Init *convertInitializerTo(RecTy *Ty) { return Ty->convertValue(this); } - + virtual Init *resolveBitReference(Record &R, const RecordVal *RV, unsigned Bit); virtual Init *resolveListElementReference(Record &R, const RecordVal *RV, @@ -825,7 +825,7 @@ public: assert(i == 0 && "Invalid operand id for unary operator"); return getOperand(); } - + UnaryOp getOpcode() const { return Opc; } Init *getOperand() const { return LHS; } @@ -834,7 +834,7 @@ public: Init *Fold(Record *CurRec, MultiClass *CurMultiClass); virtual Init *resolveReferences(Record &R, const RecordVal *RV); - + /// getFieldType - This method is used to implement the FieldInit class. /// Implementors of this method should return the type of the named field if /// they are of record type. @@ -856,7 +856,7 @@ public: BinOpInit(BinaryOp opc, Init *lhs, Init *rhs, RecTy *Type) : OpInit(Type), Opc(opc), LHS(lhs), RHS(rhs) { } - + // Clone - Clone this operator, replacing arguments with the new list virtual OpInit *clone(std::vector<Init *> &Operands) { assert(Operands.size() == 2 && @@ -869,8 +869,7 @@ public: assert((i == 0 || i == 1) && "Invalid operand id for binary operator"); if (i == 0) { return getLHS(); - } - else { + } else { return getRHS(); } } @@ -884,7 +883,7 @@ public: Init *Fold(Record *CurRec, MultiClass *CurMultiClass); virtual Init *resolveReferences(Record &R, const RecordVal *RV); - + virtual std::string getAsString() const; }; @@ -900,7 +899,7 @@ public: TernOpInit(TernaryOp opc, Init *lhs, Init *mhs, Init *rhs, RecTy *Type) : OpInit(Type), Opc(opc), LHS(lhs), MHS(mhs), RHS(rhs) { } - + // Clone - Clone this operator, replacing arguments with the new list virtual OpInit *clone(std::vector<Init *> &Operands) { assert(Operands.size() == 3 && @@ -915,11 +914,9 @@ public: "Invalid operand id for ternary operator"); if (i == 0) { return getLHS(); - } - else if (i == 1) { + } else if (i == 1) { return getMHS(); - } - else { + } else { return getRHS(); } } @@ -932,9 +929,9 @@ public: // Fold - If possible, fold this to a simpler init. Return this if not // possible to fold. Init *Fold(Record *CurRec, MultiClass *CurMultiClass); - + virtual Init *resolveReferences(Record &R, const RecordVal *RV); - + virtual std::string getAsString() const; }; @@ -1106,7 +1103,7 @@ class DagInit : public TypedInit { std::vector<Init*> Args; std::vector<std::string> ArgNames; public: - DagInit(Init *V, std::string VN, + DagInit(Init *V, std::string VN, const std::vector<std::pair<Init*, std::string> > &args) : TypedInit(new DagRecTy), Val(V), ValName(VN) { Args.reserve(args.size()); @@ -1116,11 +1113,11 @@ public: ArgNames.push_back(args[i].second); } } - DagInit(Init *V, std::string VN, const std::vector<Init*> &args, + DagInit(Init *V, std::string VN, const std::vector<Init*> &args, const std::vector<std::string> &argNames) - : TypedInit(new DagRecTy), Val(V), ValName(VN), Args(args), ArgNames(argNames) { - } - + : TypedInit(new DagRecTy), Val(V), ValName(VN), Args(args), + ArgNames(argNames) { } + virtual Init *convertInitializerTo(RecTy *Ty) { return Ty->convertValue(this); } @@ -1143,7 +1140,7 @@ public: assert(Num < Args.size() && "Arg number out of range!"); Args[Num] = I; } - + virtual Init *resolveReferences(Record &R, const RecordVal *RV); virtual std::string getAsString() const; @@ -1174,13 +1171,12 @@ public: assert(0 && "Illegal bit reference off dag"); return 0; } - + virtual Init *resolveListElementReference(Record &R, const RecordVal *RV, unsigned Elt) { assert(0 && "Illegal element reference off dag"); return 0; } - }; //===----------------------------------------------------------------------===// @@ -1231,17 +1227,17 @@ class Record { std::vector<Record*> SuperClasses; public: - explicit Record(const std::string &N, SMLoc loc) : + explicit Record(const std::string &N, SMLoc loc) : ID(LastID++), Name(N), Loc(loc) {} ~Record() {} - + unsigned getID() const { return ID; } const std::string &getName() const { return Name; } void setName(const std::string &Name); // Also updates RecordKeeper. - + SMLoc getLoc() const { return Loc; } - + const std::vector<std::string> &getTemplateArgs() const { return TemplateArgs; } @@ -1353,7 +1349,7 @@ public: /// not exist or if the value is not the right type. /// std::vector<int64_t> getValueAsListOfInts(StringRef FieldName) const; - + /// getValueAsDef - This method looks up the specified field and returns its /// value as a Record, throwing an exception if the field does not exist or if /// the value is not the right type. @@ -1377,7 +1373,7 @@ public: /// the value is not the right type. /// DagInit *getValueAsDag(StringRef FieldName) const; - + /// getValueAsCode - This method looks up the specified field and returns /// its value as the string data in a CodeInit, throwing an exception if the /// field does not exist or if the value is not a code object. @@ -1441,7 +1437,7 @@ public: assert(Defs.count(Name) && "Def does not exist!"); Defs.erase(Name); } - + //===--------------------------------------------------------------------===// // High-level helper methods, useful for tablegen backends... @@ -1463,7 +1459,7 @@ struct LessRecord { } }; -/// LessRecordFieldName - Sorting predicate to sort record pointers by their +/// LessRecordFieldName - Sorting predicate to sort record pointers by their /// name field. /// struct LessRecordFieldName { @@ -1478,19 +1474,18 @@ class TGError { std::string Message; public: TGError(SMLoc loc, const std::string &message) : Loc(loc), Message(message) {} - + SMLoc getLoc() const { return Loc; } const std::string &getMessage() const { return Message; } }; - - + + raw_ostream &operator<<(raw_ostream &OS, const RecordKeeper &RK); extern RecordKeeper Records; void PrintError(SMLoc ErrorLoc, const std::string &Msg); - } // End llvm namespace #endif |

