LLVM API Documentation
00001 //=====-- PIC16Subtarget.h - Define Subtarget for the PIC16 ---*- C++ -*--====// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file declares the PIC16 specific subclass of TargetSubtarget. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef PIC16SUBTARGET_H 00015 #define PIC16SUBTARGET_H 00016 00017 #include "llvm/Target/TargetSubtarget.h" 00018 00019 #include <string> 00020 00021 namespace llvm { 00022 class Module; 00023 00024 class PIC16Subtarget : public TargetSubtarget { 00025 00026 // IsCooper - Target ISA is Cooper. 00027 bool IsCooper; 00028 00029 public: 00030 /// This constructor initializes the data members to match that 00031 /// of the specified module. 00032 /// 00033 PIC16Subtarget(const Module &M, const std::string &FS, bool Cooper); 00034 00035 /// isCooper - Returns true if the target ISA is Cooper. 00036 bool isCooper() const { return IsCooper; } 00037 00038 /// ParseSubtargetFeatures - Parses features string setting specified 00039 /// subtarget options. Definition of function is auto generated by tblgen. 00040 void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU); 00041 }; 00042 } // End llvm namespace 00043 00044 #endif // PIC16SUBTARGET_H