LLVM 22.0.0git
AMDKernelCodeTInfo.h File Reference

Go to the source code of this file.

Macros

#define QNAME(name)
#define FLD_T(name)
#define PRINTFIELD(sname, aname, name)
#define FIELD2(sname, aname, name)
#define FIELD(name)
#define PRINTCODEPROP(name)
#define PARSECODEPROP(name)
#define CODEPROP(name, shift)
#define PRINTCOMP(GetMacro, Shift)
#define PARSECOMP(SetMacro, Shift)
#define COMPPGM(name, aname, GetMacro, SetMacro, Shift)
#define COMPPGM1(name, aname, AccMacro)
#define COMPPGM2(name, aname, AccMacro)

Functions

 FIELD2 (amd_code_version_major, kernel_code_version_major, amd_kernel_code_version_major)
 FIELD2 (amd_code_version_minor, kernel_code_version_minor, amd_kernel_code_version_minor)
 FIELD2 (amd_machine_kind, machine_kind, amd_machine_kind)
 FIELD2 (amd_machine_version_major, machine_version_major, amd_machine_version_major)
 FIELD2 (amd_machine_version_minor, machine_version_minor, amd_machine_version_minor)
 FIELD2 (amd_machine_version_stepping, machine_version_stepping, amd_machine_version_stepping)
 FIELD (kernel_code_entry_byte_offset)
 FIELD (kernel_code_prefetch_byte_size)
 COMPPGM1 (granulated_workitem_vgpr_count, compute_pgm_rsrc1_vgprs, VGPRS)
 COMPPGM1 (granulated_wavefront_sgpr_count, compute_pgm_rsrc1_sgprs, SGPRS)
 COMPPGM1 (priority, compute_pgm_rsrc1_priority, PRIORITY)
 COMPPGM1 (float_mode, compute_pgm_rsrc1_float_mode, FLOAT_MODE)
 COMPPGM1 (priv, compute_pgm_rsrc1_priv, PRIV)
 COMPPGM1 (enable_dx10_clamp, compute_pgm_rsrc1_dx10_clamp, DX10_CLAMP)
 COMPPGM1 (debug_mode, compute_pgm_rsrc1_debug_mode, DEBUG_MODE)
 COMPPGM1 (enable_ieee_mode, compute_pgm_rsrc1_ieee_mode, IEEE_MODE)
 COMPPGM1 (enable_wgp_mode, compute_pgm_rsrc1_wgp_mode, WGP_MODE)
 COMPPGM1 (enable_mem_ordered, compute_pgm_rsrc1_mem_ordered, MEM_ORDERED)
 COMPPGM1 (enable_fwd_progress, compute_pgm_rsrc1_fwd_progress, FWD_PROGRESS)
 COMPPGM2 (enable_sgpr_private_segment_wave_byte_offset, compute_pgm_rsrc2_scratch_en, SCRATCH_EN)
 COMPPGM2 (user_sgpr_count, compute_pgm_rsrc2_user_sgpr, USER_SGPR)
 COMPPGM2 (enable_trap_handler, compute_pgm_rsrc2_trap_handler, TRAP_HANDLER)
 COMPPGM2 (enable_sgpr_workgroup_id_x, compute_pgm_rsrc2_tgid_x_en, TGID_X_EN)
 COMPPGM2 (enable_sgpr_workgroup_id_y, compute_pgm_rsrc2_tgid_y_en, TGID_Y_EN)
 COMPPGM2 (enable_sgpr_workgroup_id_z, compute_pgm_rsrc2_tgid_z_en, TGID_Z_EN)
 COMPPGM2 (enable_sgpr_workgroup_info, compute_pgm_rsrc2_tg_size_en, TG_SIZE_EN)
 COMPPGM2 (enable_vgpr_workitem_id, compute_pgm_rsrc2_tidig_comp_cnt, TIDIG_COMP_CNT)
 COMPPGM2 (enable_exception_msb, compute_pgm_rsrc2_excp_en_msb, EXCP_EN_MSB)
 COMPPGM2 (granulated_lds_size, compute_pgm_rsrc2_lds_size, LDS_SIZE)
 COMPPGM2 (enable_exception, compute_pgm_rsrc2_excp_en, EXCP_EN)
 CODEPROP (enable_sgpr_private_segment_buffer, ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER)
 CODEPROP (enable_sgpr_dispatch_ptr, ENABLE_SGPR_DISPATCH_PTR)
 CODEPROP (enable_sgpr_queue_ptr, ENABLE_SGPR_QUEUE_PTR)
 CODEPROP (enable_sgpr_kernarg_segment_ptr, ENABLE_SGPR_KERNARG_SEGMENT_PTR)
 CODEPROP (enable_sgpr_dispatch_id, ENABLE_SGPR_DISPATCH_ID)
 CODEPROP (enable_sgpr_flat_scratch_init, ENABLE_SGPR_FLAT_SCRATCH_INIT)
 CODEPROP (enable_sgpr_private_segment_size, ENABLE_SGPR_PRIVATE_SEGMENT_SIZE)
 CODEPROP (enable_sgpr_grid_workgroup_count_x, ENABLE_SGPR_GRID_WORKGROUP_COUNT_X)
 CODEPROP (enable_sgpr_grid_workgroup_count_y, ENABLE_SGPR_GRID_WORKGROUP_COUNT_Y)
 CODEPROP (enable_sgpr_grid_workgroup_count_z, ENABLE_SGPR_GRID_WORKGROUP_COUNT_Z)
 CODEPROP (enable_wavefront_size32, ENABLE_WAVEFRONT_SIZE32)
 CODEPROP (enable_ordered_append_gds, ENABLE_ORDERED_APPEND_GDS)
 CODEPROP (private_element_size, PRIVATE_ELEMENT_SIZE)
 CODEPROP (is_ptr64, IS_PTR64)
 CODEPROP (is_dynamic_callstack, IS_DYNAMIC_CALLSTACK)
 CODEPROP (is_debug_enabled, IS_DEBUG_SUPPORTED)
 CODEPROP (is_xnack_enabled, IS_XNACK_SUPPORTED)
 FIELD (workitem_private_segment_byte_size)
 FIELD (workgroup_group_segment_byte_size)
 FIELD (gds_segment_byte_size)
 FIELD (kernarg_segment_byte_size)
 FIELD (workgroup_fbarrier_count)
 FIELD (wavefront_sgpr_count)
 FIELD (workitem_vgpr_count)
 FIELD (reserved_vgpr_first)
 FIELD (reserved_vgpr_count)
 FIELD (reserved_sgpr_first)
 FIELD (reserved_sgpr_count)
 FIELD (debug_wavefront_private_segment_offset_sgpr)
 FIELD (debug_private_segment_buffer_sgpr)
 FIELD (kernarg_segment_alignment)
 FIELD (group_segment_alignment)
 FIELD (private_segment_alignment)
 FIELD (wavefront_size)
 FIELD (call_convention)

