LLVM: include/llvm/Support/AMDHSAKernelDescriptor.h File Reference (original) (raw)
AMDHSA kernel descriptor definitions. More...
#include <cstddef>
#include <cstdint>
Go to the source code of this file.
Namespaces | |
---|---|
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::amdhsa |
Macros | |
---|---|
#define | offsetof(TYPE, MEMBER) ((size_t)&((TYPE*)0)->MEMBER) |
#define | AMDHSA_BITS_ENUM_ENTRY(NAME, SHIFT, WIDTH) |
#define | AMDHSA_BITS_GET(SRC, MSK) ((SRC & MSK) >> MSK ## _SHIFT) |
#define | AMDHSA_BITS_SET(DST, MSK, VAL) |
#define | COMPUTE_PGM_RSRC1(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_ ## NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC1_GFX6_GFX8(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX6_GFX8_ ## NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC1_GFX6_GFX9(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX6_GFX9_ ## NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC1_GFX6_GFX11(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX6_GFX11_##NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC1_GFX9_PLUS(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX9_PLUS_ ## NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC1_GFX10_PLUS(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX10_PLUS_ ## NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC1_GFX12_PLUS(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX12_PLUS_##NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC2(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC2_ ## NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC2_GFX6_GFX11(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC2_GFX6_GFX11_##NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC2_GFX12_PLUS(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC2_GFX12_PLUS_##NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC3_GFX90A(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX90A_ ## NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC3_GFX10_PLUS(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX10_PLUS_ ## NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC3_GFX10(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX10_##NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC3_GFX10_GFX11(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX10_GFX11_##NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC3_GFX11_PLUS(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX11_PLUS_ ## NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC3_GFX11(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX11_##NAME, SHIFT, WIDTH) |
#define | COMPUTE_PGM_RSRC3_GFX12_PLUS(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX12_PLUS_##NAME, SHIFT, WIDTH) |
#define | KERNEL_CODE_PROPERTY(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(KERNEL_CODE_PROPERTY_ ## NAME, SHIFT, WIDTH) |
#define | KERNARG_PRELOAD_SPEC(NAME, SHIFT, WIDTH) AMDHSA_BITS_ENUM_ENTRY(KERNARG_PRELOAD_SPEC_##NAME, SHIFT, WIDTH) |
AMDHSA kernel descriptor definitions.
For more information, visit https://llvm.org/docs/AMDGPUUsage.html#kernel-descriptor
Warning
Any changes to this file should also be audited for corresponding changes needed in both the assembler and disassembler, namely:
- AMDGPUAsmPrinter.{cpp,h}
- AMDGPUTargetStreamer.{cpp,h}
- AMDGPUDisassembler.{cpp,h}
Definition in file AMDHSAKernelDescriptor.h.
◆ AMDHSA_BITS_ENUM_ENTRY
| #define AMDHSA_BITS_ENUM_ENTRY | ( | | NAME, | | --------------------------------- | - | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | | | |
Value:
NAME ## _SHIFT = (SHIFT), \
NAME ## _WIDTH = (WIDTH), \
NAME = (((1 << (WIDTH)) - 1) << (SHIFT))
Definition at line 36 of file AMDHSAKernelDescriptor.h.
◆ AMDHSA_BITS_GET
| #define AMDHSA_BITS_GET | ( | | SRC, | | ------------------------- | ------------------------------- | | ---- | | | MSK | | | | | ) | ((SRC & MSK) >> MSK ## _SHIFT) | | |
◆ AMDHSA_BITS_SET
| #define AMDHSA_BITS_SET | ( | | DST, | | ------------------------- | - | | ---- | | | MSK, | | | | | | VAL | | | | | ) | | | |
Value:
do { \
auto local = VAL; \
DST &= ~MSK; \
DST |= ((local << MSK##_SHIFT) & MSK); \
} while (0)
Definition at line 49 of file AMDHSAKernelDescriptor.h.
◆ COMPUTE_PGM_RSRC1
| #define COMPUTE_PGM_RSRC1 | ( | | NAME, | | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_ ## NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC1_GFX10_PLUS
| #define COMPUTE_PGM_RSRC1_GFX10_PLUS | ( | | NAME, | | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX10_PLUS_ ## NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC1_GFX12_PLUS
| #define COMPUTE_PGM_RSRC1_GFX12_PLUS | ( | | NAME, | | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX12_PLUS_##NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC1_GFX6_GFX11
| #define COMPUTE_PGM_RSRC1_GFX6_GFX11 | ( | | NAME, | | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX6_GFX11_##NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC1_GFX6_GFX8
| #define COMPUTE_PGM_RSRC1_GFX6_GFX8 | ( | | NAME, | | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX6_GFX8_ ## NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC1_GFX6_GFX9
| #define COMPUTE_PGM_RSRC1_GFX6_GFX9 | ( | | NAME, | | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX6_GFX9_ ## NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC1_GFX9_PLUS
| #define COMPUTE_PGM_RSRC1_GFX9_PLUS | ( | | NAME, | | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC1_GFX9_PLUS_ ## NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC2
| #define COMPUTE_PGM_RSRC2 | ( | | NAME, | | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC2_ ## NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC2_GFX12_PLUS
| #define COMPUTE_PGM_RSRC2_GFX12_PLUS | ( | | NAME, | | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC2_GFX12_PLUS_##NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC2_GFX6_GFX11
| #define COMPUTE_PGM_RSRC2_GFX6_GFX11 | ( | | NAME, | | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC2_GFX6_GFX11_##NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC3_GFX10
| #define COMPUTE_PGM_RSRC3_GFX10 | ( | | NAME, | | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX10_##NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC3_GFX10_GFX11
| #define COMPUTE_PGM_RSRC3_GFX10_GFX11 | ( | | NAME, | | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX10_GFX11_##NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC3_GFX10_PLUS
| #define COMPUTE_PGM_RSRC3_GFX10_PLUS | ( | | NAME, | | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX10_PLUS_ ## NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC3_GFX11
| #define COMPUTE_PGM_RSRC3_GFX11 | ( | | NAME, | | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX11_##NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC3_GFX11_PLUS
| #define COMPUTE_PGM_RSRC3_GFX11_PLUS | ( | | NAME, | | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX11_PLUS_ ## NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC3_GFX12_PLUS
| #define COMPUTE_PGM_RSRC3_GFX12_PLUS | ( | | NAME, | | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX12_PLUS_##NAME, SHIFT, WIDTH) | | |
◆ COMPUTE_PGM_RSRC3_GFX90A
| #define COMPUTE_PGM_RSRC3_GFX90A | ( | | NAME, | | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(COMPUTE_PGM_RSRC3_GFX90A_ ## NAME, SHIFT, WIDTH) | | |
◆ KERNARG_PRELOAD_SPEC
| #define KERNARG_PRELOAD_SPEC | ( | | NAME, | | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(KERNARG_PRELOAD_SPEC_##NAME, SHIFT, WIDTH) | | |
◆ KERNEL_CODE_PROPERTY
| #define KERNEL_CODE_PROPERTY | ( | | NAME, | | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | | ----- | | | SHIFT, | | | | | | WIDTH | | | | | ) | AMDHSA_BITS_ENUM_ENTRY(KERNEL_CODE_PROPERTY_ ## NAME, SHIFT, WIDTH) | | |
◆ offsetof
| #define offsetof | ( | | TYPE, | | ---------------- | ------------------------------- | | ----- | | | MEMBER | | | | | ) | ((size_t)&((TYPE*)0)->MEMBER) | | |