diff options
Diffstat (limited to 'support/tools/TableGen/CodeGenWrappers.cpp')
-rw-r--r-- | support/tools/TableGen/CodeGenWrappers.cpp | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/support/tools/TableGen/CodeGenWrappers.cpp b/support/tools/TableGen/CodeGenWrappers.cpp deleted file mode 100644 index 61c3abc297..0000000000 --- a/support/tools/TableGen/CodeGenWrappers.cpp +++ /dev/null @@ -1,89 +0,0 @@ -//===- CodeGenWrappers.cpp - Code Generation Class Wrappers -----*- C++ -*-===// -// -// These classes wrap target description classes used by the various code -// generation TableGen backends. This makes it easier to access the data and -// provides a single place that needs to check it for validity. All of these -// classes throw exceptions on error conditions. -// -//===----------------------------------------------------------------------===// - -#include "CodeGenWrappers.h" -#include "Record.h" - -/// getValueType - Return the MCV::ValueType that the specified TableGen record -/// corresponds to. -MVT::ValueType getValueType(Record *Rec) { - return (MVT::ValueType)Rec->getValueAsInt("Value"); -} - -std::string getName(MVT::ValueType T) { - switch (T) { - case MVT::Other: return "UNKNOWN"; - case MVT::i1: return "i1"; - case MVT::i8: return "i8"; - case MVT::i16: return "i16"; - case MVT::i32: return "i32"; - case MVT::i64: return "i64"; - case MVT::i128: return "i128"; - case MVT::f32: return "f32"; - case MVT::f64: return "f64"; - case MVT::f80: return "f80"; - case MVT::f128: return "f128"; - case MVT::isVoid:return "void"; - default: assert(0 && "ILLEGAL VALUE TYPE!"); return ""; - } -} - -std::string getEnumName(MVT::ValueType T) { - switch (T) { - case MVT::Other: return "Other"; - case MVT::i1: return "i1"; - case MVT::i8: return "i8"; - case MVT::i16: return "i16"; - case MVT::i32: return "i32"; - case MVT::i64: return "i64"; - case MVT::i128: return "i128"; - case MVT::f32: return "f32"; - case MVT::f64: return "f64"; - case MVT::f80: return "f80"; - case MVT::f128: return "f128"; - case MVT::isVoid:return "isVoid"; - default: assert(0 && "ILLEGAL VALUE TYPE!"); return ""; - } -} - - -std::ostream &operator<<(std::ostream &OS, MVT::ValueType T) { - return OS << getName(T); -} - - - -/// getTarget - Return the current instance of the Target class. -/// -CodeGenTarget::CodeGenTarget() { - std::vector<Record*> Targets = Records.getAllDerivedDefinitions("Target"); - if (Targets.size() != 1) - throw std::string("ERROR: Multiple subclasses of Target defined!"); - TargetRec = Targets[0]; - - // Read in all of the CalleeSavedRegisters... - ListInit *LI = TargetRec->getValueAsListInit("CalleeSavedRegisters"); - for (unsigned i = 0, e = LI->getSize(); i != e; ++i) - if (DefInit *DI = dynamic_cast<DefInit*>(LI->getElement(i))) - CalleeSavedRegisters.push_back(DI->getDef()); - else - throw "Target: " + TargetRec->getName() + - " expected register definition in CalleeSavedRegisters list!"; - - PointerType = getValueType(TargetRec->getValueAsDef("PointerType")); -} - - -const std::string &CodeGenTarget::getName() const { - return TargetRec->getName(); -} - -Record *CodeGenTarget::getInstructionSet() const { - return TargetRec->getValueAsDef("InstructionSet"); -} |