Macro Definition Documentation

◆ CODEPROP

#define CODEPROP ( name,
shift )
Value:
#define PRINTCODEPROP(name)
#define PARSECODEPROP(name)
#define RECORD(name, altName, print, parse)
static const char * name

Definition at line 46 of file AMDKernelCodeTInfo.h.

◆ COMPPGM

#define COMPPGM ( name,
aname,
GetMacro,
SetMacro,
Shift )
Value:
RECORD(name, aname, PRINTCOMP(GetMacro, Shift), PARSECOMP(SetMacro, Shift))
#define PRINTCOMP(GetMacro, Shift)
#define PARSECOMP(SetMacro, Shift)

Definition at line 72 of file AMDKernelCodeTInfo.h.

◆ COMPPGM1

#define COMPPGM1 ( name,
aname,
AccMacro )
Value:
COMPPGM(name, aname, G_00B848_##AccMacro, S_00B848_##AccMacro, 0)
#define COMPPGM(name, aname, GetMacro, SetMacro, Shift)

Definition at line 77 of file AMDKernelCodeTInfo.h.

◆ COMPPGM2

#define COMPPGM2 ( name,
aname,
AccMacro )
Value:
COMPPGM(name, aname, G_00B84C_##AccMacro, S_00B84C_##AccMacro, 32)

Definition at line 82 of file AMDKernelCodeTInfo.h.

◆ FIELD

#define FIELD ( name)
Value:
#define FIELD2(sname, aname, name)

Definition at line 28 of file AMDKernelCodeTInfo.h.

◆ FIELD2

#define FIELD2 ( sname,
aname,
name )
Value:
RECORD(sname, aname, PRINTFIELD(sname, aname, name), parseField<FLD_T(name)>)
#define FLD_T(name)
#define PRINTFIELD(sname, aname, name)
static bool parseField(AMDGPUMCKernelCodeT &C, MCAsmParser &MCParser, raw_ostream &Err)

