//===-- AMDIL.td - AMDIL Tablegen files --*- tablegen -*-------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //==-----------------------------------------------------------------------===// // Include AMDIL TD files include "AMDILBase.td" //===----------------------------------------------------------------------===// // Subtarget Features //===----------------------------------------------------------------------===// // Debugging Features def FeatureDumpCode : SubtargetFeature <"DumpCode", "DumpCode", "true", "Dump MachineInstrs in the CodeEmitter">; def FeatureIRStructurizer : SubtargetFeature <"disable-irstructurizer", "EnableIRStructurizer", "false", "Disable IR Structurizer">; // Target features def FeatureIfCvt : SubtargetFeature <"disable-ifcvt", "EnableIfCvt", "false", "Disable the if conversion pass">; def FeatureFP64 : SubtargetFeature<"fp64", "FP64", "true", "Enable 64bit double precision operations">; def Feature64BitPtr : SubtargetFeature<"64BitPtr", "Is64bit", "true", "Specify if 64bit addressing should be used.">; def Feature32on64BitPtr : SubtargetFeature<"64on32BitPtr", "Is32on64bit", "false", "Specify if 64bit sized pointers with 32bit addressing should be used.">; def FeatureR600ALUInst : SubtargetFeature<"R600ALUInst", "R600ALUInst", "false", "Older version of ALU instructions encoding.">; def FeatureVertexCache : SubtargetFeature<"HasVertexCache", "HasVertexCache", "true", "Specify use of dedicated vertex cache.">; def FeatureCaymanISA : SubtargetFeature<"caymanISA", "CaymanISA", "true", "Use Cayman ISA">; class SubtargetFeatureFetchLimit : SubtargetFeature <"fetch"#Value, "TexVTXClauseSize", Value, "Limit the maximum number of fetches in a clause to "#Value>; def FeatureFetchLimit8 : SubtargetFeatureFetchLimit <"8">; def FeatureFetchLimit16 : SubtargetFeatureFetchLimit <"16">; class SubtargetFeatureGeneration Implies> : SubtargetFeature ; def FeatureR600 : SubtargetFeatureGeneration<"R600", [FeatureR600ALUInst, FeatureFetchLimit8]>; def FeatureR700 : SubtargetFeatureGeneration<"R700", [FeatureFetchLimit16]>; def FeatureEvergreen : SubtargetFeatureGeneration<"EVERGREEN", [FeatureFetchLimit16]>; def FeatureNorthernIslands : SubtargetFeatureGeneration<"NORTHERN_ISLANDS", [FeatureFetchLimit16]>; def FeatureSouthernIslands : SubtargetFeatureGeneration<"SOUTHERN_ISLANDS", [Feature64BitPtr, FeatureFP64]>; def FeatureSeaIslands : SubtargetFeatureGeneration<"SEA_ISLANDS", [Feature64BitPtr, FeatureFP64]>; //===----------------------------------------------------------------------===// def AMDGPUInstrInfo : InstrInfo { let guessInstructionProperties = 1; } //===----------------------------------------------------------------------===// // Declare the target which we are implementing //===----------------------------------------------------------------------===// def AMDGPUAsmWriter : AsmWriter { string AsmWriterClassName = "InstPrinter"; int Variant = 0; bit isMCAsmWriter = 1; } def AMDGPU : Target { // Pull in Instruction Info: let InstructionSet = AMDGPUInstrInfo; let AssemblyWriters = [AMDGPUAsmWriter]; } // Include AMDGPU TD files include "R600Schedule.td" include "SISchedule.td" include "Processors.td" include "AMDGPUInstrInfo.td" include "AMDGPUIntrinsics.td" include "AMDGPURegisterInfo.td" include "AMDGPUInstructions.td" include "AMDGPUCallingConv.td"