Eric Christopher | 50880d0 | 2010-09-18 18:52:28 +0000 | [diff] [blame] | 1 | //===- PTXSubtarget.cpp - PTX Subtarget Information ---------------*- C++ -*-=// |
| 2 | // |
| 3 | // The LLVM Compiler Infrastructure |
| 4 | // |
| 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
| 8 | //===----------------------------------------------------------------------===// |
| 9 | // |
| 10 | // This file implements the PTX specific subclass of TargetSubtarget. |
| 11 | // |
| 12 | //===----------------------------------------------------------------------===// |
| 13 | |
| 14 | #include "PTXSubtarget.h" |
Che-Liang Chiou | fd8978b | 2011-03-02 03:20:28 +0000 | [diff] [blame] | 15 | #include "llvm/Support/ErrorHandling.h" |
Eric Christopher | 50880d0 | 2010-09-18 18:52:28 +0000 | [diff] [blame] | 16 | |
| 17 | using namespace llvm; |
| 18 | |
Che-Liang Chiou | fd8978b | 2011-03-02 03:20:28 +0000 | [diff] [blame] | 19 | PTXSubtarget::PTXSubtarget(const std::string &TT, const std::string &FS) |
| 20 | : PTXShaderModel(PTX_SM_1_0), |
Justin Holewinski | 625eec1 | 2011-03-15 13:24:15 +0000 | [diff] [blame^] | 21 | PTXVersion(PTX_VERSION_2_0), |
Che-Liang Chiou | f48817c | 2011-03-02 07:36:48 +0000 | [diff] [blame] | 22 | SupportsDouble(false), |
| 23 | Use64BitAddresses(false) { |
Che-Liang Chiou | fd8978b | 2011-03-02 03:20:28 +0000 | [diff] [blame] | 24 | std::string TARGET = "generic"; |
| 25 | ParseSubtargetFeatures(FS, TARGET); |
| 26 | } |
| 27 | |
| 28 | std::string PTXSubtarget::getTargetString() const { |
| 29 | switch(PTXShaderModel) { |
| 30 | default: llvm_unreachable("Unknown shader model"); |
| 31 | case PTX_SM_1_0: return "sm_10"; |
| 32 | case PTX_SM_1_3: return "sm_13"; |
| 33 | case PTX_SM_2_0: return "sm_20"; |
| 34 | } |
| 35 | } |
| 36 | |
| 37 | std::string PTXSubtarget::getPTXVersionString() const { |
| 38 | switch(PTXVersion) { |
| 39 | default: llvm_unreachable("Unknown PTX version"); |
Che-Liang Chiou | fd8978b | 2011-03-02 03:20:28 +0000 | [diff] [blame] | 40 | case PTX_VERSION_2_0: return "2.0"; |
| 41 | case PTX_VERSION_2_1: return "2.1"; |
Justin Holewinski | 625eec1 | 2011-03-15 13:24:15 +0000 | [diff] [blame^] | 42 | case PTX_VERSION_2_2: return "2.2"; |
Che-Liang Chiou | fd8978b | 2011-03-02 03:20:28 +0000 | [diff] [blame] | 43 | } |
Eric Christopher | 50880d0 | 2010-09-18 18:52:28 +0000 | [diff] [blame] | 44 | } |
| 45 | |
| 46 | #include "PTXGenSubtarget.inc" |