Definition at line 23 of file AMDKernelCodeTInfo.h.

◆ FLD_T

#define FLD_T ( name)
Value:
decltype(QNAME(name)), &QNAME(name)
#define QNAME(name)

Definition at line 16 of file AMDKernelCodeTInfo.h.

◆ PARSECODEPROP

#define PARSECODEPROP ( name)
Value:
parseBitField<FLD_T(code_properties),\
AMD_CODE_PROPERTY_##name##_SHIFT,\
AMD_CODE_PROPERTY_##name##_WIDTH>
static bool parseBitField(AMDGPUMCKernelCodeT &C, MCAsmParser &MCParser, raw_ostream &Err)

Definition at line 39 of file AMDKernelCodeTInfo.h.

◆ PARSECOMP

#define PARSECOMP ( SetMacro,
Shift )
Value:
[](amd_kernel_code_t &C, MCAsmParser &MCParser, raw_ostream &Err) { \
int64_t Value = 0; \
if (!expectAbsExpression(MCParser, Value, Err)) \
return false; \
C.compute_pgm_resource_registers &= ~(SetMacro(0xFFFFFFFFFFFFFFFFULL) << Shift); \
C.compute_pgm_resource_registers |= SetMacro(Value) << Shift; \
return true; \
}
static bool expectAbsExpression(MCAsmParser &MCParser, int64_t &Value, raw_ostream &Err)
static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")
AMD Kernel Code Object (amd_kernel_code_t).

Definition at line 60 of file AMDKernelCodeTInfo.h.

◆ PRINTCODEPROP

#define PRINTCODEPROP ( name)
Value:
printBitField<FLD_T(code_properties),\
AMD_CODE_PROPERTY_##name##_SHIFT,\
AMD_CODE_PROPERTY_##name##_WIDTH>
static void printBitField(StringRef Name, const AMDGPUMCKernelCodeT &C, raw_ostream &OS, MCContext &, AMDGPUMCKernelCodeT::PrintHelper)

Definition at line 32 of file AMDKernelCodeTInfo.h.

◆ PRINTCOMP

#define PRINTCOMP ( GetMacro,
Shift )
Value:
[](StringRef Name, const amd_kernel_code_t &C, raw_ostream &OS) { \
printName(OS, Name) << \
(int)GetMacro(C.compute_pgm_resource_registers >> Shift); \
}

Definition at line 52 of file AMDKernelCodeTInfo.h.

◆ PRINTFIELD

#define PRINTFIELD ( sname,
aname,
name )
Value:
printField<FLD_T(name)>

Definition at line 19 of file AMDKernelCodeTInfo.h.

◆ QNAME

#define QNAME ( name)
Value:
AMDGPUMCKernelCodeT::name

Definition at line 15 of file AMDKernelCodeTInfo.h.

Function Documentation

◆ CODEPROP() [1/17]

CODEPROP ( enable_ordered_append_gds ,
ENABLE_ORDERED_APPEND_GDS  )

◆ CODEPROP() [2/17]

CODEPROP ( enable_sgpr_dispatch_id ,
ENABLE_SGPR_DISPATCH_ID  )

◆ CODEPROP() [3/17]

CODEPROP ( enable_sgpr_dispatch_ptr ,
ENABLE_SGPR_DISPATCH_PTR  )

◆ CODEPROP() [4/17]

CODEPROP ( enable_sgpr_flat_scratch_init ,
ENABLE_SGPR_FLAT_SCRATCH_INIT  )

◆ CODEPROP() [5/17]

CODEPROP ( enable_sgpr_grid_workgroup_count_x ,
ENABLE_SGPR_GRID_WORKGROUP_COUNT_X  )

◆ CODEPROP() [6/17]

