This patch adds a new NVPTX back-end to LLVM which supports code generation for NVIDI...
[oota-llvm.git] / lib / Target / NVPTX / NVPTX.td
1 //===- NVPTX.td - Describe the NVPTX Target Machine -----------*- tblgen -*-==//
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 // This is the top level entry point for the NVPTX target.
10 //===----------------------------------------------------------------------===//
11
12 //===----------------------------------------------------------------------===//
13 // Target-independent interfaces
14 //===----------------------------------------------------------------------===//
15
16 include "llvm/Target/Target.td"
17
18 include "NVPTXRegisterInfo.td"
19 include "NVPTXInstrInfo.td"
20
21 //===----------------------------------------------------------------------===//
22 // Subtarget Features.
23 // - We use the SM version number instead of explicit feature table.
24 // - Need at least one feature to avoid generating zero sized array by
25 //   TableGen in NVPTXGenSubtarget.inc.
26 //===----------------------------------------------------------------------===//
27 def FeatureDummy  : SubtargetFeature<"dummy", "dummy", "true", "">;
28
29 //===----------------------------------------------------------------------===//
30 // NVPTX supported processors.
31 //===----------------------------------------------------------------------===//
32
33 class Proc<string Name, list<SubtargetFeature> Features>
34  : Processor<Name, NoItineraries, Features>;
35
36 def : Proc<"sm_10", [FeatureDummy]>;
37
38
39 def NVPTXInstrInfo : InstrInfo {
40 }
41
42 def NVPTX : Target {
43   let InstructionSet = NVPTXInstrInfo;
44 }