LLVM 24.0.0git
X86.h
Go to the documentation of this file.
1//===-- X86.h - Top-level interface for X86 representation ------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file contains the entry points for global functions defined in the x86
10// target library, as used by the LLVM JIT.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_LIB_TARGET_X86_X86_H
15#define LLVM_LIB_TARGET_X86_X86_H
16
19#include "llvm/IR/Analysis.h"
20#include "llvm/IR/Module.h"
21#include "llvm/IR/PassManager.h"
22#include "llvm/PassInfo.h"
25
27struct LVIThunkInserter;
28
29namespace llvm {
30
31class FunctionPass;
33class MachineFunction;
34class PassRegistry;
36class X86Subtarget;
38
39/// This pass converts a legalized DAG into a X86-specific DAG, ready for
40/// instruction scheduling.
45
47
48/// This pass initializes a global base register for PIC on x86-32.
50 : public OptionalPassInfoMixin<X86GlobalBaseRegPass> {
51public:
54};
55
57
58/// This pass combines multiple accesses to local-dynamic TLS variables so that
59/// the TLS base address for the module is only fetched once per execution path
60/// through the function.
62 : public OptionalPassInfoMixin<X86CleanupLocalDynamicTLSPass> {
63public:
66};
67
69
70/// This function returns a pass which converts floating-point register
71/// references and pseudo instructions into floating-point stack references and
72/// physical instructions.
73class X86FPStackifierPass : public OptionalPassInfoMixin<X86FPStackifierPass> {
74public:
77};
78
80
81/// This pass aligns the code so that it conforms to the LFI sandboxing rules.
82class X86LFIRewritePass : public RequiredPassInfoMixin<X86LFIRewritePass> {
83public:
86};
87
89
90/// This pass inserts AVX vzeroupper instructions before each call to avoid
91/// transition penalty between functions encoded with AVX and SSE.
93 : public OptionalPassInfoMixin<X86InsertVZeroUpperPass> {
94public:
97};
98
100/// This pass inserts ENDBR instructions before indirect jump/call
101/// destinations as part of CET IBT mechanism.
103 : public OptionalPassInfoMixin<X86IndirectBranchTrackingPass> {
104public:
107};
108
110
111/// Return a pass that pads short functions with NOOPs.
112/// This will prevent a stall when returning on the Atom.
114 : public OptionalPassInfoMixin<X86PadShortFunctionsPass> {
115public:
118};
119
121
122/// Return a pass that selectively replaces certain instructions (like add,
123/// sub, inc, dec, some shifts, and some multiplies) by equivalent LEA
124/// instructions, in order to eliminate execution delays in some processors.
125class X86FixupLEAsPass : public OptionalPassInfoMixin<X86FixupLEAsPass> {
126public:
129};
130
132
133/// Return a pass that replaces equivalent slower instructions with faster
134/// ones.
136 : public OptionalPassInfoMixin<X86FixupInstTuningPass> {
137public:
140};
141
143
144/// Return a pass that reduces the size of vector constant pool loads.
146 : public OptionalPassInfoMixin<X86FixupVectorConstantsPass> {
147public:
150};
151
153
154/// Return a pass that removes redundant LEA instructions and redundant address
155/// recalculations.
156class X86OptimizeLEAsPass : public OptionalPassInfoMixin<X86OptimizeLEAsPass> {
157public:
160};
161
163
164/// Return a pass that transforms setcc + movzx pairs into xor + setcc.
165class X86FixupSetCCPass : public OptionalPassInfoMixin<X86FixupSetCCPass> {
166public:
169};
170
172
173/// Return a pass that avoids creating store forward block issues in the
174/// hardware.
176 : public OptionalPassInfoMixin<X86AvoidStoreForwardingBlocksPass> {
177public:
180};
181
183
184/// Return a pass that lowers EFLAGS copy pseudo instructions.
186 : public OptionalPassInfoMixin<X86FlagsCopyLoweringPass> {
187public:
190};
191
193
194/// Return a pass that expands DynAlloca pseudo-instructions.
196 : public OptionalPassInfoMixin<X86DynAllocaExpanderPass> {
197public:
200};
201
203
204/// Return a pass that config the tile registers.
205class X86TileConfigPass : public OptionalPassInfoMixin<X86TileConfigPass> {
206public:
209};
210
212
213/// Return a pass that preconfig the tile registers before fast reg allocation.
215 : public OptionalPassInfoMixin<X86FastPreTileConfigPass> {
216public:
219};
220
222
223/// Return a pass that config the tile registers after fast reg allocation.
225 : public OptionalPassInfoMixin<X86FastTileConfigPass> {
226public:
229};
230
232
233/// Return a pass that insert pseudo tile config instruction.
235 : public OptionalPassInfoMixin<X86PreTileConfigPass> {
236public:
239};
240
242
243/// Return a pass that lower the tile copy instruction.
245 : public OptionalPassInfoMixin<X86LowerTileCopyPass> {
246public:
249};
250
252
253/// Return a pass that inserts int3 at the end of the function if it ends with a
254/// CALL instruction. The pass does the same for each funclet as well. This
255/// ensures that the open interval of function start and end PCs contains all
256/// return addresses for the benefit of the Windows x64 unwinder.
258 : public RequiredPassInfoMixin<X86AvoidTrailingCallPass> {
259public:
262};
263
265
266/// Return a pass that optimizes the code-size of x86 call sequences. This is
267/// done by replacing esp-relative movs with pushes.
269 : public OptionalPassInfoMixin<X86CallFrameOptimizationPass> {
270public:
273};
274
276
277/// Return an IR pass that inserts EH registration stack objects and explicit
278/// EH state updates. This pass must run after EH preparation, which does
279/// Windows-specific but architecture-neutral preparation.
280class X86WinEHStatePass : public OptionalPassInfoMixin<X86WinEHStatePass> {
281public:
282 X86WinEHStatePass() = default;
284};
285
287
288/// Return a Machine IR pass that expands X86-specific pseudo
289/// instructions into a sequence of actual instructions. This pass
290/// must run after prologue/epilogue insertion and before lowering
291/// the MachineInstr to MC.
292class X86ExpandPseudoPass : public OptionalPassInfoMixin<X86ExpandPseudoPass> {
293public:
296};
297
299
300/// This pass converts X86 cmov instructions into branch when profitable.
302 : public OptionalPassInfoMixin<X86CmovConversionPass> {
303public:
306};
307
309
310/// Return a Machine IR pass that selectively replaces
311/// certain byte and word instructions by equivalent 32 bit instructions,
312/// in order to eliminate partial register usage, false dependences on
313/// the upper portions of registers, and to save code size.
314class X86FixupBWInstsPass : public OptionalPassInfoMixin<X86FixupBWInstsPass> {
315public:
318};
319
321
322/// Return a Machine IR pass that reassigns instruction chains from one domain
323/// to another, when profitable.
325 : public OptionalPassInfoMixin<X86DomainReassignmentPass> {
326public:
329};
330
332
333/// This pass compress instructions from EVEX space to legacy/VEX/EVEX space when
334/// possible in order to reduce code size or facilitate HW decoding.
335class X86CompressEVEXPass : public OptionalPassInfoMixin<X86CompressEVEXPass> {
336public:
339};
340
342
343/// This pass creates the thunks for the retpoline feature.
345 : public RequiredPassInfoMixin<X86IndirectThunksPass> {
346 std::unique_ptr<RetpolineThunkInserter> RetpolineInserter;
347 std::unique_ptr<LVIThunkInserter> LVIInserter;
348
349public:
353
356};
357
359
360/// This pass replaces ret instructions with jmp's to __x86_return thunk.
361class X86ReturnThunksPass : public OptionalPassInfoMixin<X86ReturnThunksPass> {
362public:
365};
366
368
369/// This pass insert wait instruction after X87 instructions which could raise
370/// fp exceptions when strict-fp enabled.
372 : public OptionalPassInfoMixin<X86InsertX87WaitPass> {
373public:
375};
376
378
379/// This pass optimizes arithmetic based on knowledge that is only used by
380/// a reduction sequence and is therefore safe to reassociate in interesting
381/// ways.
383 : public OptionalPassInfoMixin<X86PartialReductionPass> {
384private:
385 const X86TargetMachine *TM;
386
387public:
390};
391
393
394/// Return a pass that inserts sfence intrinsics between non-temporal stores and
395/// potential synchronization points (or function returns).
397 : public RequiredPassInfoMixin<X86FenceNonTemporalStoresPass> {
398private:
399 const X86TargetMachine *TM;
400
401public:
403 : TM(TM) {}
405};
406
408
409/// // Analyzes and emits pseudos to support Win x64 Unwind V2.
411 : public OptionalPassInfoMixin<X86WinEHUnwindV2Pass> {
412public:
416};
417
419
420/// The pass transforms load/store <256 x i32> to AMX load/store intrinsics
421/// or split the data to two <128 x i32>.
422class X86LowerAMXTypePass : public RequiredPassInfoMixin<X86LowerAMXTypePass> {
423private:
424 const TargetMachine *TM;
425
426public:
427 X86LowerAMXTypePass(const TargetMachine *TM) : TM(TM) {}
429};
430
431FunctionPass *createX86LowerAMXTypeLegacyPass();
432
433// Suppresses APX features for relocations for supporting older linkers.
435 : public OptionalPassInfoMixin<X86SuppressAPXForRelocationPass> {
436public:
439};
440
442
443/// The pass transforms amx intrinsics to scalar operation if the function has
444/// optnone attribute or it is O0.
446 : public RequiredPassInfoMixin<X86LowerAMXIntrinsicsPass> {
447private:
448 const TargetMachine *TM;
449
450public:
453};
454
456
457/// Capacity check and sub-fragment splitting for Win x64 Unwind V3.
459
460/// Returns true when \p MF must use Windows x64 Unwind V3: the module is in V3
461/// mode, or the function needs an unwind table and may use EGPR (R16-R31),
462/// which V1/V2 cannot encode. Shared by frame lowering and the WinEH Unwind
463/// V2/V3 passes so their decisions cannot disagree.
465
467 const X86Subtarget &,
468 const X86RegisterBankInfo &);
469
471 : public OptionalPassInfoMixin<X86PostLegalizerCombinerPass> {
472public:
475};
476
478
480 : public RequiredPassInfoMixin<X86PreLegalizerCombinerPass> {
481public:
484};
485
487
489 : public OptionalPassInfoMixin<X86LoadValueInjectionLoadHardeningPass> {
490public:
493};
494
496
498 : public OptionalPassInfoMixin<X86LoadValueInjectionRetHardeningPass> {
499public:
502};
503
505
507 : public OptionalPassInfoMixin<
508 X86SpeculativeExecutionSideEffectSuppressionPass> {
509public:
512};
513
515
517 : public OptionalPassInfoMixin<X86SpeculativeLoadHardeningPass> {
518public:
521};
522
524
526 : public OptionalPassInfoMixin<X86ArgumentStackSlotPass> {
527public:
530};
531
533
567 PassRegistry &);
575
576namespace X86AS {
577enum : unsigned {
578 GS = 256,
579 FS = 257,
580 SS = 258,
583 PTR64 = 272
584};
585} // End X86AS namespace
586
587} // End llvm namespace
588
589#endif
Module.h This file contains the declarations for the Module class.
This header defines various interfaces for pass management in LLVM.
#define F(x, y, z)
Definition MD5.cpp:54
FunctionAnalysisManager FAM
ModuleAnalysisManager MAM
FunctionPass class - This class is used to implement most global optimizations.
Definition Pass.h:312
A Module instance is used to store all the information related to an LLVM module.
Definition Module.h:68
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.
Definition Analysis.h:112
SelectionDAGISelPass(std::unique_ptr< SelectionDAGISel > Selector)
Primary interface to the complete machine description for the target machine.
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that avoids creating store forward block issues in the hardware.
Definition X86.h:176
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that inserts int3 at the end of the function if it ends with a CALL instruction.
Definition X86.h:258
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that optimizes the code-size of x86 call sequences.
Definition X86.h:269
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
This pass combines multiple accesses to local-dynamic TLS variables so that the TLS base address for ...
Definition X86.h:62
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
This pass converts X86 cmov instructions into branch when profitable.
Definition X86.h:302
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
This pass compress instructions from EVEX space to legacy/VEX/EVEX space when possible in order to re...
Definition X86.h:335
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a Machine IR pass that reassigns instruction chains from one domain to another,...
Definition X86.h:325
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that expands DynAlloca pseudo-instructions.
Definition X86.h:196
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a Machine IR pass that expands X86-specific pseudo instructions into a sequence of actual inst...
Definition X86.h:292
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
This function returns a pass which converts floating-point register references and pseudo instruction...
Definition X86.h:73
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that preconfig the tile registers before fast reg allocation.
Definition X86.h:215
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that config the tile registers after fast reg allocation.
Definition X86.h:225
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
X86FenceNonTemporalStoresPass(const X86TargetMachine *TM=nullptr)
Definition X86.h:402
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
Return a Machine IR pass that selectively replaces certain byte and word instructions by equivalent 3...
Definition X86.h:314
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that replaces equivalent slower instructions with faster ones.
Definition X86.h:136
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that selectively replaces certain instructions (like add, sub, inc, dec,...
Definition X86.h:125
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that transforms setcc + movzx pairs into xor + setcc.
Definition X86.h:165
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that reduces the size of vector constant pool loads.
Definition X86.h:146
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that lowers EFLAGS copy pseudo instructions.
Definition X86.h:186
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
This pass initializes a global base register for PIC on x86-32.
Definition X86.h:50
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
X86ISelDAGToDAGPass(X86TargetMachine &TM)
This pass inserts ENDBR instructions before indirect jump/call destinations as part of CET IBT mechan...
Definition X86.h:103
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
X86IndirectThunksPass(X86IndirectThunksPass &&)
This pass inserts AVX vzeroupper instructions before each call to avoid transition penalty between fu...
Definition X86.h:93
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
This pass insert wait instruction after X87 instructions which could raise fp exceptions when strict-...
Definition X86.h:372
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &)
This pass aligns the code so that it conforms to the LFI sandboxing rules.
Definition X86.h:82
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
X86LowerAMXIntrinsicsPass(const TargetMachine *TM)
Definition X86.h:451
X86LowerAMXTypePass(const TargetMachine *TM)
Definition X86.h:427
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
Return a pass that lower the tile copy instruction.
Definition X86.h:245
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that removes redundant LEA instructions and redundant address recalculations.
Definition X86.h:156
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that pads short functions with NOOPs.
Definition X86.h:114
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
X86PartialReductionPass(const X86TargetMachine *TM)
Definition X86.h:388
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that insert pseudo tile config instruction.
Definition X86.h:235
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
This class provides the information for the target register banks.
This pass replaces ret instructions with jmp's to __x86_return thunk.
Definition X86.h:361
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Return a pass that config the tile registers.
Definition X86.h:205
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Pass manager infrastructure for declaring and invalidating analyses.
@ PTR32_UPTR
Definition X86.h:582
@ PTR64
Definition X86.h:583
@ PTR32_SPTR
Definition X86.h:581
This is an optimization pass for GlobalISel generic memory operations.
FunctionPass * createX86WinEHUnwindV3Pass()
Capacity check and sub-fragment splitting for Win x64 Unwind V3.
void initializeX86LoadValueInjectionLoadHardeningLegacyPass(PassRegistry &)
FunctionPass * createX86LowerAMXIntrinsicsLegacyPass()
FunctionPass * createX86CompressEVEXLegacyPass()
FunctionPass * createX86FastTileConfigLegacyPass()
void initializeX86PartialReductionLegacyPass(PassRegistry &)
FunctionPass * createX86DomainReassignmentLegacyPass()
FunctionPass * createX86ExpandPseudoLegacyPass()
Returns an instance of the pseudo instruction expansion pass.
FunctionPass * createX86OptimizeLEAsLegacyPass()
void initializeCompressEVEXLegacyPass(PassRegistry &)
void initializeX86PostLegalizerCombinerLegacyPass(PassRegistry &)
FunctionPass * createX86DynAllocaExpanderLegacyPass()
void initializeX86DomainReassignmentLegacyPass(PassRegistry &)
FunctionPass * createX86TileConfigLegacyPass()
FunctionPass * createX86AvoidStoreForwardingBlocksLegacyPass()
void initializeX86LowerAMXIntrinsicsLegacyPassPass(PassRegistry &)
FunctionPass * createX86InsertX87WaitLegacyPass()
FunctionPass * createX86PartialReductionLegacyPass()
void initializeX86CmovConversionLegacyPass(PassRegistry &)
AnalysisManager< MachineFunction > MachineFunctionAnalysisManager
void initializeX86DynAllocaExpanderLegacyPass(PassRegistry &)
FunctionPass * createX86FixupSetCCLegacyPass()
FunctionPass * createX86FenceNonTemporalStoresLegacyPass()
void initializeX86FastPreTileConfigLegacyPass(PassRegistry &)
FunctionPass * createX86IndirectThunksLegacyPass()
FunctionPass * createX86SpeculativeExecutionSideEffectSuppressionLegacyPass()
FunctionPass * createX86LoadValueInjectionLoadHardeningLegacyPass()
void initializeX86IndirectBranchTrackingLegacyPass(PassRegistry &)
void initializeX86FastTileConfigLegacyPass(PassRegistry &)
void initializeX86FixupVectorConstantsLegacyPass(PassRegistry &)
FunctionPass * createX86IndirectBranchTrackingLegacyPass()
void initializeX86AsmPrinterPass(PassRegistry &)
FunctionPass * createX86LowerTileCopyLegacyPass()
void initializeX86ExpandPseudoLegacyPass(PassRegistry &)
FunctionPass * createX86CmovConversionLegacyPass()
FunctionPass * createX86ArgumentStackSlotLegacyPass()
void initializeX86SpeculativeExecutionSideEffectSuppressionLegacyPass(PassRegistry &)
FunctionPass * createX86PadShortFunctionsLegacyPass()
void initializeX86FixupInstTuningLegacyPass(PassRegistry &)
void initializeX86FlagsCopyLoweringLegacyPass(PassRegistry &)
FunctionPass * createX86PostLegalizerCombinerLegacy()
void initializeX86AvoidTrailingCallLegacyPassPass(PassRegistry &)
FunctionPass * createX86ISelDag(X86TargetMachine &TM, CodeGenOptLevel OptLevel)
This pass converts a legalized DAG into a X86-specific DAG, ready for instruction scheduling.
bool requireWinX64UnwindV3(const MachineFunction &MF)
Returns true when MF must use Windows x64 Unwind V3: the module is in V3 mode, or the function needs ...
FunctionPass * createX86FixupLEAsLegacyPass()
FunctionPass * createX86LFIRewritePass()
FunctionPass * createX86CallFrameOptimizationLegacyPass()
CodeGenOptLevel
Code generation optimization level.
Definition CodeGen.h:280
void initializeX86CallFrameOptimizationLegacyPass(PassRegistry &)
FunctionPass * createX86FlagsCopyLoweringLegacyPass()
FunctionPass * createCleanupLocalDynamicTLSLegacyPass()
void initializeX86FixupBWInstLegacyPass(PassRegistry &)
void initializeX86LoadValueInjectionRetHardeningLegacyPass(PassRegistry &)
void initializeX86FPStackifierLegacyPass(PassRegistry &)
void initializeX86LowerTileCopyLegacyPass(PassRegistry &)
void initializeX86SpeculativeLoadHardeningLegacyPass(PassRegistry &)
void initializeX86TileConfigLegacyPass(PassRegistry &)
void initializeFixupLEAsLegacyPass(PassRegistry &)
FunctionPass * createX86PreTileConfigLegacyPass()
FunctionPass * createX86InsertVZeroUpperLegacyPass()
FunctionPass * createX86SpeculativeLoadHardeningLegacyPass()
void initializeX86LowerAMXTypeLegacyPassPass(PassRegistry &)
FunctionPass * createX86ReturnThunksLegacyPass()
void initializeX86ArgumentStackSlotLegacyPass(PassRegistry &)
FunctionPass * createX86FixupBWInstsLegacyPass()
FunctionPass * createX86PreLegalizerCombinerLegacy()
FunctionPass * createX86FPStackifierLegacyPass()
void initializeX86PreTileConfigLegacyPass(PassRegistry &)
FunctionPass * createX86SuppressAPXForRelocationLegacyPass()
FunctionPass * createX86FastPreTileConfigLegacyPass()
FunctionPass * createX86LoadValueInjectionRetHardeningLegacyPass()
FunctionPass * createX86LowerAMXTypeLegacyPass()
void initializeX86WinEHUnwindV3Pass(PassRegistry &)
void initializeX86ReturnThunksLegacyPass(PassRegistry &)
void initializeX86PreLegalizerCombinerLegacyPass(PassRegistry &)
void initializeX86SuppressAPXForRelocationLegacyPass(PassRegistry &)
FunctionPass * createX86WinEHStateLegacyPass()
void initializeX86FenceNonTemporalStoresLegacyPass(PassRegistry &)
FunctionPass * createX86FixupVectorConstantsLegacyPass()
void initializeX86FixupSetCCLegacyPass(PassRegistry &)
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
void initializeWinEHStateLegacyPass(PassRegistry &)
FunctionPass * createX86WinEHUnwindV2LegacyPass()
FunctionPass * createX86FixupInstTuningLegacyPass()
void initializeX86DAGToDAGISelLegacyPass(PassRegistry &)
void initializeX86OptimizeLEAsLegacyPass(PassRegistry &)
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
Definition MIRParser.h:39
void initializeX86AvoidSFBLegacyPass(PassRegistry &)
void initializeX86WinEHUnwindV2LegacyPass(PassRegistry &)
FunctionPass * createX86AvoidTrailingCallLegacyPass()
InstructionSelector * createX86InstructionSelector(const X86TargetMachine &TM, const X86Subtarget &, const X86RegisterBankInfo &)
FunctionPass * createX86GlobalBaseRegLegacyPass()
A CRTP mix-in for passes that can be skipped.
A CRTP mix-in for passes that should not be skipped.