LLVM: lib/Target/AMDGPU/AMDKernelCodeT.h File Reference (original) (raw)
Enumerator
AMD_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER_SHIFT
Enable the setup of the SGPR user data registers (AMD_CODE_PROPERTY_ENABLE_SGPR_*), see documentation of amd_kernel_code_t for initial register state.
The total number of SGPRuser data registers requested must not exceed 16. Any requests beyond 16 will be ignored.
Used to set COMPUTE_PGM_RSRC2.USER_SGPR (set to total count of SGPR user data registers enabled up to 16).
AMD_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER
AMD_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_PTR_SHIFT
AMD_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_PTR_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_PTR
AMD_CODE_PROPERTY_ENABLE_SGPR_QUEUE_PTR_SHIFT
AMD_CODE_PROPERTY_ENABLE_SGPR_QUEUE_PTR_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_QUEUE_PTR
AMD_CODE_PROPERTY_ENABLE_SGPR_KERNARG_SEGMENT_PTR_SHIFT
AMD_CODE_PROPERTY_ENABLE_SGPR_KERNARG_SEGMENT_PTR_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_KERNARG_SEGMENT_PTR
AMD_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_ID_SHIFT
AMD_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_ID_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_ID
AMD_CODE_PROPERTY_ENABLE_SGPR_FLAT_SCRATCH_INIT_SHIFT
AMD_CODE_PROPERTY_ENABLE_SGPR_FLAT_SCRATCH_INIT_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_FLAT_SCRATCH_INIT
AMD_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_SIZE_SHIFT
AMD_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_SIZE_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_SIZE
AMD_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_X_SHIFT
AMD_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_X_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_X
AMD_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_Y_SHIFT
AMD_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_Y_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_Y
AMD_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_Z_SHIFT
AMD_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_Z_WIDTH
AMD_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_Z
AMD_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32_SHIFT
AMD_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32_WIDTH
AMD_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32
AMD_CODE_PROPERTY_RESERVED1_SHIFT
AMD_CODE_PROPERTY_RESERVED1_WIDTH
AMD_CODE_PROPERTY_RESERVED1
AMD_CODE_PROPERTY_ENABLE_ORDERED_APPEND_GDS_SHIFT
Control wave ID base counter for GDS ordered-append.
Used to set COMPUTE_DISPATCH_INITIATOR.ORDERED_APPEND_ENBL. (Not sure if ORDERED_APPEND_MODE also needs to be settable)
AMD_CODE_PROPERTY_ENABLE_ORDERED_APPEND_GDS_WIDTH
AMD_CODE_PROPERTY_ENABLE_ORDERED_APPEND_GDS
AMD_CODE_PROPERTY_PRIVATE_ELEMENT_SIZE_SHIFT
The interleave (swizzle) element size in bytes required by the code for private memory.
This must be 2, 4, 8 or 16. This value is provided to the finalizer when it is invoked and is recorded here. The hardware will interleave the memory requests of each lane of a wavefront by this element size to ensure each work-item gets a distinct memory location. Therefore, the finalizer ensures that all load and store operations done to private memory do not exceed this size. For example, if the element size is 4 (32-bits or dword) and a 64-bit value must be loaded, the finalizer will generate two 32-bit loads. This ensures that the interleaving will get the work-item specific dword for both halves of the 64-bit value. If it just did a 64-bit load then it would get one dword which belonged to its own work-item, but the second dword would belong to the adjacent lane work-item since the interleaving is in dwords.
The value used must match the value that the runtime configures the GPU flat scratch (SH_STATIC_MEM_CONFIG.ELEMENT_SIZE). This is generally DWORD.
uSE VALUES FROM THE AMD_ELEMENT_BYTE_SIZE_T ENUM.
AMD_CODE_PROPERTY_PRIVATE_ELEMENT_SIZE_WIDTH
AMD_CODE_PROPERTY_PRIVATE_ELEMENT_SIZE
AMD_CODE_PROPERTY_IS_PTR64_SHIFT
Are global memory addresses 64 bits.
Must match amd_kernel_code_t.hsail_machine_model == HSA_MACHINE_LARGE. Must also match SH_MEM_CONFIG.PTR32 (GFX6 (SI)/GFX7 (CI)), SH_MEM_CONFIG.ADDRESS_MODE (GFX8 (VI)+).
AMD_CODE_PROPERTY_IS_PTR64_WIDTH
AMD_CODE_PROPERTY_IS_PTR64
AMD_CODE_PROPERTY_IS_DYNAMIC_CALLSTACK_SHIFT
Indicate if the generated ISA is using a dynamically sized call stack.
This can happen if calls are implemented using a call stack and recursion, alloca or calls to indirect functions are present. In these cases the Finalizer cannot compute the total private segment size at compile time. In this case the workitem_private_segment_byte_size only specifies the statically know private segment size, and additional space must be added for the call stack.
AMD_CODE_PROPERTY_IS_DYNAMIC_CALLSTACK_WIDTH
AMD_CODE_PROPERTY_IS_DYNAMIC_CALLSTACK
AMD_CODE_PROPERTY_IS_DEBUG_SUPPORTED_SHIFT
Indicate if code generated has support for debugging.
AMD_CODE_PROPERTY_IS_DEBUG_SUPPORTED_WIDTH
AMD_CODE_PROPERTY_IS_DEBUG_SUPPORTED
AMD_CODE_PROPERTY_IS_XNACK_SUPPORTED_SHIFT
AMD_CODE_PROPERTY_IS_XNACK_SUPPORTED_WIDTH
AMD_CODE_PROPERTY_IS_XNACK_SUPPORTED
AMD_CODE_PROPERTY_RESERVED2_SHIFT
AMD_CODE_PROPERTY_RESERVED2_WIDTH
AMD_CODE_PROPERTY_RESERVED2