diff options
Diffstat (limited to 'llvm/utils/TableGen/CodeGenWrappers.h')
| -rw-r--r-- | llvm/utils/TableGen/CodeGenWrappers.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenWrappers.h b/llvm/utils/TableGen/CodeGenWrappers.h new file mode 100644 index 00000000000..00ca3fcc603 --- /dev/null +++ b/llvm/utils/TableGen/CodeGenWrappers.h @@ -0,0 +1,56 @@ +//===- CodeGenWrappers.h - 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. +// +//===----------------------------------------------------------------------===// + +#ifndef CODEGENWRAPPERS_H +#define CODEGENWRAPPERS_H + +#include "llvm/CodeGen/ValueTypes.h" +#include <iosfwd> +#include <string> +#include <vector> +class Record; +class RecordKeeper; + +/// getValueType - Return the MVT::ValueType that the specified TableGen record +/// corresponds to. +MVT::ValueType getValueType(Record *Rec); + +std::ostream &operator<<(std::ostream &OS, MVT::ValueType T); +std::string getName(MVT::ValueType T); +std::string getEnumName(MVT::ValueType T); + + +/// CodeGenTarget - This class corresponds to the Target class in the .td files. +/// +class CodeGenTarget { + Record *TargetRec; + std::vector<Record*> CalleeSavedRegisters; + MVT::ValueType PointerType; + +public: + CodeGenTarget(); + + Record *getTargetRecord() const { return TargetRec; } + const std::string &getName() const; + + const std::vector<Record*> &getCalleeSavedRegisters() const { + return CalleeSavedRegisters; + } + + MVT::ValueType getPointerType() const { return PointerType; } + + // getInstructionSet - Return the InstructionSet object... + Record *getInstructionSet() const; + + // getInstructionSet - Return the CodeGenInstructionSet object for this + // target, lazily reading it from the record keeper as needed. + // CodeGenInstructionSet *getInstructionSet - +}; + +#endif |

