7#ifndef LOOMC_COMPILE_H_
8#define LOOMC_COMPILE_H_
99typedef enum loomc_compile_artifact_flag_bits_e {
#define LOOMC_API_EXPORT
Exports a public Loom C API symbol from a shared library build.
Definition base.h:34
size_t loomc_host_size_t
Host allocation and container size type.
Definition base.h:45
loomc_structure_type_t
Structure type values used by extensible public descriptors.
Definition base.h:181
struct iree_status_handle_t * loomc_status_t
Opaque status handle.
Definition base.h:55
const loomc_product_descriptor_t * loomc_compiled_module_product_descriptor(void)
Returns the process-local descriptor for products from loomc_compile_request.
uint32_t loomc_compile_artifact_flags_t
Bitmask of loomc_compile_artifact_flag_bits_t.
Definition compile.h:120
loomc_status_t loomc_compile_artifact(loomc_compiler_t *compiler, loomc_workspace_t *workspace, const loomc_pass_program_t *pass_program, loomc_module_t *module, const loomc_compile_artifact_options_t *options, loomc_allocator_t allocator, loomc_result_t **out_result)
Compiles one mutable module through final target artifact emission.
void loomc_compiler_release(loomc_compiler_t *compiler)
Releases a prepared compiler from one owner.
loomc_status_t loomc_compile_module(loomc_compiler_t *compiler, loomc_workspace_t *workspace, const loomc_pass_program_t *pass_program, loomc_module_t *module, const loomc_compile_options_t *options, loomc_allocator_t allocator, loomc_result_t **out_result)
Compiles a mutable module into in-memory artifacts.
struct loomc_compiler_t loomc_compiler_t
Prepared immutable compiler.
Definition compile.h:96
loomc_status_t loomc_compile_request(loomc_compiler_t *compiler, loomc_workspace_t *workspace, const loomc_pass_program_t *pass_program, const loomc_request_t *request, const loomc_compile_options_t *options, loomc_allocator_t allocator, loomc_product_t **out_product, loomc_result_t **out_result)
Compiles one immutable leaf request into a compiler product.
loomc_status_t loomc_compiler_create(loomc_context_t *context, const loomc_compiler_options_t *options, loomc_allocator_t allocator, loomc_compiler_t **out_compiler)
Creates a prepared immutable compiler.
void loomc_compiler_retain(loomc_compiler_t *compiler)
Retains a prepared compiler for another owner.
loomc_compile_artifact_flag_bits_t
Compile artifact request bits.
Definition compile.h:99
@ LOOMC_COMPILE_ARTIFACT_FLAG_REPORT_JSON
Return a JSON compile report artifact.
Definition compile.h:108
@ LOOMC_COMPILE_ARTIFACT_FLAG_LAUNCH_CONFIG
Return the compiled host launch-config program for all kernel entries.
Definition compile.h:116
@ LOOMC_COMPILE_ARTIFACT_FLAG_MODULE_TEXT
Return textual Loom module IR after successful compilation.
Definition compile.h:101
@ LOOMC_COMPILE_ARTIFACT_FLAG_MODULE_BYTECODE
Return binary Loom bytecode after successful compilation.
Definition compile.h:104
Text and JSON configuration bindings.
uint32_t loomc_config_policy_flags_t
Bitmask of loomc_config_policy_flag_bits_t values.
Definition config.h:67
struct loomc_context_t loomc_context_t
Immutable Loom API context.
Definition context.h:63
Target artifact emission from prepared Loom modules.
Opaque in-memory Loom modules.
struct loomc_module_t loomc_module_t
Opaque parsed, linked, optimized, or lowered module.
Definition module.h:90
struct loomc_pass_program_t loomc_pass_program_t
Prepared immutable pass program.
Definition pass.h:88
Streaming pass-boundary IR traces.
Immutable compiler products and their recursively published requests.
struct loomc_product_t loomc_product_t
Immutable successful compiler product.
Definition product.h:66
struct loomc_request_t loomc_request_t
Immutable independently compilable product request.
Definition product.h:167
struct loomc_product_descriptor_t loomc_product_descriptor_t
Opaque process-local identity for one product representation.
Definition product.h:51
Shared operation result container.
struct loomc_result_t loomc_result_t
Immutable operation result.
Definition result.h:71
Host allocator used for persistent Loom object storage.
Definition base.h:414
Complete target-artifact compilation options.
Definition compile.h:197
loomc_compile_artifact_flags_t artifact_flags
Additional compiler-side artifacts returned with the primary target artifact.
Definition compile.h:235
loomc_host_size_t root_count
Number of entries in roots.
Definition compile.h:213
const void * next
Extension chain for compile-artifact options such as loomc_sanitizer_options_t and loomc_pass_trace_o...
Definition compile.h:207
const loomc_string_view_t * excluded_roots
Default root symbol names to exclude, or NULL for no exclusions.
Definition compile.h:216
const loomc_string_view_t * roots
Explicit root symbol names, or NULL to derive default roots.
Definition compile.h:210
loomc_host_size_t excluded_root_count
Number of entries in excluded_roots.
Definition compile.h:219
const loomc_emit_options_t * emit_options
Optional target emission options.
Definition compile.h:229
const loomc_config_options_t * config
Optional typed configuration applied before root resolution.
Definition compile.h:225
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition compile.h:203
loomc_target_profile_t * target_profile
Optional complete target profile applied at the compile boundary.
Definition compile.h:222
loomc_structure_type_t type
Structure type.
Definition compile.h:200
Compile invocation options.
Definition compile.h:150
const loomc_module_t * config_module
Optional module containing only exact config.def operations.
Definition compile.h:181
const void * next
Extension chain for compile invocation options such as loomc_target_specialization_options_t,...
Definition compile.h:161
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition compile.h:156
loomc_compile_artifact_flags_t artifact_flags
Requested result artifacts.
Definition compile.h:169
loomc_string_view_t module_name
Runtime artifact module name for this invocation.
Definition compile.h:165
loomc_structure_type_t type
Structure type.
Definition compile.h:153
loomc_config_policy_flags_t config_flags
Config validation and final-resolution policy.
Definition compile.h:172
Compiler creation options.
Definition compile.h:127
const void * next
Extension chain for future compiler options.
Definition compile.h:136
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition compile.h:133
loomc_structure_type_t type
Structure type.
Definition compile.h:130
Text configuration bindings and resolution policy shared by API operations.
Definition config.h:78
Target emission options.
Definition emit.h:126
Non-owning string view over bytes that need not be NUL-terminated.
Definition base.h:63
struct loomc_target_profile_t loomc_target_profile_t
Prepared immutable target profile.
Definition target.h:136
Per-worker scratch workspace.
struct loomc_workspace_t loomc_workspace_t
Mutable per-worker scratch workspace.
Definition workspace.h:54