summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2015-06-01 06:44:18 +0000
committerCraig Topper <craig.topper@gmail.com>2015-06-01 06:44:18 +0000
commit6548196c6fe8bdaf0ba2311eb4982f2e9e1160ed (patch)
treee6ca5336dd92db92be484b8ee15ca0c733506ac4
parent8eb887fefcd5a11cd35de84cf369d1f9ebb25426 (diff)
downloadbcm5719-llvm-6548196c6fe8bdaf0ba2311eb4982f2e9e1160ed.tar.gz
bcm5719-llvm-6548196c6fe8bdaf0ba2311eb4982f2e9e1160ed.zip
[TableGen] Move a couple virtual methods out of line so vtable anchors can be removed. NFC
llvm-svn: 238727
-rw-r--r--llvm/include/llvm/TableGen/Record.h6
-rw-r--r--llvm/lib/TableGen/Record.cpp10
2 files changed, 9 insertions, 7 deletions
diff --git a/llvm/include/llvm/TableGen/Record.h b/llvm/include/llvm/TableGen/Record.h
index 16932a23a03..eada90d1573 100644
--- a/llvm/include/llvm/TableGen/Record.h
+++ b/llvm/include/llvm/TableGen/Record.h
@@ -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:
diff --git a/llvm/lib/TableGen/Record.cpp b/llvm/lib/TableGen/Record.cpp
index 6c7a66fcba1..3097c4ee33e 100644
--- a/llvm/lib/TableGen/Record.cpp
+++ b/llvm/lib/TableGen/Record.cpp
@@ -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());
}
OpenPOWER on IntegriCloud