LLVM 20.0.0git
Macros | Functions
AMDKernelCodeTInfo.h File Reference

Go to the source code of this file.

Macros

#define QNAME(name)   AMDGPUMCKernelCodeT::name
 
#define FLD_T(name)   decltype(QNAME(name)), &QNAME(name)
 
#define PRINTFIELD(sname, aname, name)   printField<FLD_T(name)>
 
#define FIELD2(sname, aname, name)    RECORD(sname, aname, PRINTFIELD(sname, aname, name), parseField<FLD_T(name)>)
 
#define FIELD(name)   FIELD2(name, name, name)
 
#define PRINTCODEPROP(name)
 
#define PARSECODEPROP(name)
 
#define CODEPROP(name, shift)    RECORD(name, name, PRINTCODEPROP(shift), PARSECODEPROP(shift))
 
#define PRINTCOMP(GetMacro, Shift)
 
#define PARSECOMP(SetMacro, Shift)
 
#define COMPPGM(name, aname, GetMacro, SetMacro, Shift)    RECORD(name, aname, PRINTCOMP(GetMacro, Shift), PARSECOMP(SetMacro, Shift))
 
#define COMPPGM1(name, aname, AccMacro)    COMPPGM(name, aname, G_00B848_##AccMacro, S_00B848_##AccMacro, 0)
 
#define COMPPGM2(name, aname, AccMacro)    COMPPGM(name, aname, G_00B84C_##AccMacro, S_00B84C_##AccMacro, 32)
 

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 
)     RECORD(name, name, PRINTCODEPROP(shift), PARSECODEPROP(shift))

Definition at line 46 of file AMDKernelCodeTInfo.h.

◆ COMPPGM

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

Definition at line 72 of file AMDKernelCodeTInfo.h.

◆ COMPPGM1

#define COMPPGM1 (   name,
  aname,
  AccMacro 
)     COMPPGM(name, aname, G_00B848_##AccMacro, S_00B848_##AccMacro, 0)

Definition at line 77 of file AMDKernelCodeTInfo.h.

◆ COMPPGM2

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

Definition at line 82 of file AMDKernelCodeTInfo.h.

◆ FIELD

#define FIELD (   name)    FIELD2(name, name, name)

Definition at line 28 of file AMDKernelCodeTInfo.h.

◆ FIELD2

#define FIELD2 (   sname,
  aname,
  name 
)     RECORD(sname, aname, PRINTFIELD(sname, aname, name), parseField<FLD_T(name)>)

Definition at line 23 of file AMDKernelCodeTInfo.h.

◆ FLD_T

#define FLD_T (   name)    decltype(QNAME(name)), &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>
#define FLD_T(name)
static bool parseBitField(AMDGPUMCKernelCodeT &C, MCAsmParser &MCParser, raw_ostream &Err)
static const char * name
Definition: SMEABIPass.cpp:46

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); \
}
std::string Name
raw_pwrite_stream & OS

Definition at line 52 of file AMDKernelCodeTInfo.h.

◆ PRINTFIELD

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

Definition at line 19 of file AMDKernelCodeTInfo.h.

◆ QNAME

#define QNAME (   name)    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   
)