Runtime compilation#

const char *hiprtcGetErrorString(hiprtcResult result)#

Returns text string message to explain the error which occurred.

See also

hiprtcResult

Warning

In HIP, this function returns the name of the error, if the hiprtc result is defined, it will return “Invalid HIPRTC error code”

Parameters:

result[in] code to convert to string.

Returns:

const char pointer to the NULL-terminated error string

hiprtcResult hiprtcVersion(int *major, int *minor)#

Sets the parameters as major and minor version.

Parameters:
  • major[out] HIP Runtime Compilation major version.

  • minor[out] HIP Runtime Compilation minor version.

Returns:

HIPRTC_ERROR_INVALID_INPUT, HIPRTC_SUCCESS

hiprtcResult hiprtcAddNameExpression(hiprtcProgram prog, const char *name_expression)#

Adds the given name exprssion to the runtime compilation program.

If const char pointer is NULL, it will return HIPRTC_ERROR_INVALID_INPUT.

See also

hiprtcResult

Parameters:
  • prog[in] runtime compilation program instance.

  • name_expression[in] const char pointer to the name expression.

Returns:

HIPRTC_SUCCESS

hiprtcResult hiprtcCompileProgram(hiprtcProgram prog, int numOptions, const char **options)#

Compiles the given runtime compilation program.

If the compiler failed to build the runtime compilation program, it will return HIPRTC_ERROR_COMPILATION.

See also

hiprtcResult

Parameters:
  • prog[in] runtime compilation program instance.

  • numOptions[in] number of compiler options.

  • options[in] compiler options as const array of strins.

Returns:

HIPRTC_SUCCESS

hiprtcResult hiprtcCreateProgram(hiprtcProgram *prog, const char *src, const char *name, int numHeaders, const char **headers, const char **includeNames)#

Creates an instance of hiprtcProgram with the given input parameters, and sets the output hiprtcProgram prog with it.

Any invalide input parameter, it will return HIPRTC_ERROR_INVALID_INPUT or HIPRTC_ERROR_INVALID_PROGRAM.

If failed to create the program, it will return HIPRTC_ERROR_PROGRAM_CREATION_FAILURE.

See also

hiprtcResult

Parameters:
  • prog[inout] runtime compilation program instance.

  • src[in] const char pointer to the program source.

  • name[in] const char pointer to the program name.

  • numHeaders[in] number of headers.

  • headers[in] array of strings pointing to headers.

  • includeNames[in] array of strings pointing to names included in program source.

Returns:

HIPRTC_SUCCESS

hiprtcResult hiprtcDestroyProgram(hiprtcProgram *prog)#

Destroys an instance of given hiprtcProgram.

If prog is NULL, it will return HIPRTC_ERROR_INVALID_INPUT.

See also

hiprtcResult

Parameters:

prog[in] runtime compilation program instance.

Returns:

HIPRTC_SUCCESS

hiprtcResult hiprtcGetLoweredName(hiprtcProgram prog, const char *name_expression, const char **lowered_name)#

Gets the lowered (mangled) name from an instance of hiprtcProgram with the given input parameters, and sets the output lowered_name with it.

If any invalide nullptr input parameters, it will return HIPRTC_ERROR_INVALID_INPUT

If name_expression is not found, it will return HIPRTC_ERROR_NAME_EXPRESSION_NOT_VALID

If failed to get lowered_name from the program, it will return HIPRTC_ERROR_COMPILATION.

See also

hiprtcResult

Parameters:
  • prog[in] runtime compilation program instance.

  • name_expression[in] const char pointer to the name expression.

  • lowered_name[inout] const char array to the lowered (mangled) name.

Returns:

HIPRTC_SUCCESS

hiprtcResult hiprtcGetProgramLog(hiprtcProgram prog, char *log)#

Gets the log generated by the runtime compilation program instance.

See also

hiprtcResult

Parameters:
  • prog[in] runtime compilation program instance.

  • log[out] memory pointer to the generated log.

Returns:

HIPRTC_SUCCESS

