LLVM
24.0.0git
lib
Target
AMDGPU
AMDGPUIGroupLP.h
Go to the documentation of this file.
1
//===- AMDGPUMFMAIGroupLP.h - AMDGPU MFMA IGroupLP --------*- 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
#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMFMAIGROUPLP_H
10
#define LLVM_LIB_TARGET_AMDGPU_AMDGPUMFMAIGROUPLP_H
11
12
#include "
llvm/ADT/BitmaskEnum.h
"
13
#include "
llvm/CodeGen/ScheduleDAGMutation.h
"
14
#include <memory>
15
16
namespace
llvm
{
17
18
namespace
AMDGPU
{
19
// The current phase of instruction scheduling
20
enum class
SchedulingPhase
{
Initial
,
PreRAReentry
,
PostRA
};
21
22
/// Operand 0 immediate for IGLP_OPT pseudo instructions.
23
enum
IGLPStrategyID
:
int
{
24
MFMASmallGemmOptID
= 0,
25
MFMASmallGemmSingleWaveOptID
= 1,
26
MFMAExpInterleaveID
= 2,
27
MFMAExpSimpleInterleaveID
= 3,
28
};
29
30
// Components of the mask that determines which instruction types may be may be
31
// classified into a SchedGroup.
32
enum class
SchedGroupMask
{
33
NONE
= 0u,
34
ALU
= 1u << 0,
35
VALU
= 1u << 1,
36
SALU
= 1u << 2,
37
MFMA
= 1u << 3,
38
VMEM
= 1u << 4,
39
VMEM_READ
= 1u << 5,
40
VMEM_WRITE
= 1u << 6,
41
DS
= 1u << 7,
42
DS_READ
= 1u << 8,
43
DS_WRITE
= 1u << 9,
44
TRANS
= 1u << 10,
45
LDSDMA
= 1u << 11,
46
ALL
=
ALU
|
VALU
|
SALU
|
MFMA
|
VMEM
|
VMEM_READ
|
VMEM_WRITE
|
DS
|
47
DS_READ
|
DS_WRITE
|
TRANS
|
LDSDMA
,
48
LLVM_MARK_AS_BITMASK_ENUM
(
/* LargestFlag = */
ALL
)
49
};
50
}
// namespace AMDGPU
51
52
std::unique_ptr<ScheduleDAGMutation>
53
createIGroupLPDAGMutation
(
AMDGPU::SchedulingPhase
Phase
);
54
55
}
// namespace llvm
56
57
#endif
// LLVM_LIB_TARGET_AMDGPU_AMDGPUMFMAIGROUPLP_H
Phase
aarch64 falkor hwpf fix Falkor HW Prefetch Fix Late Phase
Definition
AArch64FalkorHWPFFix.cpp:222
BitmaskEnum.h
ScheduleDAGMutation.h
llvm::AMDGPU
Definition
AMDGPUMetadataVerifier.h:34
llvm::AMDGPU::CoExecMask::DS
@ DS
Definition
AMDGPUCoExecInfo.h:51
llvm::AMDGPU::CoExecMask::VALU
@ VALU
Definition
AMDGPUCoExecInfo.h:48
llvm::AMDGPU::CoExecMask::VMEM
@ VMEM
Definition
AMDGPUCoExecInfo.h:52
llvm::AMDGPU::CoExecMask::SALU
@ SALU
Definition
AMDGPUCoExecInfo.h:50
llvm::AMDGPU::CoExecMask::TRANS
@ TRANS
Definition
AMDGPUCoExecInfo.h:49
llvm::AMDGPU::FuncInfoFlags::LLVM_MARK_AS_BITMASK_ENUM
@ LLVM_MARK_AS_BITMASK_ENUM
Definition
AMDGPUObjLinkingInfo.h:68
llvm::AMDGPU::SchedulingPhase
SchedulingPhase
Definition
AMDGPUIGroupLP.h:20
llvm::AMDGPU::SchedulingPhase::PostRA
@ PostRA
Definition
AMDGPUIGroupLP.h:20
llvm::AMDGPU::SchedulingPhase::PreRAReentry
@ PreRAReentry
Definition
AMDGPUIGroupLP.h:20
llvm::AMDGPU::SchedulingPhase::Initial
@ Initial
Definition
AMDGPUIGroupLP.h:20
llvm::AMDGPU::CoExecStageType::NONE
@ NONE
Definition
AMDGPUCoExecInfo.h:166
llvm::AMDGPU::SchedGroupMask
SchedGroupMask
Definition
AMDGPUIGroupLP.h:32
llvm::AMDGPU::SchedGroupMask::ALU
@ ALU
Definition
AMDGPUIGroupLP.h:34
llvm::AMDGPU::SchedGroupMask::VMEM_READ
@ VMEM_READ
Definition
AMDGPUIGroupLP.h:39
llvm::AMDGPU::SchedGroupMask::ALL
@ ALL
Definition
AMDGPUIGroupLP.h:46
llvm::AMDGPU::SchedGroupMask::LDSDMA
@ LDSDMA
Definition
AMDGPUIGroupLP.h:45
llvm::AMDGPU::SchedGroupMask::VMEM_WRITE
@ VMEM_WRITE
Definition
AMDGPUIGroupLP.h:40
llvm::AMDGPU::SchedGroupMask::DS_WRITE
@ DS_WRITE
Definition
AMDGPUIGroupLP.h:43
llvm::AMDGPU::SchedGroupMask::DS_READ
@ DS_READ
Definition
AMDGPUIGroupLP.h:42
llvm::AMDGPU::SchedGroupMask::MFMA
@ MFMA
Definition
AMDGPUIGroupLP.h:37
llvm::AMDGPU::IGLPStrategyID
IGLPStrategyID
Operand 0 immediate for IGLP_OPT pseudo instructions.
Definition
AMDGPUIGroupLP.h:23
llvm::AMDGPU::MFMASmallGemmSingleWaveOptID
@ MFMASmallGemmSingleWaveOptID
Definition
AMDGPUIGroupLP.h:25
llvm::AMDGPU::MFMAExpInterleaveID
@ MFMAExpInterleaveID
Definition
AMDGPUIGroupLP.h:26
llvm::AMDGPU::MFMAExpSimpleInterleaveID
@ MFMAExpSimpleInterleaveID
Definition
AMDGPUIGroupLP.h:27
llvm::AMDGPU::MFMASmallGemmOptID
@ MFMASmallGemmOptID
Definition
AMDGPUIGroupLP.h:24
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
FunctionInfo.h:25
llvm::createIGroupLPDAGMutation
std::unique_ptr< ScheduleDAGMutation > createIGroupLPDAGMutation(AMDGPU::SchedulingPhase Phase)
Phase specifes whether or not this is a reentry into the IGroupLPDAGMutation.
Definition
AMDGPUIGroupLP.cpp:2832
Generated on
for LLVM by
1.14.0