LLVM: lib/Target/M68k/M68kSubtarget.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_LIB_TARGET_M68K_M68KSUBTARGET_H

15#define LLVM_LIB_TARGET_M68K_M68KSUBTARGET_H

16

20

29

30#define GET_SUBTARGETINFO_HEADER

31#include "M68kGenSubtargetInfo.inc"

32

35

36namespace llvm {

37class StringRef;

38

39class M68kTargetMachine;

40

42 virtual void anchor();

43

44protected:

45

46

47

50

52 std::optional FPUKind;

53

55

57

58

60

62

66

67

68

70

72

73public:

74

75

78

80

81

82

84

91

92

96

98

100

102

103

105

107

109 assert(R < M68k::NUM_TARGET_REGS && "Register out of range");

111 }

112

113

114

116

117

118

120 const Module &M) const;

122

123

124

126

127

129 const Module &M) const;

130 unsigned char

132

133

134

136

138

139

141

142

144

148

150

154

156 return &InstrInfo.getRegisterInfo();

157 }

158

162

166

167protected:

168

169 std::unique_ptr TSInfo;

170

171

176

177public:

183};

184}

185

186#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

This file describes how to lower LLVM calls to machine code calls.

Interface for Targets to specify which operations they can successfully select and how the others sho...

This file contains the M68k declaration of TargetFrameLowering class.

This file defines the interfaces that M68k uses to lower LLVM code into a selection DAG.

This file contains the M68k implementation of the TargetInstrInfo class.

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

Definition M68kSubtarget.h:41

FPKindEnum

Definition M68kSubtarget.h:51

@ M882

Definition M68kSubtarget.h:51

@ M881

Definition M68kSubtarget.h:51

Align getStackAlignment() const

TODO this must be controlled by options like -malign-int and -mshort.

Definition M68kSubtarget.h:140

unsigned char classifyExternalReference(const Module &M) const

Classify a external variable reference for the current subtarget according to how we should reference...

bool atLeastM68882() const

Definition M68kSubtarget.h:95

InstrItineraryData InstrItins

Definition M68kSubtarget.h:56

const M68kTargetLowering * getTargetLowering() const override

Definition M68kSubtarget.h:159

bool atLeastM68060() const

Definition M68kSubtarget.h:90

std::optional< FPKindEnum > FPUKind

Definition M68kSubtarget.h:52

M68kSubtarget(const Triple &TT, StringRef CPU, StringRef FS, const M68kTargetMachine &_TM)

This constructor initializes the data members to match that of the specified triple.

SubtargetEnum SubtargetKind

Definition M68kSubtarget.h:49

bool atLeastM68040() const

Definition M68kSubtarget.h:89

SubtargetEnum

Definition M68kSubtarget.h:48

@ M30

Definition M68kSubtarget.h:48

@ M60

Definition M68kSubtarget.h:48

@ M40

Definition M68kSubtarget.h:48

@ M20

Definition M68kSubtarget.h:48

@ M00

Definition M68kSubtarget.h:48

@ M10

Definition M68kSubtarget.h:48

unsigned char classifyBlockAddressReference() const

Classify a blockaddress reference for the current subtarget according to how we should reference it i...

const LegalizerInfo * getLegalizerInfo() const override

M68kInstrInfo InstrInfo

Definition M68kSubtarget.h:63

std::unique_ptr< const SelectionDAGTargetInfo > TSInfo

Definition M68kSubtarget.h:169

const InstrItineraryData * getInstrItineraryData() const override

Definition M68kSubtarget.h:163

std::bitset< M68k::NUM_TARGET_REGS > UserReservedRegister

Definition M68kSubtarget.h:54

const RegisterBankInfo * getRegBankInfo() const override

bool UseSmallSection

Small section is used.

Definition M68kSubtarget.h:59

bool isLegalToCallImmediateAddr() const

Return true if the subtarget allows calls to immediate address.

std::unique_ptr< CallLowering > CallLoweringInfo

Definition M68kSubtarget.h:172

bool atLeastM68881() const

Definition M68kSubtarget.h:94

const SelectionDAGTargetInfo * getSelectionDAGInfo() const override

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

Parses features string setting specified subtarget options.

const M68kTargetMachine & TM

Definition M68kSubtarget.h:61

bool hasFPU() const

Floating point support.

Definition M68kSubtarget.h:93

unsigned getSlotSize() const

getSlotSize - Stack slot size in bytes.

Definition M68kSubtarget.h:143

const Triple & getTargetTriple() const

Definition M68kSubtarget.h:99

M68kTargetLowering TLInfo

Definition M68kSubtarget.h:65

const M68kInstrInfo * getInstrInfo() const override

Definition M68kSubtarget.h:149

unsigned char classifyGlobalReference(const GlobalValue *GV, const Module &M) const

Classify a global variable reference for the current subtarget according to how we should reference i...

bool atLeastM68000() const

Definition M68kSubtarget.h:85

const CallLowering * getCallLowering() const override

unsigned getJumpTableEncoding() const

InstructionSelector * getInstructionSelector() const override

bool useSmallSection() const

Definition M68kSubtarget.h:97

bool atLeastM68010() const

Definition M68kSubtarget.h:86

~M68kSubtarget() override

std::unique_ptr< RegisterBankInfo > RegBankInfo

Definition M68kSubtarget.h:175

unsigned char classifyLocalReference(const GlobalValue *GV) const

Classify a global variable reference for the current subtarget according to how we should reference i...

bool isRegisterReservedByUser(Register R) const override

Definition M68kSubtarget.h:108

unsigned stackAlignment

The minimum alignment known to hold of the stack frame on entry to the function and which must be mai...

Definition M68kSubtarget.h:69

const M68kRegisterInfo * getRegisterInfo() const override

Definition M68kSubtarget.h:155

Triple TargetTriple

Definition M68kSubtarget.h:71

std::unique_ptr< LegalizerInfo > Legalizer

Definition M68kSubtarget.h:174

bool atLeastM68020() const

Definition M68kSubtarget.h:87

bool isPositionIndependent() const

M68kSubtarget & initializeSubtargetDependencies(StringRef CPU, Triple TT, StringRef FS, const M68kTargetMachine &TM)

M68kFrameLowering FrameLowering

Definition M68kSubtarget.h:64

bool atLeastM68030() const

Definition M68kSubtarget.h:88

unsigned char classifyGlobalFunctionReference(const GlobalValue *GV, const Module &M) const

Classify a global function reference for the current subtarget.

bool isTargetELF() const

Definition M68kSubtarget.h:101

std::unique_ptr< InstructionSelector > InstSelector

Definition M68kSubtarget.h:173

const M68kFrameLowering * getFrameLowering() const override

Definition M68kSubtarget.h:151

A Module instance is used to store all the information related to an LLVM module.

Holds all the information related to register banks.

Wrapper class representing virtual and physical registers.

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

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

Triple - Helper class for working with autoconf configuration names.

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.