hiprtcResult hiprtcGetCode(hiprtcProgram prog, char *code)#

Gets the pointer of compilation binary by the runtime compilation program instance.

See also

hiprtcResult

Parameters:
  • prog[in] runtime compilation program instance.

  • code[out] char pointer to binary.

Returns:

HIPRTC_SUCCESS

hiprtcResult hiprtcGetCodeSize(hiprtcProgram prog, size_t *codeSizeRet)#

Gets the size of compilation binary by the runtime compilation program instance.

See also

hiprtcResult

Parameters:
  • prog[in] runtime compilation program instance.

  • codeSizeRet[out] the size of binary.

Returns:

HIPRTC_SUCCESS

hiprtcResult hiprtcGetBitcodeSize(hiprtcProgram prog, size_t *bitcode_size)#

Gets the size of compiled bitcode by the runtime compilation program instance.

See also

hiprtcResult

Parameters:
  • prog[in] runtime compilation program instance.

  • bitcode_size[out] the size of bitcode.

Returns:

HIPRTC_SUCCESS

hiprtcResult hiprtcLinkCreate(unsigned int num_options, hiprtcJIT_option *option_ptr, void **option_vals_pptr, hiprtcLinkState *hip_link_state_ptr)#

Creates the link instance via hiprtc APIs.

See also

hiprtcResult

Parameters:
  • num_options[in] Number of options

  • option_ptr[in] Array of options

  • option_vals_pptr[in] Array of option values cast to void*

  • hip_link_state_ptr[out] hiprtc link state created upon success

Returns:

HIPRTC_SUCCESS, HIPRTC_ERROR_INVALID_INPUT, HIPRTC_ERROR_INVALID_OPTION

hiprtcResult hiprtcLinkAddFile(hiprtcLinkState hip_link_state, hiprtcJITInputType input_type, const char *file_path, unsigned int num_options, hiprtcJIT_option *options_ptr, void **option_values)#

Adds a file with bit code to be linked with options.

If input values are invalid, it will

See also

hiprtcResult

Parameters:
  • hip_link_state[in] hiprtc link state

  • input_type[in] Type of the input data or bitcode

  • file_path[in] Path to the input file where bitcode is present

  • num_options[in] Size of the options

  • options_ptr[in] Array of options applied to this input

  • option_values[in] Array of option values cast to void*

Returns:

HIPRTC_SUCCESS

Returns:

HIPRTC_ERROR_INVALID_INPUT

hiprtcResult hiprtcLinkAddData(hiprtcLinkState hip_link_state, hiprtcJITInputType input_type, void *image, size_t image_size, const char *name, unsigned int num_options, hiprtcJIT_option *options_ptr, void **option_values)#

Completes the linking of the given program.

If adding the file fails, it will

See also

hiprtcResult

Parameters:
  • hip_link_state[in] hiprtc link state

  • input_type[in] Type of the input data or bitcode

  • image[in] Input data which is null terminated

  • image_size[in] Size of the input data

  • name[in] Optional name for this input

  • num_options[in] Size of the options

  • options_ptr[in] Array of options applied to this input

  • option_values[in] Array of option values cast to void*

Returns:

HIPRTC_SUCCESS, HIPRTC_ERROR_INVALID_INPUT

Returns:

HIPRTC_ERROR_PROGRAM_CREATION_FAILURE

hiprtcResult hiprtcLinkComplete(hiprtcLinkState hip_link_state, void **bin_out, size_t *size_out)#

Completes the linking of the given program.

If adding the data fails, it will

See also

hiprtcResult

Parameters:
  • hip_link_state[in] hiprtc link state

  • bin_out[out] Upon success, points to the output binary

  • size_out[out] Size of the binary is stored (optional)

Returns:

HIPRTC_SUCCESS

Returns:

HIPRTC_ERROR_LINKING

hiprtcResult hiprtcLinkDestroy(hiprtcLinkState hip_link_state)#

Deletes the link instance via hiprtc APIs.

See also

hiprtcResult

Parameters:

hip_link_state[in] link state instance

Returns:

HIPRTC_SUCCESS