LLVM: lib/Target/AMDGPU/R600Subtarget.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_LIB_TARGET_AMDGPU_R600SUBTARGET_H

15#define LLVM_LIB_TARGET_AMDGPU_R600SUBTARGET_H

16

22

23#define GET_SUBTARGETINFO_HEADER

24#include "R600GenSubtargetInfo.inc"

25

26namespace llvm {

27

30private:

33 bool FMA = false;

34 bool CaymanISA = false;

35 bool CFALUBug = false;

36 bool HasVertexCache = false;

37 bool R600ALUInst = false;

38 bool FP64 = false;

39 short TexVTXClauseSize = 0;

43 std::unique_ptr TSInfo;

44

45public:

48

50

52

54 return &FrameLowering;

55 }

56

60

62 return &InstrInfo.getRegisterInfo();

63 }

64

66 return &InstrItins;

67 }

68

70

72

76

78

81

85

89

91 if (Size == 32)

93

94 return false;

95 }

96

100

104

106 return CaymanISA;

107 }

108

112

116

117 bool hasFMA() const { return FMA; }

118

120

122

124

128

132

133

134

138

139

143

144

148

149

150

151 unsigned

155

156

157

161

163

164

165 return false;

166 }

167};

168

169}

170

171#endif

Base class for AMDGPU specific classes of TargetSubtarget.

R600 DAG Lowering interface definition.

Interface definition for R600InstrInfo.

AMDGPUSubtarget(Triple TT)

Itinerary data supplied by a subtarget to be used by a target.

Definition R600Subtarget.h:29

bool hasVertexCache() const

Definition R600Subtarget.h:121

bool hasFFBH() const

Definition R600Subtarget.h:113

bool hasCFAluBug() const

Definition R600Subtarget.h:119

unsigned getMinFlatWorkGroupSize() const override

Definition R600Subtarget.h:140

unsigned getMaxWorkGroupsPerCU(unsigned FlatWorkGroupSize) const override

Definition R600Subtarget.h:135

bool hasFMA() const

Definition R600Subtarget.h:117

short getTexVTXClauseSize() const

Definition R600Subtarget.h:123

unsigned getMaxFlatWorkGroupSize() const override

Definition R600Subtarget.h:145

bool hasBFI() const

Definition R600Subtarget.h:86

R600Subtarget(const Triple &TT, StringRef CPU, StringRef FS, const TargetMachine &TM)

unsigned getWavesPerEUForWorkGroup(unsigned FlatWorkGroupSize) const override

Definition R600Subtarget.h:152

const R600FrameLowering * getFrameLowering() const override

Definition R600Subtarget.h:53

bool hasCaymanISA() const

Definition R600Subtarget.h:105

bool requiresDisjointEarlyClobberAndUndef() const override

Definition R600Subtarget.h:162

unsigned getMinWavesPerEU() const override

Definition R600Subtarget.h:158

bool hasCARRY() const

Definition R600Subtarget.h:101

const R600TargetLowering * getTargetLowering() const override

Definition R600Subtarget.h:57

const R600RegisterInfo * getRegisterInfo() const override

Definition R600Subtarget.h:61

~R600Subtarget() override

const R600InstrInfo * getInstrInfo() const override

Definition R600Subtarget.h:51

const SelectionDAGTargetInfo * getSelectionDAGInfo() const override

bool enableSubRegLiveness() const override

Definition R600Subtarget.h:129

R600Subtarget & initializeSubtargetDependencies(const Triple &TT, StringRef GPU, StringRef FS)

bool hasBCNT(unsigned Size) const

Definition R600Subtarget.h:90

bool hasBORROW() const

Definition R600Subtarget.h:97

bool hasFFBL() const

Definition R600Subtarget.h:109

Align getStackAlignment() const

Definition R600Subtarget.h:77

bool hasBFE() const

Definition R600Subtarget.h:82

Generation getGeneration() const

Definition R600Subtarget.h:73

void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)

const InstrItineraryData * getInstrItineraryData() const override

Definition R600Subtarget.h:65

bool enableMachineScheduler() const override

Definition R600Subtarget.h:125

Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...

StringRef - Represent a constant reference to a string, i.e.

Primary interface to the complete machine description for the target machine.

Triple - Helper class for working with autoconf configuration names.

unsigned getWavesPerEUForWorkGroup(const MCSubtargetInfo *STI, unsigned FlatWorkGroupSize)

unsigned getMaxWorkGroupsPerCU(const MCSubtargetInfo *STI, unsigned FlatWorkGroupSize)

unsigned getMaxFlatWorkGroupSize(const MCSubtargetInfo *STI)

unsigned getMinFlatWorkGroupSize(const MCSubtargetInfo *STI)

unsigned getMinWavesPerEU(const MCSubtargetInfo *STI)

This is an optimization pass for GlobalISel generic memory operations.

This struct is a compact representation of a valid (non-zero power of two) alignment.