CODEPROP ( enable_sgpr_grid_workgroup_count_y ,
ENABLE_SGPR_GRID_WORKGROUP_COUNT_Y  )

◆ CODEPROP() [7/17]

CODEPROP ( enable_sgpr_grid_workgroup_count_z ,
ENABLE_SGPR_GRID_WORKGROUP_COUNT_Z  )

◆ CODEPROP() [8/17]

CODEPROP ( enable_sgpr_kernarg_segment_ptr ,
ENABLE_SGPR_KERNARG_SEGMENT_PTR  )

◆ CODEPROP() [9/17]

CODEPROP ( enable_sgpr_private_segment_buffer ,
ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER  )

◆ CODEPROP() [10/17]

CODEPROP ( enable_sgpr_private_segment_size ,
ENABLE_SGPR_PRIVATE_SEGMENT_SIZE  )

◆ CODEPROP() [11/17]

CODEPROP ( enable_sgpr_queue_ptr ,
ENABLE_SGPR_QUEUE_PTR  )

◆ CODEPROP() [12/17]

CODEPROP ( enable_wavefront_size32 ,
ENABLE_WAVEFRONT_SIZE32  )

◆ CODEPROP() [13/17]

CODEPROP ( is_debug_enabled ,
IS_DEBUG_SUPPORTED  )

◆ CODEPROP() [14/17]

CODEPROP ( is_dynamic_callstack ,
IS_DYNAMIC_CALLSTACK  )

◆ CODEPROP() [15/17]

CODEPROP ( is_ptr64 ,
IS_PTR64  )

◆ CODEPROP() [16/17]

CODEPROP ( is_xnack_enabled ,
IS_XNACK_SUPPORTED  )

◆ CODEPROP() [17/17]

CODEPROP ( private_element_size ,
PRIVATE_ELEMENT_SIZE  )

◆ COMPPGM1() [1/11]

COMPPGM1 ( debug_mode ,
compute_pgm_rsrc1_debug_mode ,
DEBUG_MODE  )

◆ COMPPGM1() [2/11]

COMPPGM1 ( enable_dx10_clamp ,
compute_pgm_rsrc1_dx10_clamp ,
DX10_CLAMP  )

◆ COMPPGM1() [3/11]

COMPPGM1 ( enable_fwd_progress ,
compute_pgm_rsrc1_fwd_progress ,
FWD_PROGRESS  )

◆ COMPPGM1() [4/11]

COMPPGM1 ( enable_ieee_mode ,
compute_pgm_rsrc1_ieee_mode ,
IEEE_MODE  )

◆ COMPPGM1() [5/11]

COMPPGM1 ( enable_mem_ordered ,
compute_pgm_rsrc1_mem_ordered ,
MEM_ORDERED  )

◆ COMPPGM1() [6/11]

COMPPGM1 ( enable_wgp_mode ,
compute_pgm_rsrc1_wgp_mode ,
WGP_MODE  )

◆ COMPPGM1() [7/11]

COMPPGM1 ( float_mode ,
compute_pgm_rsrc1_float_mode ,
FLOAT_MODE  )

◆ COMPPGM1() [8/11]

COMPPGM1 ( granulated_wavefront_sgpr_count ,
compute_pgm_rsrc1_sgprs ,
SGPRS  )

◆ COMPPGM1() [9/11]

COMPPGM1 ( granulated_workitem_vgpr_count ,
compute_pgm_rsrc1_vgprs ,
VGPRS  )

◆ COMPPGM1() [10/11]

COMPPGM1 ( priority ,
compute_pgm_rsrc1_priority ,
PRIORITY  )

◆ COMPPGM1() [11/11]

COMPPGM1 ( priv ,
compute_pgm_rsrc1_priv ,
PRIV  )

◆ COMPPGM2() [1/11]

COMPPGM2 ( enable_exception ,
compute_pgm_rsrc2_excp_en ,
EXCP_EN  )

◆ COMPPGM2() [2/11]

COMPPGM2 ( enable_exception_msb ,
compute_pgm_rsrc2_excp_en_msb ,
EXCP_EN_MSB  )

◆ COMPPGM2() [3/11]

