LLVM 24.0.0git
GCNPreRAAntiHints.cpp File Reference

Insert register allocation anti-hints. More...

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "amdgpu-anti-hints"

Enumerations

enum class  AntiHintRule {
  None , MFMAWAW , MFMAWAR , WMMAWARAB ,
  SWMMACWARIndex , WMMAWAW , TransWAR , MemAddrWAR ,
  VAVdstWAR , All
}

Variables

static cl::list< AntiHintRule > AntiHintRuleSelection ("amdgpu-anti-hints-rules", cl::Hidden, cl::CommaSeparated, cl::desc("Anti-hints rules to select."), cl::values(clEnumValN(AntiHintRule::None, "none", "Select no rules"), clEnumValN(AntiHintRule::MFMAWAW, "mfma-waw", "MFMA destination write-after-write"), clEnumValN(AntiHintRule::MFMAWAR, "mfma-war", "XDL MFMA src2 write-after-read"), clEnumValN(AntiHintRule::WMMAWARAB, "wmma-war-ab", "XDL WMMA A/B source write-after-read"), clEnumValN(AntiHintRule::SWMMACWARIndex, "swmmac-war-index", "XDL SWMMAC sparse index write-after-read"), clEnumValN(AntiHintRule::WMMAWAW, "wmma-waw", "XDL WMMA destination write-after-write"), clEnumValN(AntiHintRule::TransWAR, "trans-war", "TRANS source write-after-read"), clEnumValN(AntiHintRule::MemAddrWAR, "mem-addr-war", "Memory address/data write-after-read (s_wait_xcnt)"), clEnumValN(AntiHintRule::VAVdstWAR, "va-vdst-war", "VALU source write-after-read by a load " "(s_wait_alu va_vdst)"), clEnumValN(AntiHintRule::All, "all", "Select all rules (default); per-rule " "-amdgpu-anti-hints-for-* still apply")))
static cl::opt< bool > EnableAntiHintsForAddr ("amdgpu-anti-hints-for-addr", cl::Hidden, cl::desc("Enable Anti-Hints for memory address " "operands and subsequent VGPR writes to " "avoid wait xcnt."), cl::init(true))
static cl::opt< bool > EnableAntiHintsForVAVdst ("amdgpu-anti-hints-for-va-vdst", cl::Hidden, cl::desc("Enable Anti-Hints for VA-VDST."), cl::init(false))
static cl::opt< unsigned > VAVDSTLookbackWindow ("amdgpu-va-vdst-lookback-window", cl::Hidden, cl::desc("Lookback window for VA_VDST anti-hints."), cl::init(32))
static cl::opt< unsigned > AddrAntiHintWindow ("amdgpu-addr-anti-hint-window", cl::Hidden, cl::desc("Number of later memory instructions an " "address anti-hint stays open."), cl::init(16))

Detailed Description

Insert register allocation anti-hints.

Definition in file GCNPreRAAntiHints.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "amdgpu-anti-hints"

Definition at line 27 of file GCNPreRAAntiHints.cpp.

Enumeration Type Documentation

◆ AntiHintRule

enum class AntiHintRule
strong
Enumerator
None 
MFMAWAW 
MFMAWAR 
WMMAWARAB 
SWMMACWARIndex 
WMMAWAW 
TransWAR 
MemAddrWAR 
VAVdstWAR 
All 

Definition at line 31 of file GCNPreRAAntiHints.cpp.

Variable Documentation

◆ AddrAntiHintWindow

cl::opt< unsigned > AddrAntiHintWindow("amdgpu-addr-anti-hint-window", cl::Hidden, cl::desc("Number of later memory instructions an " "address anti-hint stays open."), cl::init(16)) ( "amdgpu-addr-anti-hint-window" ,
cl::Hidden ,
cl::desc("Number of later memory instructions an " "address anti-hint stays open.") ,
cl::init(16)  )
static

◆ AntiHintRuleSelection

