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
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
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.