| Andrew Lenharth | a7a83b9 | 2005-09-29 22:54:56 +0000 | [diff] [blame] | 1 | //=====-- AlphaSubtarget.h - Define Subtarget for the Alpha --*- C++ -*--====// | 
|  | 2 | // | 
|  | 3 | //                     The LLVM Compiler Infrastructure | 
|  | 4 | // | 
| Chris Lattner | f3ebc3f | 2007-12-29 20:36:04 +0000 | [diff] [blame] | 5 | // This file is distributed under the University of Illinois Open Source | 
|  | 6 | // License. See LICENSE.TXT for details. | 
| Andrew Lenharth | a7a83b9 | 2005-09-29 22:54:56 +0000 | [diff] [blame] | 7 | // | 
|  | 8 | //===----------------------------------------------------------------------===// | 
|  | 9 | // | 
|  | 10 | // This file declares the Alpha specific subclass of TargetSubtarget. | 
|  | 11 | // | 
|  | 12 | //===----------------------------------------------------------------------===// | 
|  | 13 |  | 
|  | 14 | #ifndef ALPHASUBTARGET_H | 
|  | 15 | #define ALPHASUBTARGET_H | 
|  | 16 |  | 
| Andrew Lenharth | 16b96d2 | 2006-03-09 17:16:45 +0000 | [diff] [blame] | 17 | #include "llvm/Target/TargetInstrItineraries.h" | 
| Andrew Lenharth | a7a83b9 | 2005-09-29 22:54:56 +0000 | [diff] [blame] | 18 | #include "llvm/Target/TargetSubtarget.h" | 
|  | 19 |  | 
|  | 20 | #include <string> | 
|  | 21 |  | 
|  | 22 | namespace llvm { | 
| Andrew Lenharth | a7a83b9 | 2005-09-29 22:54:56 +0000 | [diff] [blame] | 23 |  | 
|  | 24 | class AlphaSubtarget : public TargetSubtarget { | 
|  | 25 | protected: | 
|  | 26 |  | 
| Andrew Lenharth | a7a83b9 | 2005-09-29 22:54:56 +0000 | [diff] [blame] | 27 | bool HasCT; | 
|  | 28 |  | 
| Andrew Lenharth | 16b96d2 | 2006-03-09 17:16:45 +0000 | [diff] [blame] | 29 | InstrItineraryData InstrItins; | 
|  | 30 |  | 
| Andrew Lenharth | a7a83b9 | 2005-09-29 22:54:56 +0000 | [diff] [blame] | 31 | public: | 
|  | 32 | /// This constructor initializes the data members to match that | 
| Daniel Dunbar | 31b44e8 | 2009-08-02 22:11:08 +0000 | [diff] [blame] | 33 | /// of the specified triple. | 
| Andrew Lenharth | a7a83b9 | 2005-09-29 22:54:56 +0000 | [diff] [blame] | 34 | /// | 
| Daniel Dunbar | 31b44e8 | 2009-08-02 22:11:08 +0000 | [diff] [blame] | 35 | AlphaSubtarget(const std::string &TT, const std::string &FS); | 
| Jim Laskey | a2b5235 | 2005-10-26 17:30:34 +0000 | [diff] [blame] | 36 |  | 
|  | 37 | /// ParseSubtargetFeatures - Parses features string setting specified | 
| Jim Laskey | 75eab3c | 2005-10-26 18:07:50 +0000 | [diff] [blame] | 38 | /// subtarget options.  Definition of function is auto generated by tblgen. | 
| Anton Korobeynikov | 08bf4c0 | 2009-05-23 19:50:50 +0000 | [diff] [blame] | 39 | std::string ParseSubtargetFeatures(const std::string &FS, | 
|  | 40 | const std::string &CPU); | 
| Andrew Lenharth | a7a83b9 | 2005-09-29 22:54:56 +0000 | [diff] [blame] | 41 |  | 
| Andrew Lenharth | a7a83b9 | 2005-09-29 22:54:56 +0000 | [diff] [blame] | 42 | bool hasCT() const { return HasCT; } | 
|  | 43 | }; | 
|  | 44 | } // End llvm namespace | 
|  | 45 |  | 
|  | 46 | #endif |