1//===- AMDIL.td - AMDIL Target Machine -------------*- 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// Target-independent interfaces which we are implementing
10//===----------------------------------------------------------------------===//
11
12include "llvm/Target/Target.td"
13
14// Dummy Instruction itineraries for pseudo instructions
15def ALU_NULL : FuncUnit;
16def NullALU : InstrItinClass;
17
18//===----------------------------------------------------------------------===//
19// AMDIL Subtarget features.
20//===----------------------------------------------------------------------===//
21def FeatureFP64     : SubtargetFeature<"fp64",
22        "CapsOverride[AMDGPUDeviceInfo::DoubleOps]",
23        "true",
24        "Enable 64bit double precision operations">;
25def FeatureByteAddress    : SubtargetFeature<"byte_addressable_store",
26        "CapsOverride[AMDGPUDeviceInfo::ByteStores]",
27        "true",
28        "Enable byte addressable stores">;
29def FeatureBarrierDetect : SubtargetFeature<"barrier_detect",
30        "CapsOverride[AMDGPUDeviceInfo::BarrierDetect]",
31        "true",
32        "Enable duplicate barrier detection(HD5XXX or later).">;
33def FeatureImages : SubtargetFeature<"images",
34        "CapsOverride[AMDGPUDeviceInfo::Images]",
35        "true",
36        "Enable image functions">;
37def FeatureMultiUAV : SubtargetFeature<"multi_uav",
38        "CapsOverride[AMDGPUDeviceInfo::MultiUAV]",
39        "true",
40        "Generate multiple UAV code(HD5XXX family or later)">;
41def FeatureMacroDB : SubtargetFeature<"macrodb",
42        "CapsOverride[AMDGPUDeviceInfo::MacroDB]",
43        "true",
44        "Use internal macrodb, instead of macrodb in driver">;
45def FeatureNoAlias : SubtargetFeature<"noalias",
46        "CapsOverride[AMDGPUDeviceInfo::NoAlias]",
47        "true",
48        "assert that all kernel argument pointers are not aliased">;
49def FeatureNoInline : SubtargetFeature<"no-inline",
50        "CapsOverride[AMDGPUDeviceInfo::NoInline]",
51        "true",
52        "specify whether to not inline functions">;
53
54def Feature64BitPtr : SubtargetFeature<"64BitPtr",
55        "mIs64bit",
56        "false",
57        "Specify if 64bit addressing should be used.">;
58
59def Feature32on64BitPtr : SubtargetFeature<"64on32BitPtr",
60        "mIs32on64bit",
61        "false",
62        "Specify if 64bit sized pointers with 32bit addressing should be used.">;
63def FeatureDebug : SubtargetFeature<"debug",
64        "CapsOverride[AMDGPUDeviceInfo::Debug]",
65        "true",
66        "Debug mode is enabled, so disable hardware accelerated address spaces.">;
67def FeatureDumpCode : SubtargetFeature <"DumpCode",
68        "mDumpCode",
69        "true",
70        "Dump MachineInstrs in the CodeEmitter">;
71
72
73//===----------------------------------------------------------------------===//
74// Register File, Calling Conv, Instruction Descriptions
75//===----------------------------------------------------------------------===//
76
77
78include "AMDILRegisterInfo.td"
79include "AMDILInstrInfo.td"
80
81