blob: 099a4918474443d3b2e1d2ecbac14f2c4a1dddee [file] [log] [blame]
Tom Stellard75aadc22012-12-11 21:25:42 +00001//===-- AMDIL.td - AMDIL Tablegen files --*- tablegen -*-------------------===//
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// Include AMDIL TD files
11include "AMDILBase.td"
12
Tom Stellard99792772013-06-07 20:28:49 +000013//===----------------------------------------------------------------------===//
14// Subtarget Features
15//===----------------------------------------------------------------------===//
16
17def FeatureFP64 : SubtargetFeature<"fp64",
18 "CapsOverride[AMDGPUDeviceInfo::DoubleOps]",
19 "true",
20 "Enable 64bit double precision operations">;
21def FeatureByteAddress : SubtargetFeature<"byte_addressable_store",
22 "CapsOverride[AMDGPUDeviceInfo::ByteStores]",
23 "true",
24 "Enable byte addressable stores">;
25def FeatureBarrierDetect : SubtargetFeature<"barrier_detect",
26 "CapsOverride[AMDGPUDeviceInfo::BarrierDetect]",
27 "true",
28 "Enable duplicate barrier detection(HD5XXX or later).">;
29def FeatureImages : SubtargetFeature<"images",
30 "CapsOverride[AMDGPUDeviceInfo::Images]",
31 "true",
32 "Enable image functions">;
33def FeatureMultiUAV : SubtargetFeature<"multi_uav",
34 "CapsOverride[AMDGPUDeviceInfo::MultiUAV]",
35 "true",
36 "Generate multiple UAV code(HD5XXX family or later)">;
37def FeatureMacroDB : SubtargetFeature<"macrodb",
38 "CapsOverride[AMDGPUDeviceInfo::MacroDB]",
39 "true",
40 "Use internal macrodb, instead of macrodb in driver">;
41def FeatureNoAlias : SubtargetFeature<"noalias",
42 "CapsOverride[AMDGPUDeviceInfo::NoAlias]",
43 "true",
44 "assert that all kernel argument pointers are not aliased">;
45def FeatureNoInline : SubtargetFeature<"no-inline",
46 "CapsOverride[AMDGPUDeviceInfo::NoInline]",
47 "true",
48 "specify whether to not inline functions">;
49
50def Feature64BitPtr : SubtargetFeature<"64BitPtr",
51 "Is64bit",
52 "false",
53 "Specify if 64bit addressing should be used.">;
54
55def Feature32on64BitPtr : SubtargetFeature<"64on32BitPtr",
56 "Is32on64bit",
57 "false",
58 "Specify if 64bit sized pointers with 32bit addressing should be used.">;
59def FeatureDebug : SubtargetFeature<"debug",
60 "CapsOverride[AMDGPUDeviceInfo::Debug]",
61 "true",
62 "Debug mode is enabled, so disable hardware accelerated address spaces.">;
63def FeatureDumpCode : SubtargetFeature <"DumpCode",
64 "DumpCode",
65 "true",
66 "Dump MachineInstrs in the CodeEmitter">;
67
68def FeatureR600ALUInst : SubtargetFeature<"R600ALUInst",
69 "R600ALUInst",
70 "false",
71 "Older version of ALU instructions encoding.">;
72
73def FeatureVertexCache : SubtargetFeature<"HasVertexCache",
74 "HasVertexCache",
75 "true",
76 "Specify use of dedicated vertex cache.">;
77
Tom Stellard3498e4f2013-06-07 20:28:55 +000078class SubtargetFeatureFetchLimit <string Value> :
79 SubtargetFeature <"fetch"#Value,
80 "TexVTXClauseSize",
81 Value,
82 "Limit the maximum number of fetches in a clause to "#Value>;
Tom Stellard99792772013-06-07 20:28:49 +000083
Tom Stellard3498e4f2013-06-07 20:28:55 +000084def FeatureFetchLimit8 : SubtargetFeatureFetchLimit <"8">;
85def FeatureFetchLimit16 : SubtargetFeatureFetchLimit <"16">;
86
87//===----------------------------------------------------------------------===//
Tom Stellard75aadc22012-12-11 21:25:42 +000088
89def AMDGPUInstrInfo : InstrInfo {
90 let guessInstructionProperties = 1;
91}
92
93//===----------------------------------------------------------------------===//
94// Declare the target which we are implementing
95//===----------------------------------------------------------------------===//
96def AMDGPUAsmWriter : AsmWriter {
97 string AsmWriterClassName = "InstPrinter";
98 int Variant = 0;
99 bit isMCAsmWriter = 1;
100}
101
102def AMDGPU : Target {
103 // Pull in Instruction Info:
104 let InstructionSet = AMDGPUInstrInfo;
105 let AssemblyWriters = [AMDGPUAsmWriter];
106}
107
108// Include AMDGPU TD files
109include "R600Schedule.td"
110include "SISchedule.td"
111include "Processors.td"
112include "AMDGPUInstrInfo.td"
113include "AMDGPUIntrinsics.td"
114include "AMDGPURegisterInfo.td"
115include "AMDGPUInstructions.td"
Christian Konig2c8f6d52013-03-07 09:03:52 +0000116include "AMDGPUCallingConv.td"