LLVM: lib/Target/X86/X86.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_LIB_TARGET_X86_X86_H
15#define LLVM_LIB_TARGET_X86_X86_H
16
22
23namespace llvm {
24
31
32
33
35
36
38
39
40
41
43
44
45
46
52
54
55
56
58
59
60
62
63
64
66
67
68
69
71
72
73
75
76
78
79
80
82
83
85
86
88
89
91
92
94 : public PassInfoMixin {
95public:
98};
99
101
102
104
105
107
108
110
111
113
114
116
117
118
119
120
122 : public PassInfoMixin {
123public:
127};
128
130
131
132
134
135
136
137
139
140
141
142
143
145
146
148
149
150
151
152
154
155
156
158
159
160
162
163
165
166
168
169
170
172
173
174
175
177private:
179
180public:
183};
184
186
187
189
190
191
193private:
195
196public:
200};
201
203
204
205
207 : public PassInfoMixin {
208private:
210
211public:
215};
216
218
220 const X86Subtarget &,
221 const X86RegisterBankInfo &);
222
229
266
268enum : unsigned {
275};
276}
277
278}
279
280#endif
This header defines various interfaces for pass management in LLVM.
FunctionAnalysisManager FAM
FunctionPass class - This class is used to implement most global optimizations.
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
A set of analyses that are preserved following a run of a transformation pass.
Primary interface to the complete machine description for the target machine.
Return a pass that inserts int3 at the end of the function if it ends with a CALL instruction.
Definition X86.h:122
static bool isRequired()
Definition X86.h:126
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that expands DynAlloca pseudo-instructions.
Definition X86.h:94
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
This function returns a pass which converts floating-point register references and pseudo instruction...
Definition X86.h:47
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
X86LowerAMXIntrinsicsPass(const TargetMachine *TM)
Definition X86.h:212
static bool isRequired()
Definition X86.h:214
X86LowerAMXTypePass(const TargetMachine *TM)
Definition X86.h:197
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
static bool isRequired()
Definition X86.h:199
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
X86PartialReductionPass(const X86TargetMachine *TM)
Definition X86.h:181
This class provides the information for the target register banks.
Pass manager infrastructure for declaring and invalidating analyses.
@ PTR32_UPTR
Definition X86.h:273
@ PTR64
Definition X86.h:274
@ PTR32_SPTR
Definition X86.h:272
This is an optimization pass for GlobalISel generic memory operations.
FunctionPass * createX86WinEHStatePass()
Return an IR pass that inserts EH registration stack objects and explicit EH state updates.
void initializeX86TileConfigPass(PassRegistry &)
FunctionPass * createX86LowerAMXIntrinsicsLegacyPass()
void initializeX86PartialReductionLegacyPass(PassRegistry &)
FunctionPass * createX86SuppressAPXForRelocationPass()
void initializeX86CallFrameOptimizationPass(PassRegistry &)
void initializeFixupBWInstPassPass(PassRegistry &)
void initializeX86LoadValueInjectionRetHardeningPassPass(PassRegistry &)
FunctionPass * createX86LoadValueInjectionLoadHardeningPass()
FunctionPass * createX86IssueVZeroUpperPass()
This pass inserts AVX vzeroupper instructions before each call to avoid transition penalty between fu...
void initializeX86ArgumentStackSlotPassPass(PassRegistry &)
void initializeX86SpeculativeLoadHardeningPassPass(PassRegistry &)
FunctionPass * createX86DynAllocaExpanderLegacyPass()
void initializeWinEHStatePassPass(PassRegistry &)
FunctionPass * createX86GlobalBaseRegPass()
This pass initializes a global base register for PIC on x86-32.
FunctionPass * createX86FixupBWInsts()
Return a Machine IR pass that selectively replaces certain byte and word instructions by equivalent 3...
void initializeX86LowerAMXIntrinsicsLegacyPassPass(PassRegistry &)
FunctionPass * createX86DomainReassignmentPass()
Return a Machine IR pass that reassigns instruction chains from one domain to another,...
FunctionPass * createX86LoadValueInjectionRetHardeningPass()
FunctionPass * createX86SpeculativeExecutionSideEffectSuppression()
FunctionPass * createX86PartialReductionLegacyPass()
AnalysisManager< MachineFunction > MachineFunctionAnalysisManager
FunctionPass * createCleanupLocalDynamicTLSPass()
This pass combines multiple accesses to local-dynamic TLS variables so that the TLS base address for ...
FunctionPass * createX86FlagsCopyLoweringPass()
Return a pass that lowers EFLAGS copy pseudo instructions.
void initializeX86DynAllocaExpanderLegacyPass(PassRegistry &)
void initializeX86FastTileConfigPass(PassRegistry &)
FunctionPass * createX86CompressEVEXPass()
This pass compress instructions from EVEX space to legacy/VEX/EVEX space when possible in order to re...
void initializeX86ExpandPseudoPass(PassRegistry &)
FunctionPass * createX86ArgumentStackSlotPass()
void initializeX86PreTileConfigPass(PassRegistry &)
FunctionPass * createX86CmovConverterPass()
This pass converts X86 cmov instructions into branch when profitable.
FunctionPass * createX86TileConfigPass()
Return a pass that config the tile registers.
FunctionPass * createX86PadShortFunctions()
Return a pass that pads short functions with NOOPs.
void initializeX86DomainReassignmentPass(PassRegistry &)
void initializeX86LoadValueInjectionLoadHardeningPassPass(PassRegistry &)
void initializeX86SuppressAPXForRelocationPassPass(PassRegistry &)
FunctionPass * createX86FastPreTileConfigPass()
Return a pass that preconfig the tile registers before fast reg allocation.
void initializeX86AvoidSFBPassPass(PassRegistry &)
FunctionPass * createX86LowerTileCopyPass()
Return a pass that lower the tile copy instruction.
void initializeX86FastPreTileConfigPass(PassRegistry &)
FunctionPass * createX86SpeculativeLoadHardeningPass()
FunctionPass * createX86FixupSetCC()
Return a pass that transforms setcc + movzx pairs into xor + setcc.
FunctionPass * createX86IndirectBranchTrackingPass()
This pass inserts ENDBR instructions before indirect jump/call destinations as part of CET IBT mechan...
void initializeX86AsmPrinterPass(PassRegistry &)
FunctionPass * createX86InsertX87waitPass()
This pass insert wait instruction after X87 instructions which could raise fp exceptions when strict-...
void initializeX86FixupSetCCPassPass(PassRegistry &)
FunctionPass * createX86ExpandPseudoPass()
Return a Machine IR pass that expands X86-specific pseudo instructions into a sequence of actual inst...
FunctionPass * createX86FixupInstTuning()
Return a pass that replaces equivalent slower instructions with faster ones.
void initializeX86AvoidTrailingCallLegacyPassPass(PassRegistry &)
void initializeX86WinEHUnwindV2Pass(PassRegistry &)
FunctionPass * createX86ISelDag(X86TargetMachine &TM, CodeGenOptLevel OptLevel)
This pass converts a legalized DAG into a X86-specific DAG, ready for instruction scheduling.
void initializeX86LowerTileCopyPass(PassRegistry &)
void initializeX86OptimizeLEAPassPass(PassRegistry &)
CodeGenOptLevel
Code generation optimization level.
FunctionPass * createX86FastTileConfigPass()
Return a pass that config the tile registers after fast reg allocation.
void initializeX86FPStackifierLegacyPass(PassRegistry &)
FunctionPass * createX86FixupLEAs()
Return a pass that selectively replaces certain instructions (like add, sub, inc, dec,...
void initializeX86FixupInstTuningPassPass(PassRegistry &)
void initializeX86LowerAMXTypeLegacyPassPass(PassRegistry &)
void initializeX86CmovConverterPassPass(PassRegistry &)
FunctionPass * createX86CallFrameOptimization()
Return a pass that optimizes the code-size of x86 call sequences.
FunctionPass * createX86FPStackifierLegacyPass()
void initializeX86FlagsCopyLoweringPassPass(PassRegistry &)
FunctionPass * createX86WinEHUnwindV2Pass()
// Analyzes and emits pseudos to support Win x64 Unwind V2.
FunctionPass * createX86LowerAMXTypeLegacyPass()
void initializeX86SpeculativeExecutionSideEffectSuppressionPass(PassRegistry &)
void initializeCompressEVEXPassPass(PassRegistry &)
FunctionPass * createX86OptimizeLEAs()
Return a pass that removes redundant LEA instructions and redundant address recalculations.
void initializeX86FixupVectorConstantsPassPass(PassRegistry &)
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
FunctionPass * createX86IndirectThunksPass()
This pass creates the thunks for the retpoline feature.
FunctionPass * createX86FixupVectorConstants()
Return a pass that reduces the size of vector constant pool loads.
void initializeX86ExecutionDomainFixPass(PassRegistry &)
FunctionPass * createX86PreTileConfigPass()
Return a pass that insert pseudo tile config instruction.
FunctionPass * createX86ReturnThunksPass()
This pass replaces ret instructions with jmp's to __x86_return thunk.
FunctionPass * createX86AvoidStoreForwardingBlocks()
Return a pass that avoids creating store forward block issues in the hardware.
void initializeX86ReturnThunksPass(PassRegistry &)
void initializeX86DAGToDAGISelLegacyPass(PassRegistry &)
void initializeFixupLEAPassPass(PassRegistry &)
FunctionPass * createX86AvoidTrailingCallLegacyPass()
InstructionSelector * createX86InstructionSelector(const X86TargetMachine &TM, const X86Subtarget &, const X86RegisterBankInfo &)
A CRTP mix-in to automatically provide informational APIs needed for passes.