LLVM 20.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
68
69struct AMDGPUSimplifyLibCallsPass : PassInfoMixin<AMDGPUSimplifyLibCallsPass> {
72};
73
75 : PassInfoMixin<AMDGPUImageIntrinsicOptimizerPass> {
78
79private:
80 TargetMachine &TM;
81};
82
83struct AMDGPUUseNativeCallsPass : PassInfoMixin<AMDGPUUseNativeCallsPass> {
85};
86
87class SILowerI1CopiesPass : public PassInfoMixin<SILowerI1CopiesPass> {
88public:
92};
93
95
97
103
104// DPP/Iterative option enables the atomic optimizer with given strategy
105// whereas None disables the atomic optimizer.
106enum class ScanOptions { DPP, Iterative, None };
107FunctionPass *createAMDGPUAtomicOptimizerPass(ScanOptions ScanStrategy);
109extern char &AMDGPUAtomicOptimizerID;
110
114
118
122
124 : PassInfoMixin<AMDGPUPromoteKernelArgumentsPass> {
126};
127
131
133 : PassInfoMixin<AMDGPULowerKernelAttributesPass> {
135};
136
139
140struct AMDGPULowerModuleLDSPass : PassInfoMixin<AMDGPULowerModuleLDSPass> {
143
145};
146
149
151 : PassInfoMixin<AMDGPULowerBufferFatPointersPass> {
154
155private:
156 const TargetMachine &TM;
157};
158
160extern char &AMDGPUReserveWWMRegsID;
161
163extern char &AMDGPURewriteOutArgumentsID;
164
166extern char &GCNDPPCombineLegacyID;
167
169extern char &SIFoldOperandsLegacyID;
170
172extern char &SIPeepholeSDWALegacyID;
173
176
178extern char &SIFixSGPRCopiesLegacyID;
179
181extern char &SIFixVGPRCopiesID;
182
184extern char &SILowerWWMCopiesID;
185
187extern char &SILowerI1CopiesLegacyID;
188
191
193extern char &AMDGPURegBankSelectID;
194
196extern char &AMDGPURegBankLegalizeID;
197
199extern char &AMDGPUMarkLastScratchLoadID;
200
202extern char &SILowerSGPRSpillsLegacyID;
203
206
208extern char &SIWholeQuadModeID;
209
211extern char &SILowerControlFlowID;
212
214extern char &SIPreEmitPeepholeID;
215
217extern char &SILateBranchLoweringPassID;
218
220extern char &SIOptimizeExecMaskingID;
221
224
227
230
232extern char &GCNRegPressurePrinterID;
233
236
237// Passes common to R600 and SI
240extern char &AMDGPUPromoteAllocaID;
241
245
246struct AMDGPUPromoteAllocaPass : PassInfoMixin<AMDGPUPromoteAllocaPass> {
249
250private:
251 TargetMachine &TM;
252};
253
255 : PassInfoMixin<AMDGPUPromoteAllocaToVectorPass> {
258
259private:
260 TargetMachine &TM;
261};
262
263struct AMDGPUAtomicOptimizerPass : PassInfoMixin<AMDGPUAtomicOptimizerPass> {
265 : TM(TM), ScanImpl(ScanImpl) {}
267
268private:
269 TargetMachine &TM;
270 ScanOptions ScanImpl;
271};
272
275ModulePass *createAMDGPUAlwaysInlinePass(bool GlobalOpt = true);
276
277struct AMDGPUAlwaysInlinePass : PassInfoMixin<AMDGPUAlwaysInlinePass> {
278 AMDGPUAlwaysInlinePass(bool GlobalOpt = true) : GlobalOpt(GlobalOpt) {}
280
281private:
282 bool GlobalOpt;
283};
284
289
290struct AMDGPUSwLowerLDSPass : PassInfoMixin<AMDGPUSwLowerLDSPass> {
294};
295
297 : public PassInfoMixin<AMDGPUCodeGenPreparePass> {
298private:
299 TargetMachine &TM;
300
301public:
304};
305
307 : public PassInfoMixin<AMDGPULateCodeGenPreparePass> {
308private:
309 const GCNTargetMachine &TM;
310
311public:
314};
315
317 : public PassInfoMixin<AMDGPULowerKernelArgumentsPass> {
318private:
319 TargetMachine &TM;
320
321public:
324};
325
327 bool IsClosedWorld = false;
328};
329
330class AMDGPUAttributorPass : public PassInfoMixin<AMDGPUAttributorPass> {
331private:
332 TargetMachine &TM;
333
335
336public:
338 : TM(TM), Options(Options) {};
339 PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
340};
341
343 : public PassInfoMixin<AMDGPUAnnotateUniformValuesPass> {
344public:
347};
348
350
354
357
359 : PassInfoMixin<AMDGPUPrintfRuntimeBindingPass> {
361};
362
365extern char &AMDGPUUnifyMetadataID;
366
367struct AMDGPUUnifyMetadataPass : PassInfoMixin<AMDGPUUnifyMetadataPass> {
369};
370
373
376
379
381extern char &AMDGPUCodeGenPrepareID;
382
385
388
392
394 : public PassInfoMixin<AMDGPURewriteUndefForPHIPass> {
395public:
398};
399
401 : public PassInfoMixin<SIAnnotateControlFlowPass> {
402private:
403 const AMDGPUTargetMachine &TM;
404
405public:
408};
409
412
414extern char &SIMemoryLegalizerID;
415
417extern char &SIModeRegisterID;
418
420extern char &AMDGPUInsertDelayAluID;
421
423extern char &SIInsertHardClausesID;
424
426extern char &SIInsertWaitcntsID;
427
429extern char &SIFormMemoryClausesID;
430
432extern char &SIPostRABundlerID;
433
435extern char &GCNCreateVOPDID;
436
439
444
446
450
452extern char &GCNNSAReassignID;
453
455extern char &GCNPreRALongBranchRegID;
456
458extern char &GCNPreRAOptimizationsID;
459
462
464extern char &GCNRewritePartialRegUsesID;
465
466namespace AMDGPU {
474
475static inline bool addrspacesMayAlias(unsigned AS1, unsigned AS2) {
476 static_assert(AMDGPUAS::MAX_AMDGPU_ADDRESS <= 9, "Addr space out of range");
477
479 return true;
480
481 // This array is indexed by address space value enum elements 0 ... to 9
482 // clang-format off
483 static const bool ASAliasRules[10][10] = {
484 /* Flat Global Region Group Constant Private Const32 BufFatPtr BufRsrc BufStrdPtr */
485 /* Flat */ {true, true, false, true, true, true, true, true, true, true},
486 /* Global */ {true, true, false, false, true, false, true, true, true, true},
487 /* Region */ {false, false, true, false, false, false, false, false, false, false},
488 /* Group */ {true, false, false, true, false, false, false, false, false, false},
489 /* Constant */ {true, true, false, false, false, false, true, true, true, true},
490 /* Private */ {true, false, false, false, false, true, false, false, false, false},
491 /* Constant 32-bit */ {true, true, false, false, true, false, false, true, true, true},
492 /* Buffer Fat Ptr */ {true, true, false, false, true, false, true, true, true, true},
493 /* Buffer Resource */ {true, true, false, false, true, false, true, true, true, true},
494 /* Buffer Strided Ptr */ {true, true, false, false, true, false, true, true, true, true},
495 };
496 // clang-format on
497
498 return ASAliasRules[AS1][AS2];
499}
500
501}
502
503} // End namespace llvm
504
505#endif
AMDGPU address space definition.
This header defines various interfaces for pass management in LLVM.
#define F(x, y, z)
Definition: MD5.cpp:55
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPUAttributorPass(TargetMachine &TM, AMDGPUAttributorOptions Options={})
Definition: AMDGPU.h:337
PreservedAnalyses run(Function &, FunctionAnalysisManager &)
AMDGPUCodeGenPreparePass(TargetMachine &TM)
Definition: AMDGPU.h:302
AMDGPULateCodeGenPreparePass(const GCNTargetMachine &TM)
Definition: AMDGPU.h:312
PreservedAnalyses run(Function &, FunctionAnalysisManager &)
AMDGPULowerKernelArgumentsPass(TargetMachine &TM)
Definition: AMDGPU.h:322
PreservedAnalyses run(Function &, FunctionAnalysisManager &)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
A container for analyses that lazily runs them and caches their results.
Definition: PassManager.h:253
FunctionPass class - This class is used to implement most global optimizations.
Definition: Pass.h:310
ImmutablePass class - This class is used to provide information that does not need to be run.
Definition: Pass.h:281
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
Definition: Pass.h:251
A Module instance is used to store all the information related to an LLVM module.
Definition: Module.h:65
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
Definition: PassRegistry.h:37
Pass interface - Implemented by all 'passes'.
Definition: Pass.h:94
A set of analyses that are preserved following a run of a transformation pass.
Definition: Analysis.h:111
SIAnnotateControlFlowPass(const AMDGPUTargetMachine &TM)
Definition: AMDGPU.h:406
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Primary interface to the complete machine description for the target machine.
Definition: TargetMachine.h:77
static bool addrspacesMayAlias(unsigned AS1, unsigned AS2)
Definition: AMDGPU.h:475
@ TI_SCRATCH_RSRC_DWORD1
Definition: AMDGPU.h:470
@ TI_SCRATCH_RSRC_DWORD3
Definition: AMDGPU.h:472
@ TI_SCRATCH_RSRC_DWORD0
Definition: AMDGPU.h:469
@ TI_SCRATCH_RSRC_DWORD2
Definition: AMDGPU.h:471
@ TI_CONSTDATA_START
Definition: AMDGPU.h:468
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
void initializeSIFormMemoryClausesPass(PassRegistry &)
ScanOptions
Definition: AMDGPU.h:106
ImmutablePass * createAMDGPUAAWrapperPass()
char & SIAnnotateControlFlowLegacyPassID
FunctionPass * createAMDGPUSetWavePriorityPass()
char & AMDGPUCtorDtorLoweringLegacyPassID
void initializeGCNCreateVOPDPass(PassRegistry &)
char & AMDGPUPreloadKernArgPrologLegacyID
char & AMDGPUAnnotateKernelFeaturesID
char & GCNPreRAOptimizationsID
void initializeGCNPreRAOptimizationsPass(PassRegistry &)
void initializeGCNRewritePartialRegUsesPass(llvm::PassRegistry &)
char & SIMemoryLegalizerID
void initializeAMDGPUAttributorLegacyPass(PassRegistry &)
char & SIPostRABundlerID
FunctionPass * createSIAnnotateControlFlowLegacyPass()
Create the annotation pass.
FunctionPass * createSIModeRegisterPass()
void initializeAMDGPUAAWrapperPassPass(PassRegistry &)
void initializeSIShrinkInstructionsLegacyPass(PassRegistry &)
ModulePass * createAMDGPULowerBufferFatPointersPass()
char & SIShrinkInstructionsLegacyID
void initializeSIModeRegisterPass(PassRegistry &)
ModulePass * createAMDGPUCtorDtorLoweringLegacyPass()
char & AMDGPUImageIntrinsicOptimizerID
ModulePass * createAMDGPUSwLowerLDSLegacyPass(const AMDGPUTargetMachine *TM=nullptr)
void initializeAMDGPURewriteUndefForPHILegacyPass(PassRegistry &)
char & AMDGPUPromoteKernelArgumentsID
FunctionPass * createAMDGPUPreLegalizeCombiner(bool IsOptNone)
char & GCNRewritePartialRegUsesID
FunctionPass * createAMDGPUPostLegalizeCombiner(bool IsOptNone)
void initializeAMDGPUSwLowerLDSLegacyPass(PassRegistry &)
FunctionPass * createAMDGPURewriteOutArgumentsPass()
void initializeGCNPreRALongBranchRegPass(PassRegistry &)
void initializeSILowerSGPRSpillsLegacyPass(PassRegistry &)
char & AMDGPUResourceUsageAnalysisID
FunctionPass * createSIWholeQuadModePass()
void initializeAMDGPUDAGToDAGISelLegacyPass(PassRegistry &)
FunctionPass * createSILoadStoreOptimizerLegacyPass()
ModulePass * createAMDGPULowerKernelAttributesPass()
ModulePass * createAMDGPUAlwaysInlinePass(bool GlobalOpt=true)
void initializeSIPreEmitPeepholePass(PassRegistry &)
char & AMDGPUPromoteAllocaToVectorID
void initializeSIFoldOperandsLegacyPass(PassRegistry &)
char & SILoadStoreOptimizerLegacyID
char & SILowerWWMCopiesID
void initializeSIFixVGPRCopiesPass(PassRegistry &)
ModulePass * createAMDGPUUnifyMetadataPass()
void initializeAMDGPUGlobalISelDivergenceLoweringPass(PassRegistry &)
void initializeSILowerWWMCopiesPass(PassRegistry &)
FunctionPass * createSIPeepholeSDWALegacyPass()
void initializeGCNNSAReassignPass(PassRegistry &)
void initializeAMDGPUOpenCLEnqueuedBlockLoweringLegacyPass(PassRegistry &)
void initializeSIInsertWaitcntsPass(PassRegistry &)
char & SIFormMemoryClausesID
char & AMDGPURemoveIncompatibleFunctionsID
void initializeSILoadStoreOptimizerLegacyPass(PassRegistry &)
void initializeAMDGPULowerModuleLDSLegacyPass(PassRegistry &)
void initializeAMDGPUCtorDtorLoweringLegacyPass(PassRegistry &)
void initializeAMDGPURegBankCombinerPass(PassRegistry &)
void initializeSILateBranchLoweringPass(PassRegistry &)
FunctionPass * createSIFoldOperandsLegacyPass()
FunctionPass * createAMDGPUPromoteAllocaToVector()
char & AMDGPUUnifyDivergentExitNodesID
char & SIInsertWaitcntsID
FunctionPass * createAMDGPUAtomicOptimizerPass(ScanOptions ScanStrategy)
FunctionPass * createAMDGPUPreloadKernArgPrologLegacyPass()
char & AMDGPUPrintfRuntimeBindingID
char & SIOptimizeVGPRLiveRangeLegacyID
char & GCNNSAReassignID
void initializeAMDGPURewriteOutArgumentsPass(PassRegistry &)
void initializeAMDGPUExternalAAWrapperPass(PassRegistry &)
void initializeAMDGPULowerKernelArgumentsPass(PassRegistry &)
char & SILateBranchLoweringPassID
char & SIModeRegisterID
char & AMDGPUSwLowerLDSLegacyPassID
FunctionPass * createGCNPreRAOptimizationsPass()
void initializeAMDGPUAnnotateKernelFeaturesPass(PassRegistry &)
void initializeSIPostRABundlerPass(PassRegistry &)
void initializeAMDGPUPromoteAllocaToVectorPass(PassRegistry &)
char & GCNDPPCombineLegacyID
Pass * createAMDGPUAttributorLegacyPass()
@ None
Definition: CodeGenData.h:106
void initializeSIWholeQuadModePass(PassRegistry &)
FunctionPass * createAMDGPULowerKernelArgumentsPass()
char & AMDGPUInsertDelayAluID
Pass * createAMDGPUAnnotateKernelFeaturesPass()
char & SIOptimizeExecMaskingPreRAID
char & AMDGPULowerModuleLDSLegacyPassID
void initializeSIInsertHardClausesPass(PassRegistry &)
FunctionPass * createSIPostRABundlerPass()
FunctionPass * createSIFormMemoryClausesPass()
void initializeAMDGPUPostLegalizerCombinerPass(PassRegistry &)
FunctionPass * createSIPreAllocateWWMRegsLegacyPass()
Pass * createAMDGPUStructurizeCFGPass()
CodeGenOptLevel
Code generation optimization level.
Definition: CodeGen.h:54
char & AMDGPULowerBufferFatPointersID
char & AMDGPURegBankSelectID
void initializeAMDGPUReserveWWMRegsPass(PassRegistry &)
ModulePass * createAMDGPUPrintfRuntimeBinding()
void initializeSIMemoryLegalizerPass(PassRegistry &)
char & AMDGPUUnifyMetadataID
void initializeAMDGPUImageIntrinsicOptimizerPass(PassRegistry &)
char & SIPreAllocateWWMRegsLegacyID
ModulePass * createAMDGPULowerModuleLDSLegacyPass(const AMDGPUTargetMachine *TM=nullptr)
void initializeAMDGPUPreLegalizerCombinerPass(PassRegistry &)
char & AMDGPUReserveWWMRegsID
FunctionPass * createAMDGPUPromoteAlloca()
char & SIPreEmitPeepholeID
ModulePass * createAMDGPURemoveIncompatibleFunctionsPass(const TargetMachine *)
void initializeGCNRegPressurePrinterPass(PassRegistry &)
char & AMDGPURewriteOutArgumentsID
void initializeSILowerI1CopiesLegacyPass(PassRegistry &)
char & SILowerSGPRSpillsLegacyID
void initializeAMDGPUArgumentUsageInfoPass(PassRegistry &)
char & AMDGPUPromoteAllocaID
FunctionPass * createAMDGPUCodeGenPreparePass()
void initializeSIAnnotateControlFlowLegacyPass(PassRegistry &)
FunctionPass * createAMDGPUReserveWWMRegsPass()
ModulePass * createAMDGPUOpenCLEnqueuedBlockLoweringLegacyPass()
FunctionPass * createAMDGPUISelDag(TargetMachine &TM, CodeGenOptLevel OptLevel)
This pass converts a legalized DAG into a AMDGPU-specific.
void initializeSIPreAllocateWWMRegsLegacyPass(PassRegistry &)
void initializeSIFixSGPRCopiesLegacyPass(PassRegistry &)
char & AMDGPUAnnotateUniformValuesLegacyPassID
void initializeAMDGPUAtomicOptimizerPass(PassRegistry &)
char & AMDGPULowerKernelAttributesID
FunctionPass * createAMDGPURegBankSelectPass()
char & GCNRegPressurePrinterID
FunctionPass * createAMDGPURegBankCombiner(bool IsOptNone)
FunctionPass * createAMDGPURegBankLegalizePass()
char & SIWholeQuadModeID
void initializeSIOptimizeExecMaskingPreRAPass(PassRegistry &)
void initializeAMDGPUMarkLastScratchLoadPass(PassRegistry &)
FunctionPass * createSIOptimizeVGPRLiveRangeLegacyPass()
ImmutablePass * createAMDGPUExternalAAWrapperPass()
void initializeAMDGPUCodeGenPreparePass(PassRegistry &)
FunctionPass * createAMDGPURewriteUndefForPHILegacyPass()
FunctionPass * createSILowerI1CopiesLegacyPass()
char & AMDGPULateCodeGenPrepareLegacyID
void initializeAMDGPULowerKernelAttributesPass(PassRegistry &)
char & SIInsertHardClausesID
void initializeAMDGPUResourceUsageAnalysisPass(PassRegistry &)
char & SIFixSGPRCopiesLegacyID
void initializeGCNDPPCombineLegacyPass(PassRegistry &)
char & GCNCreateVOPDID
char & SIPeepholeSDWALegacyID
char & SIFoldOperandsLegacyID
char & SILowerControlFlowID
char & AMDGPUAtomicOptimizerID
char & SILowerI1CopiesLegacyID
void initializeAMDGPUPreloadKernArgPrologLegacyPass(PassRegistry &)
FunctionPass * createLowerWWMCopiesPass()
char & AMDGPUOpenCLEnqueuedBlockLoweringLegacyID
void initializeSIOptimizeExecMaskingPass(PassRegistry &)
FunctionPass * createAMDGPUGlobalISelDivergenceLoweringPass()
FunctionPass * createSIMemoryLegalizerPass()
void initializeAMDGPULateCodeGenPrepareLegacyPass(PassRegistry &)
void initializeSILowerControlFlowPass(PassRegistry &)
void initializeSIOptimizeVGPRLiveRangeLegacyPass(PassRegistry &)
void initializeSIPeepholeSDWALegacyPass(PassRegistry &)
char & SIFixVGPRCopiesID
char & AMDGPURegBankLegalizeID
void initializeAMDGPURegBankLegalizePass(PassRegistry &)
void initializeAMDGPURegBankSelectPass(PassRegistry &)
FunctionPass * createAMDGPULateCodeGenPrepareLegacyPass()
char & AMDGPURewriteUndefForPHILegacyPassID
FunctionPass * createAMDGPUImageIntrinsicOptimizerPass(const TargetMachine *)
void initializeAMDGPUUnifyDivergentExitNodesPass(PassRegistry &)
void initializeAMDGPULowerBufferFatPointersPass(PassRegistry &)
FunctionPass * createSIInsertWaitcntsPass()
FunctionPass * createAMDGPUAnnotateUniformValuesLegacy()
FunctionPass * createSIOptimizeExecMaskingPreRAPass()
FunctionPass * createGCNDPPCombinePass()
FunctionPass * createSIShrinkInstructionsLegacyPass()
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
Definition: MIRParser.h:38
char & AMDGPUMarkLastScratchLoadID
void initializeAMDGPUAnnotateUniformValuesLegacyPass(PassRegistry &)
void initializeAMDGPUPrintfRuntimeBindingPass(PassRegistry &)
void initializeAMDGPUPromoteAllocaPass(PassRegistry &)
void initializeAMDGPURemoveIncompatibleFunctionsLegacyPass(PassRegistry &)
void initializeAMDGPUInsertDelayAluPass(PassRegistry &)
char & SIOptimizeExecMaskingID
void initializeAMDGPUUnifyMetadataPass(PassRegistry &)
FunctionPass * createSIFixControlFlowLiveIntervalsPass()
char & AMDGPULowerKernelArgumentsID
void initializeAMDGPUAlwaysInlinePass(PassRegistry &)
char & AMDGPUCodeGenPrepareID
void initializeAMDGPUSetWavePriorityPass(PassRegistry &)
FunctionPass * createSIFixSGPRCopiesLegacyPass()
char & AMDGPUPerfHintAnalysisLegacyID
FunctionPass * createAMDGPUPromoteKernelArgumentsPass()
char & GCNPreRALongBranchRegID
void initializeAMDGPUPerfHintAnalysisLegacyPass(PassRegistry &)
void initializeAMDGPUPromoteKernelArgumentsPass(PassRegistry &)
AMDGPUAlwaysInlinePass(bool GlobalOpt=true)
Definition: AMDGPU.h:278
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
AMDGPUAtomicOptimizerPass(TargetMachine &TM, ScanOptions ScanImpl)
Definition: AMDGPU.h:264
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
AMDGPUImageIntrinsicOptimizerPass(TargetMachine &TM)
Definition: AMDGPU.h:76
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPULowerBufferFatPointersPass(const TargetMachine &TM)
Definition: AMDGPU.h:152
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPULowerModuleLDSPass(const AMDGPUTargetMachine &TM_)
Definition: AMDGPU.h:142
const AMDGPUTargetMachine & TM
Definition: AMDGPU.h:141
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPUPromoteAllocaPass(TargetMachine &TM)
Definition: AMDGPU.h:247
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
AMDGPUPromoteAllocaToVectorPass(TargetMachine &TM)
Definition: AMDGPU.h:256
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
const AMDGPUTargetMachine & TM
Definition: AMDGPU.h:291
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
AMDGPUSwLowerLDSPass(const AMDGPUTargetMachine &TM_)
Definition: AMDGPU.h:292
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
A CRTP mix-in to automatically provide informational APIs needed for passes.
Definition: PassManager.h:69