1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00

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

llvm-svn: 238727
This commit is contained in:
Craig Topper 2015-06-01 06:44:18 +00:00
parent 2ccbe25333
commit 36634fb48e
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());
}