//===- CodeGenTarget.h - Target Class Wrapper -------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file was developed by the LLVM research group and is distributed under // the University of Illinois Open Source License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines wrappers for the Target class and related global // functionality. 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 CODEGEN_TARGET_H #define CODEGEN_TARGET_H #include "llvm/CodeGen/ValueTypes.h" #include #include #include namespace llvm { 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 CalleeSavedRegisters; MVT::ValueType PointerType; public: CodeGenTarget(); Record *getTargetRecord() const { return TargetRec; } const std::string &getName() const; const std::vector &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 - }; } // End llvm namespace #endif