NVPTX.td revision 36b56886974eae4f9c5ebc96befd3e7bfe5de338
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 16include "llvm/Target/Target.td" 17 18include "NVPTXRegisterInfo.td" 19include "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 28// SM Versions 29def SM20 : SubtargetFeature<"sm_20", "SmVersion", "20", 30 "Target SM 2.0">; 31def SM21 : SubtargetFeature<"sm_21", "SmVersion", "21", 32 "Target SM 2.1">; 33def SM30 : SubtargetFeature<"sm_30", "SmVersion", "30", 34 "Target SM 3.0">; 35def SM35 : SubtargetFeature<"sm_35", "SmVersion", "35", 36 "Target SM 3.5">; 37 38// PTX Versions 39def PTX30 : SubtargetFeature<"ptx30", "PTXVersion", "30", 40 "Use PTX version 3.0">; 41def PTX31 : SubtargetFeature<"ptx31", "PTXVersion", "31", 42 "Use PTX version 3.1">; 43 44//===----------------------------------------------------------------------===// 45// NVPTX supported processors. 46//===----------------------------------------------------------------------===// 47 48class Proc<string Name, list<SubtargetFeature> Features> 49 : Processor<Name, NoItineraries, Features>; 50 51def : Proc<"sm_20", [SM20]>; 52def : Proc<"sm_21", [SM21]>; 53def : Proc<"sm_30", [SM30]>; 54def : Proc<"sm_35", [SM35]>; 55 56 57def NVPTXInstrInfo : InstrInfo { 58} 59 60def NVPTX : Target { 61 let InstructionSet = NVPTXInstrInfo; 62} 63