cl::list< AntiHintRule > AntiHintRuleSelection("amdgpu-anti-hints-rules", cl::Hidden, cl::CommaSeparated, cl::desc("Anti-hints rules to select."), cl::values(clEnumValN(AntiHintRule::None, "none", "Select no rules"), clEnumValN(AntiHintRule::MFMAWAW, "mfma-waw", "MFMA destination write-after-write"), clEnumValN(AntiHintRule::MFMAWAR, "mfma-war", "XDL MFMA src2 write-after-read"), clEnumValN(AntiHintRule::WMMAWARAB, "wmma-war-ab", "XDL WMMA A/B source write-after-read"), clEnumValN(AntiHintRule::SWMMACWARIndex, "swmmac-war-index", "XDL SWMMAC sparse index write-after-read"), clEnumValN(AntiHintRule::WMMAWAW, "wmma-waw", "XDL WMMA destination write-after-write"), clEnumValN(AntiHintRule::TransWAR, "trans-war", "TRANS source write-after-read"), clEnumValN(AntiHintRule::MemAddrWAR, "mem-addr-war", "Memory address/data write-after-read (s_wait_xcnt)"), clEnumValN(AntiHintRule::VAVdstWAR, "va-vdst-war", "VALU source write-after-read by a load " "(s_wait_alu va_vdst)"), clEnumValN(AntiHintRule::All, "all", "Select all rules (default); per-rule " "-amdgpu-anti-hints-for-* still apply"))) ( "amdgpu-anti-hints-rules" ,
cl::Hidden ,
cl::CommaSeparated ,
cl::desc("Anti-hints rules to select.") ,
cl::values(clEnumValN(AntiHintRule::None, "none", "Select no rules"), clEnumValN(AntiHintRule::MFMAWAW, "mfma-waw", "MFMA destination write-after-write"), clEnumValN(AntiHintRule::MFMAWAR, "mfma-war", "XDL MFMA src2 write-after-read"), clEnumValN(AntiHintRule::WMMAWARAB, "wmma-war-ab", "XDL WMMA A/B source write-after-read"), clEnumValN(AntiHintRule::SWMMACWARIndex, "swmmac-war-index", "XDL SWMMAC sparse index write-after-read"), clEnumValN(AntiHintRule::WMMAWAW, "wmma-waw", "XDL WMMA destination write-after-write"), clEnumValN(AntiHintRule::TransWAR, "trans-war", "TRANS source write-after-read"), clEnumValN(AntiHintRule::MemAddrWAR, "mem-addr-war", "Memory address/data write-after-read (s_wait_xcnt)"), clEnumValN(AntiHintRule::VAVdstWAR, "va-vdst-war", "VALU source write-after-read by a load " "(s_wait_alu va_vdst)"), clEnumValN(AntiHintRule::All, "all", "Select all rules (default); per-rule " "-amdgpu-anti-hints-for-* still apply"))  )
static

◆ EnableAntiHintsForAddr

cl::opt< bool > EnableAntiHintsForAddr("amdgpu-anti-hints-for-addr", cl::Hidden, cl::desc("Enable Anti-Hints for memory address " "operands and subsequent VGPR writes to " "avoid wait xcnt."), cl::init(true)) ( "amdgpu-anti-hints-for-addr" ,
cl::Hidden ,
cl::desc("Enable Anti-Hints for memory address " "operands and subsequent VGPR writes to " "avoid wait xcnt.") ,
cl::init(true)  )
static

◆ EnableAntiHintsForVAVdst

cl::opt< bool > EnableAntiHintsForVAVdst("amdgpu-anti-hints-for-va-vdst", cl::Hidden, cl::desc("Enable Anti-Hints for VA-VDST."), cl::init(false)) ( "amdgpu-anti-hints-for-va-vdst" ,
cl::Hidden ,
cl::desc("Enable Anti-Hints for VA-VDST.") ,
cl::init(false)  )
static

◆ VAVDSTLookbackWindow

cl::opt< unsigned > VAVDSTLookbackWindow("amdgpu-va-vdst-lookback-window", cl::Hidden, cl::desc("Lookback window for VA_VDST anti-hints."), cl::init(32)) ( "amdgpu-va-vdst-lookback-window" ,
cl::Hidden ,
cl::desc("Lookback window for VA_VDST anti-hints.") ,
cl::init(32)  )
static