LLVM 22.0.0git
AMDGPU.h
Go to the documentation of this file.
1//===-- AMDGPU.h - MachineFunction passes hw codegen --------------*- 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/// \file
8//===----------------------------------------------------------------------===//
9
10#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPU_H
11#define LLVM_LIB_TARGET_AMDGPU_AMDGPU_H
12
14#include "llvm/IR/PassManager.h"
15#include "llvm/Pass.h"
18
19namespace llvm {
20
21class AMDGPUTargetMachine;
22class GCNTargetMachine;
23class TargetMachine;
24
25// GlobalISel passes
35
36// SI Passes
54
70
71struct AMDGPUSimplifyLibCallsPass : PassInfoMixin<AMDGPUSimplifyLibCallsPass> {
74};
75
77 : PassInfoMixin<AMDGPUImageIntrinsicOptimizerPass> {
80
81private:
82 TargetMachine &TM;
83};
84
85struct AMDGPUUseNativeCallsPass : PassInfoMixin<AMDGPUUseNativeCallsPass> {
87};
88
89class SILowerI1CopiesPass : public PassInfoMixin<SILowerI1CopiesPass> {
90public:
94};
95
97
99
101
102// DPP/Iterative option enables the atomic optimizer with given strategy
103// whereas None disables the atomic optimizer.
104enum class ScanOptions { DPP, Iterative, None };
105FunctionPass *createAMDGPUAtomicOptimizerPass(ScanOptions ScanStrategy);
107extern char &AMDGPUAtomicOptimizerID;
108
112
116
120
122 : PassInfoMixin<AMDGPUPromoteKernelArgumentsPass> {
124};
125
129
131 : PassInfoMixin<AMDGPULowerKernelAttributesPass> {
133};
134
137
138struct AMDGPULowerModuleLDSPass : PassInfoMixin<AMDGPULowerModuleLDSPass> {
141
143};
144
147
149 : PassInfoMixin<AMDGPULowerBufferFatPointersPass> {
152
153private:
154 const TargetMachine &TM;
155};
156
158
159struct AMDGPULowerIntrinsicsPass : PassInfoMixin<AMDGPULowerIntrinsicsPass> {
162
163private:
164 const AMDGPUTargetMachine &TM;
165};
166
169
172
174extern char &AMDGPURewriteOutArgumentsID;
175
177extern char &GCNDPPCombineLegacyID;
178
180extern char &SIFoldOperandsLegacyID;
181
183extern char &SIPeepholeSDWALegacyID;
184
187
189extern char &SIFixSGPRCopiesLegacyID;
190
192extern char &SIFixVGPRCopiesID;
193
195extern char &SILowerWWMCopiesLegacyID;
196
198extern char &SILowerI1CopiesLegacyID;
199
202
204extern char &AMDGPURegBankSelectID;
205
207extern char &AMDGPURegBankLegalizeID;
208
210extern char &AMDGPUMarkLastScratchLoadID;
211
213extern char &SILowerSGPRSpillsLegacyID;
214
217
219extern char &SIWholeQuadModeID;
220
222extern char &SILowerControlFlowLegacyID;
223
225extern char &SIPreEmitPeepholeID;
226
228extern char &SILateBranchLoweringPassID;
229
232
235
238
241
243extern char &GCNRegPressurePrinterID;
244
247
250
251// Passes common to R600 and SI
254extern char &AMDGPUPromoteAllocaID;
255
256struct AMDGPUPromoteAllocaPass : PassInfoMixin<AMDGPUPromoteAllocaPass> {
259
260private:
261 TargetMachine &TM;
262};
263
265 : PassInfoMixin<AMDGPUPromoteAllocaToVectorPass> {
268
269private:
270 TargetMachine &TM;
271};
272
273struct AMDGPUAtomicOptimizerPass : PassInfoMixin<AMDGPUAtomicOptimizerPass> {
275 : TM(TM), ScanImpl(ScanImpl) {}
277
278private:
279 TargetMachine &TM;
280 ScanOptions ScanImpl;
281};
282
284 : public PassInfoMixin<AMDGPUInsertDelayAluPass> {
287};
288
291ModulePass *createAMDGPUAlwaysInlinePass(bool GlobalOpt = true);
292
293struct AMDGPUAlwaysInlinePass : PassInfoMixin<AMDGPUAlwaysInlinePass> {
294 AMDGPUAlwaysInlinePass(bool GlobalOpt = true) : GlobalOpt(GlobalOpt) {}
296
297private:
298 bool GlobalOpt;
299};
300
305
306struct AMDGPUSwLowerLDSPass : PassInfoMixin<AMDGPUSwLowerLDSPass> {
310};
311
313 : public PassInfoMixin<AMDGPUCodeGenPreparePass> {
314private:
315 TargetMachine &TM;
316
317public:
320};
321
323 : public PassInfoMixin<AMDGPULateCodeGenPreparePass> {
324private:
325 const GCNTargetMachine &TM;
326
327public:
330};
331
333 : public PassInfoMixin<AMDGPULowerKernelArgumentsPass> {
334private:
335 TargetMachine &TM;
336
337public:
340};
341
343 bool IsClosedWorld = false;
344};
345
346class AMDGPUAttributorPass : public PassInfoMixin<AMDGPUAttributorPass> {
347private:
348 TargetMachine &TM;
349
351
352 const ThinOrFullLTOPhase LTOPhase;
353
354public:
357 : TM(TM), Options(Options), LTOPhase(LTOPhase) {};
359};
360
362 : public PassInfoMixin<AMDGPUPreloadKernelArgumentsPass> {
363 const TargetMachine &TM;
364
365public:
366 explicit AMDGPUPreloadKernelArgumentsPass(const TargetMachine &TM) : TM(TM) {}
367
369};
370
372 : public PassInfoMixin<AMDGPUAnnotateUniformValuesPass> {
373public:
376};
377
378class SIModeRegisterPass : public PassInfoMixin<SIModeRegisterPass> {
379public:
382};
383
384class SIMemoryLegalizerPass : public PassInfoMixin<SIMemoryLegalizerPass> {
385public:
388 static bool isRequired() { return true; }
389};
390
391class GCNCreateVOPDPass : public PassInfoMixin<GCNCreateVOPDPass> {
392public:
395};
396
398 : public PassInfoMixin<AMDGPUMarkLastScratchLoadPass> {
399public:
402};
403
404class SIInsertWaitcntsPass : public PassInfoMixin<SIInsertWaitcntsPass> {
405public:
408 static bool isRequired() { return true; }
409};
410
411class SIInsertHardClausesPass : public PassInfoMixin<SIInsertHardClausesPass> {
412public:
415};
416
418 : public PassInfoMixin<SILateBranchLoweringPass> {
419public:
422 static bool isRequired() { return true; }
423};
424
425class SIPreEmitPeepholePass : public PassInfoMixin<SIPreEmitPeepholePass> {
426public:
429 static bool isRequired() { return true; }
430};
431
433 : public PassInfoMixin<AMDGPUSetWavePriorityPass> {
434public:
437};
438
440
444
447
449 : PassInfoMixin<AMDGPUPrintfRuntimeBindingPass> {
451};
452
455
458
461
463extern char &AMDGPUCodeGenPrepareID;
464
467
470
474
476 : public PassInfoMixin<AMDGPURewriteUndefForPHIPass> {
477public:
480};
481
483 : public PassInfoMixin<SIAnnotateControlFlowPass> {
484private:
485 const AMDGPUTargetMachine &TM;
486
487public:
490};
491
494
496extern char &SIMemoryLegalizerID;
497
499extern char &SIModeRegisterID;
500
502extern char &AMDGPUInsertDelayAluID;
503
505extern char &SIInsertHardClausesID;
506
508extern char &SIInsertWaitcntsID;
509
511extern char &SIFormMemoryClausesID;
512
514extern char &SIPostRABundlerLegacyID;
515
517extern char &GCNCreateVOPDID;
518
521
526
528
532
534extern char &GCNNSAReassignID;
535
537extern char &GCNPreRALongBranchRegID;
538
540extern char &GCNPreRAOptimizationsID;
541
544
546extern char &GCNRewritePartialRegUsesID;
547
550
552 : public PassInfoMixin<AMDGPURewriteAGPRCopyMFMAPass> {
553public:
557};
558
561
562namespace AMDGPU {
570
571static inline bool addrspacesMayAlias(unsigned AS1, unsigned AS2) {
573 return true;
574
575 // clang-format off
576 static const bool ASAliasRules[][AMDGPUAS::MAX_AMDGPU_ADDRESS + 1] = {
577 /* Flat Global Region Local Constant Private Const32 BufFatPtr BufRsrc BufStrdPtr */
578 /* Flat */ {true, true, false, true, true, true, true, true, true, true},
579 /* Global */ {true, true, false, false, true, false, true, true, true, true},
580 /* Region */ {false, false, true, false, false, false, false, false, false, false},
581 /* Local */ {true, false, false, true, false, false, false, false, false, false},
582 /* Constant */ {true, true, false, false, false, false, true, true, true, true},
583 /* Private */ {true, false, false, false, false, true, false, false, false, false},
584 /* Constant 32-bit */ {true, true, false, false, true, false, false, true, true, true},
585 /* Buffer Fat Ptr */ {true, true, false, false, true, false, true, true, true, true},
586 /* Buffer Resource */ {true, true, false, false, true, false, true, true, true, true},
587 /* Buffer Strided Ptr */ {true, true, false, false, true, false, true, true, true, true},
588 };
589 // clang-format on
590 static_assert(std::size(ASAliasRules) == AMDGPUAS::MAX_AMDGPU_ADDRESS + 1);
591
592 return ASAliasRules[AS1][AS2];
593}
594
595}
596
597} // End namespace llvm
598
599#endif
AMDGPU address space definition.
This header defines various interfaces for pass management in LLVM.
#define F(x, y, z)
Definition: MD5.cpp:55
ModuleAnalysisManager MAM
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPUAttributorPass(TargetMachine &TM, AMDGPUAttributorOptions Options, ThinOrFullLTOPhase LTOPhase=ThinOrFullLTOPhase::None)
Definition: AMDGPU.h:355
PreservedAnalyses run(Function &, FunctionAnalysisManager &)
AMDGPUCodeGenPreparePass(TargetMachine &TM)
Definition: AMDGPU.h:318
AMDGPULateCodeGenPreparePass(const GCNTargetMachine &TM)
Definition: AMDGPU.h:328
PreservedAnalyses run(Function &, FunctionAnalysisManager &)
AMDGPULowerKernelArgumentsPass(TargetMachine &TM)
Definition: AMDGPU.h:338
PreservedAnalyses run(Function &, FunctionAnalysisManager &)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &AM)
AMDGPUPreloadKernelArgumentsPass(const TargetMachine &TM)
Definition: AMDGPU.h:366
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
A container for analyses that lazily runs them and caches their results.
Definition: PassManager.h:255
FunctionPass class - This class is used to implement most global optimizations.
Definition: Pass.h:314
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &AM)
ImmutablePass class - This class is used to provide information that does not need to be run.
Definition: Pass.h:285
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
Definition: Pass.h:255
A Module instance is used to store all the information related to an LLVM module.
Definition: Module.h:67
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
Definition: PassRegistry.h:38
Pass interface - Implemented by all 'passes'.
Definition: Pass.h:99
A set of analyses that are preserved following a run of a transformation pass.
Definition: Analysis.h:112
SIAnnotateControlFlowPass(const AMDGPUTargetMachine &TM)
Definition: AMDGPU.h:488
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
static bool isRequired()
Definition: AMDGPU.h:408
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
static bool isRequired()
Definition: AMDGPU.h:422
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
static bool isRequired()
Definition: AMDGPU.h:388
PreservedAnalyses run(MachineFunction &F, MachineFunctionAnalysisManager &AM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
static bool isRequired()
Definition: AMDGPU.h:429
Primary interface to the complete machine description for the target machine.
Definition: TargetMachine.h:83
static bool addrspacesMayAlias(unsigned AS1, unsigned AS2)
Definition: AMDGPU.h:571
@ TI_SCRATCH_RSRC_DWORD1
Definition: AMDGPU.h:566
@ TI_SCRATCH_RSRC_DWORD3
Definition: AMDGPU.h:568
@ TI_SCRATCH_RSRC_DWORD0
Definition: AMDGPU.h:565
@ TI_SCRATCH_RSRC_DWORD2
Definition: AMDGPU.h:567
@ TI_CONSTDATA_START
Definition: AMDGPU.h:564
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
ScanOptions
Definition: AMDGPU.h:104
ImmutablePass * createAMDGPUAAWrapperPass()
char & SIAnnotateControlFlowLegacyPassID
FunctionPass * createAMDGPUSetWavePriorityPass()
char & AMDGPUCtorDtorLoweringLegacyPassID
void initializeAMDGPUMarkLastScratchLoadLegacyPass(PassRegistry &)
void initializeAMDGPUInsertDelayAluLegacyPass(PassRegistry &)
char & AMDGPUPreloadKernArgPrologLegacyID
char & AMDGPUExportKernelRuntimeHandlesLegacyID
void initializeSIOptimizeExecMaskingPreRALegacyPass(PassRegistry &)
char & GCNPreRAOptimizationsID
void initializeSIInsertHardClausesLegacyPass(PassRegistry &)
char & SIMemoryLegalizerID
FunctionPass * createSIFormMemoryClausesLegacyPass()
FunctionPass * createSIAnnotateControlFlowLegacyPass()
Create the annotation pass.
FunctionPass * createSIModeRegisterPass()
void initializeGCNPreRAOptimizationsLegacyPass(PassRegistry &)
void initializeSILowerWWMCopiesLegacyPass(PassRegistry &)
void initializeAMDGPUAAWrapperPassPass(PassRegistry &)
void initializeSIShrinkInstructionsLegacyPass(PassRegistry &)
ModulePass * createAMDGPULowerBufferFatPointersPass()
char & SIShrinkInstructionsLegacyID
ModulePass * createAMDGPUCtorDtorLoweringLegacyPass()
char & AMDGPUImageIntrinsicOptimizerID
ModulePass * createAMDGPUSwLowerLDSLegacyPass(const AMDGPUTargetMachine *TM=nullptr)
void initializeGCNRewritePartialRegUsesLegacyPass(llvm::PassRegistry &)
void initializeAMDGPURewriteUndefForPHILegacyPass(PassRegistry &)
char & AMDGPUPromoteKernelArgumentsID
char & GCNRewritePartialRegUsesID
void initializeAMDGPUSetWavePriorityLegacyPass(PassRegistry &)
void initializeAMDGPUSwLowerLDSLegacyPass(PassRegistry &)
FunctionPass * createAMDGPURewriteOutArgumentsPass()
char & AMDGPUWaitSGPRHazardsLegacyID
void initializeSILowerSGPRSpillsLegacyPass(PassRegistry &)
char & AMDGPUResourceUsageAnalysisID
void initializeAMDGPUDAGToDAGISelLegacyPass(PassRegistry &)
FunctionPass * createAMDGPURegBankCombiner(bool IsOptNone)
char & AMDGPUReserveWWMRegsLegacyID
void initializeAMDGPUWaitSGPRHazardsLegacyPass(PassRegistry &)
char & SIOptimizeExecMaskingLegacyID
FunctionPass * createSILoadStoreOptimizerLegacyPass()
ModulePass * createAMDGPULowerKernelAttributesPass()
ModulePass * createAMDGPUExportKernelRuntimeHandlesLegacyPass()
ModulePass * createAMDGPUAlwaysInlinePass(bool GlobalOpt=true)
void initializeAMDGPUAsmPrinterPass(PassRegistry &)
void initializeSIFoldOperandsLegacyPass(PassRegistry &)
char & SILoadStoreOptimizerLegacyID
void initializeAMDGPUGlobalISelDivergenceLoweringPass(PassRegistry &)
FunctionPass * createSIPeepholeSDWALegacyPass()
char & SIFormMemoryClausesID
char & AMDGPURemoveIncompatibleFunctionsID
void initializeSILoadStoreOptimizerLegacyPass(PassRegistry &)
void initializeAMDGPULowerModuleLDSLegacyPass(PassRegistry &)
void initializeAMDGPUCtorDtorLoweringLegacyPass(PassRegistry &)
void initializeAMDGPURegBankCombinerPass(PassRegistry &)
FunctionPass * createSIFoldOperandsLegacyPass()
ThinOrFullLTOPhase
This enumerates the LLVM full LTO or ThinLTO optimization phases.
Definition: Pass.h:77
@ None
No LTO/ThinLTO behavior needed.
char & AMDGPUUnifyDivergentExitNodesID
void initializeAMDGPUPrepareAGPRAllocLegacyPass(PassRegistry &)
char & SIInsertWaitcntsID
FunctionPass * createAMDGPUAtomicOptimizerPass(ScanOptions ScanStrategy)
FunctionPass * createAMDGPUPreloadKernArgPrologLegacyPass()
char & AMDGPUPrintfRuntimeBindingID
char & SIOptimizeVGPRLiveRangeLegacyID
char & GCNNSAReassignID
void initializeAMDGPURewriteOutArgumentsPass(PassRegistry &)
void initializeAMDGPUExternalAAWrapperPass(PassRegistry &)
void initializeAMDGPULowerKernelArgumentsPass(PassRegistry &)
void initializeSIModeRegisterLegacyPass(PassRegistry &)
void initializeAMDGPUPreloadKernelArgumentsLegacyPass(PassRegistry &)
char & SILateBranchLoweringPassID
char & SIModeRegisterID
char & AMDGPUSwLowerLDSLegacyPassID
void initializeSIMemoryLegalizerLegacyPass(PassRegistry &)
ModulePass * createAMDGPULowerIntrinsicsLegacyPass()
char & GCNDPPCombineLegacyID
@ None
Definition: CodeGenData.h:107
FunctionPass * createAMDGPULowerKernelArgumentsPass()
char & AMDGPUInsertDelayAluID
void initializeGCNPreRALongBranchRegLegacyPass(PassRegistry &)
char & SILowerWWMCopiesLegacyID
char & SIOptimizeExecMaskingPreRAID
char & AMDGPULowerModuleLDSLegacyPassID
FunctionPass * createSIPostRABundlerPass()
void initializeAMDGPUPostLegalizerCombinerPass(PassRegistry &)
void initializeAMDGPUExportKernelRuntimeHandlesLegacyPass(PassRegistry &)
FunctionPass * createSIPreAllocateWWMRegsLegacyPass()
Pass * createAMDGPUStructurizeCFGPass()
CodeGenOptLevel
Code generation optimization level.
Definition: CodeGen.h:82
char & AMDGPULowerBufferFatPointersID
void initializeSIInsertWaitcntsLegacyPass(PassRegistry &)
char & AMDGPURegBankSelectID
ModulePass * createAMDGPUPreloadKernelArgumentsLegacyPass(const TargetMachine *)
ModulePass * createAMDGPUPrintfRuntimeBinding()
void initializeAMDGPUImageIntrinsicOptimizerPass(PassRegistry &)
void initializeSILateBranchLoweringLegacyPass(PassRegistry &)
void initializeSILowerControlFlowLegacyPass(PassRegistry &)
void initializeSIFormMemoryClausesLegacyPass(PassRegistry &)
char & SIPreAllocateWWMRegsLegacyID
ModulePass * createAMDGPULowerModuleLDSLegacyPass(const AMDGPUTargetMachine *TM=nullptr)
void initializeAMDGPUPreLegalizerCombinerPass(PassRegistry &)
FunctionPass * createAMDGPUPromoteAlloca()
void initializeAMDGPUReserveWWMRegsLegacyPass(PassRegistry &)
char & SIPreEmitPeepholeID
char & SIPostRABundlerLegacyID
ModulePass * createAMDGPURemoveIncompatibleFunctionsPass(const TargetMachine *)
void initializeGCNRegPressurePrinterPass(PassRegistry &)
char & AMDGPURewriteOutArgumentsID
void initializeSILowerI1CopiesLegacyPass(PassRegistry &)
char & SILowerSGPRSpillsLegacyID
void initializeAMDGPUArgumentUsageInfoPass(PassRegistry &)
char & SILowerControlFlowLegacyID
FunctionPass * createAMDGPUCodeGenPreparePass()
void initializeSIAnnotateControlFlowLegacyPass(PassRegistry &)
FunctionPass * createAMDGPUReserveWWMRegsPass()
FunctionPass * createAMDGPUISelDag(TargetMachine &TM, CodeGenOptLevel OptLevel)
This pass converts a legalized DAG into a AMDGPU-specific.
void initializeGCNCreateVOPDLegacyPass(PassRegistry &)
void initializeSIPreAllocateWWMRegsLegacyPass(PassRegistry &)
void initializeSIFixVGPRCopiesLegacyPass(PassRegistry &)
void initializeSIFixSGPRCopiesLegacyPass(PassRegistry &)
char & AMDGPUAnnotateUniformValuesLegacyPassID
void initializeAMDGPUAtomicOptimizerPass(PassRegistry &)
void initializeAMDGPULowerIntrinsicsLegacyPass(PassRegistry &)
FunctionPass * createGCNPreRAOptimizationsLegacyPass()
void initializeAMDGPURewriteAGPRCopyMFMALegacyPass(PassRegistry &)
char & AMDGPULowerKernelAttributesID
void initializeSIPostRABundlerLegacyPass(PassRegistry &)
FunctionPass * createAMDGPURegBankSelectPass()
FunctionPass * createSIWholeQuadModeLegacyPass()
char & GCNRegPressurePrinterID
FunctionPass * createAMDGPURegBankLegalizePass()
char & SIWholeQuadModeID
FunctionPass * createSIOptimizeVGPRLiveRangeLegacyPass()
ImmutablePass * createAMDGPUExternalAAWrapperPass()
void initializeAMDGPUCodeGenPreparePass(PassRegistry &)
FunctionPass * createAMDGPURewriteUndefForPHILegacyPass()
void initializeSIOptimizeExecMaskingLegacyPass(PassRegistry &)
FunctionPass * createSILowerI1CopiesLegacyPass()
char & AMDGPULateCodeGenPrepareLegacyID
FunctionPass * createAMDGPUPostLegalizeCombiner(bool IsOptNone)
void initializeAMDGPULowerKernelAttributesPass(PassRegistry &)
char & SIInsertHardClausesID
char & SIFixSGPRCopiesLegacyID
void initializeGCNDPPCombineLegacyPass(PassRegistry &)
char & GCNCreateVOPDID
char & SIPeepholeSDWALegacyID
char & SIFixVGPRCopiesID
char & SIFoldOperandsLegacyID
void initializeGCNNSAReassignLegacyPass(PassRegistry &)
char & AMDGPUPrepareAGPRAllocLegacyID
char & AMDGPUAtomicOptimizerID
char & SILowerI1CopiesLegacyID
void initializeAMDGPUPreloadKernArgPrologLegacyPass(PassRegistry &)
FunctionPass * createLowerWWMCopiesPass()
char & AMDGPURewriteAGPRCopyMFMALegacyID
char & AMDGPUPromoteAllocaID
FunctionPass * createAMDGPUGlobalISelDivergenceLoweringPass()
FunctionPass * createSIMemoryLegalizerPass()
void initializeAMDGPULateCodeGenPrepareLegacyPass(PassRegistry &)
void initializeSIOptimizeVGPRLiveRangeLegacyPass(PassRegistry &)
void initializeSIPeepholeSDWALegacyPass(PassRegistry &)
char & AMDGPURegBankLegalizeID
void initializeAMDGPURegBankLegalizePass(PassRegistry &)
FunctionPass * createAMDGPUPreLegalizeCombiner(bool IsOptNone)
void initializeAMDGPURegBankSelectPass(PassRegistry &)
FunctionPass * createAMDGPULateCodeGenPrepareLegacyPass()
char & AMDGPURewriteUndefForPHILegacyPassID
FunctionPass * createAMDGPUImageIntrinsicOptimizerPass(const TargetMachine *)
void initializeAMDGPUUnifyDivergentExitNodesPass(PassRegistry &)
void initializeAMDGPULowerBufferFatPointersPass(PassRegistry &)
FunctionPass * createSIInsertWaitcntsPass()
FunctionPass * createAMDGPUAnnotateUniformValuesLegacy()
void initializeSIWholeQuadModeLegacyPass(PassRegistry &)
FunctionPass * createSIOptimizeExecMaskingPreRAPass()
FunctionPass * createGCNDPPCombinePass()
void initializeAMDGPUResourceUsageAnalysisWrapperPassPass(PassRegistry &)
FunctionPass * createSIShrinkInstructionsLegacyPass()
char & AMDGPUMarkLastScratchLoadID
char & AMDGPUPreloadKernelArgumentsLegacyID
void initializeAMDGPUAnnotateUniformValuesLegacyPass(PassRegistry &)
void initializeAMDGPUPrintfRuntimeBindingPass(PassRegistry &)
void initializeAMDGPUPromoteAllocaPass(PassRegistry &)
void initializeAMDGPURemoveIncompatibleFunctionsLegacyPass(PassRegistry &)
FunctionPass * createSIFixControlFlowLiveIntervalsPass()
char & AMDGPULowerKernelArgumentsID
void initializeAMDGPUAlwaysInlinePass(PassRegistry &)
char & AMDGPUCodeGenPrepareID
FunctionPass * createSIFixSGPRCopiesLegacyPass()
void initializeSIPreEmitPeepholeLegacyPass(PassRegistry &)
char & AMDGPUPerfHintAnalysisLegacyID
FunctionPass * createAMDGPUPromoteKernelArgumentsPass()
char & GCNPreRALongBranchRegID
void initializeAMDGPUPerfHintAnalysisLegacyPass(PassRegistry &)
void initializeAMDGPUPromoteKernelArgumentsPass(PassRegistry &)
AMDGPUAlwaysInlinePass(bool GlobalOpt=true)
Definition: AMDGPU.h:294
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
AMDGPUAtomicOptimizerPass(TargetMachine &TM, ScanOptions ScanImpl)
Definition: AMDGPU.h:274
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
AMDGPUImageIntrinsicOptimizerPass(TargetMachine &TM)
Definition: AMDGPU.h:78
PreservedAnalyses run(MachineFunction &F, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPULowerBufferFatPointersPass(const TargetMachine &TM)
Definition: AMDGPU.h:150
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
AMDGPULowerIntrinsicsPass(const AMDGPUTargetMachine &TM)
Definition: AMDGPU.h:160
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPULowerModuleLDSPass(const AMDGPUTargetMachine &TM_)
Definition: AMDGPU.h:140
const AMDGPUTargetMachine & TM
Definition: AMDGPU.h:139
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPUPromoteAllocaPass(TargetMachine &TM)
Definition: AMDGPU.h:257
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
AMDGPUPromoteAllocaToVectorPass(TargetMachine &TM)
Definition: AMDGPU.h:266
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
const AMDGPUTargetMachine & TM
Definition: AMDGPU.h:307
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPUSwLowerLDSPass(const AMDGPUTargetMachine &TM_)
Definition: AMDGPU.h:308
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
A CRTP mix-in to automatically provide informational APIs needed for passes.
Definition: PassManager.h:70