[TableGen] Move a couple virtual methods out of line so vtable anchors can be removed. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238727 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Craig Topper
2015-06-01 06:44:18 +00:00
parent f15cab13cb
commit dd2a26fccb
2 changed files with 9 additions and 7 deletions

View File

@@ -139,7 +139,6 @@ class StringRecTy : public RecTy {
static StringRecTy Shared;
StringRecTy() : RecTy(StringRecTyKind) {}
virtual void anchor();
public:
static bool classof(const RecTy *RT) {
return RT->getRecTyKind() == StringRecTyKind;
@@ -147,7 +146,7 @@ public:
static StringRecTy *get() { return &Shared; }
std::string getAsString() const override { return "string"; }
std::string getAsString() const override;
};
/// ListRecTy - 'list<Ty>' - Represent a list of values, all of which must be of
@@ -177,7 +176,6 @@ class DagRecTy : public RecTy {
static DagRecTy Shared;
DagRecTy() : RecTy(DagRecTyKind) {}
virtual void anchor();
public:
static bool classof(const RecTy *RT) {
return RT->getRecTyKind() == DagRecTyKind;
@@ -185,7 +183,7 @@ public:
static DagRecTy *get() { return &Shared; }
std::string getAsString() const override { return "dag"; }
std::string getAsString() const override;
};
/// RecordRecTy - '[classname]' - Represent an instance of a class, such as:

View File

@@ -88,9 +88,6 @@ DagRecTy DagRecTy::Shared;
void RecTy::dump() const { print(errs()); }
void StringRecTy::anchor() { }
void DagRecTy::anchor() { }
ListRecTy *RecTy::getListTy() {
if (!ListTy)
ListTy.reset(new ListRecTy(this));
@@ -136,6 +133,9 @@ bool IntRecTy::typeIsConvertibleTo(const RecTy *RHS) const {
return kind==BitRecTyKind || kind==BitsRecTyKind || kind==IntRecTyKind;
}
std::string StringRecTy::getAsString() const {
return "string";
}
std::string ListRecTy::getAsString() const {
return "list<" + Ty->getAsString() + ">";
@@ -147,6 +147,10 @@ bool ListRecTy::typeIsConvertibleTo(const RecTy *RHS) const {
return false;
}
std::string DagRecTy::getAsString() const {
return "dag";
}
RecordRecTy *RecordRecTy::get(Record *R) {
return dyn_cast<RecordRecTy>(R->getDefInit()->getType());
}