COMPPGM2 ( enable_sgpr_private_segment_wave_byte_offset ,
compute_pgm_rsrc2_scratch_en ,
SCRATCH_EN  )

◆ COMPPGM2() [4/11]

COMPPGM2 ( enable_sgpr_workgroup_id_x ,
compute_pgm_rsrc2_tgid_x_en ,
TGID_X_EN  )

◆ COMPPGM2() [5/11]

COMPPGM2 ( enable_sgpr_workgroup_id_y ,
compute_pgm_rsrc2_tgid_y_en ,
TGID_Y_EN  )

◆ COMPPGM2() [6/11]

COMPPGM2 ( enable_sgpr_workgroup_id_z ,
compute_pgm_rsrc2_tgid_z_en ,
TGID_Z_EN  )

◆ COMPPGM2() [7/11]

COMPPGM2 ( enable_sgpr_workgroup_info ,
compute_pgm_rsrc2_tg_size_en ,
TG_SIZE_EN  )

◆ COMPPGM2() [8/11]

COMPPGM2 ( enable_trap_handler ,
compute_pgm_rsrc2_trap_handler ,
TRAP_HANDLER  )

◆ COMPPGM2() [9/11]

COMPPGM2 ( enable_vgpr_workitem_id ,
compute_pgm_rsrc2_tidig_comp_cnt ,
TIDIG_COMP_CNT  )

◆ COMPPGM2() [10/11]

COMPPGM2 ( granulated_lds_size ,
compute_pgm_rsrc2_lds_size ,
LDS_SIZE  )

◆ COMPPGM2() [11/11]

COMPPGM2 ( user_sgpr_count ,
compute_pgm_rsrc2_user_sgpr ,
USER_SGPR  )

◆ FIELD() [1/20]

FIELD ( call_convention )

◆ FIELD() [2/20]

FIELD ( debug_private_segment_buffer_sgpr )

◆ FIELD() [3/20]

FIELD ( debug_wavefront_private_segment_offset_sgpr )

◆ FIELD() [4/20]

FIELD ( gds_segment_byte_size )

◆ FIELD() [5/20]

FIELD ( group_segment_alignment )

◆ FIELD() [6/20]

FIELD ( kernarg_segment_alignment )

◆ FIELD() [7/20]

FIELD ( kernarg_segment_byte_size )

◆ FIELD() [8/20]

FIELD ( kernel_code_entry_byte_offset )

◆ FIELD() [9/20]

FIELD ( kernel_code_prefetch_byte_size )

◆ FIELD() [10/20]

FIELD ( private_segment_alignment )

◆ FIELD() [11/20]

FIELD ( reserved_sgpr_count )

◆ FIELD() [12/20]

FIELD ( reserved_sgpr_first )

◆ FIELD() [13/20]

FIELD ( reserved_vgpr_count )

◆ FIELD() [14/20]

FIELD ( reserved_vgpr_first )

◆ FIELD() [15/20]

FIELD ( wavefront_sgpr_count )

◆ FIELD() [16/20]

FIELD ( wavefront_size )

◆ FIELD() [17/20]

FIELD ( workgroup_fbarrier_count )

◆ FIELD() [18/20]

FIELD ( workgroup_group_segment_byte_size )

◆ FIELD() [19/20]

FIELD ( workitem_private_segment_byte_size )

◆ FIELD() [20/20]

FIELD ( workitem_vgpr_count )

◆ FIELD2() [1/6]

FIELD2 ( amd_code_version_major ,
kernel_code_version_major ,
amd_kernel_code_version_major  )

◆ FIELD2() [2/6]

FIELD2 ( amd_code_version_minor ,
kernel_code_version_minor ,
amd_kernel_code_version_minor  )

◆ FIELD2() [3/6]

FIELD2 ( amd_machine_kind ,
machine_kind ,
amd_machine_kind  )

◆ FIELD2() [4/6]

FIELD2 ( amd_machine_version_major ,
machine_version_major ,
amd_machine_version_major  )

◆ FIELD2() [5/6]

FIELD2 ( amd_machine_version_minor ,
machine_version_minor ,
amd_machine_version_minor  )

◆ FIELD2() [6/6]

FIELD2 ( amd_machine_version_stepping ,
machine_version_stepping ,
amd_machine_version_stepping  )