100typedef enum loomc_link_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
Per-invocation configuration bindings.
struct loomc_context_t loomc_context_t
Immutable Loom API context.
Definition context.h:47
loomc_link_flag_bits_t
Link operation flags.
Definition link.h:100
@ LOOMC_LINK_FLAG_INCLUDE_EXPORTED_ROOTS
Select exported symbols as roots and compute their dependency closure.
Definition link.h:102
@ LOOMC_LINK_FLAG_STRIP_TEST_SYMBOLS
Strip symbols used only by test or benchmark tooling.
Definition link.h:108
@ LOOMC_LINK_FLAG_ALLOW_UNRESOLVED_SYMBOLS
Leave unresolved references for later verification or specialization.
Definition link.h:105
void loomc_linker_retain(loomc_linker_t *linker)
Retains a prepared linker for another owner.
uint32_t loomc_link_flags_t
Bitmask of loomc_link_flag_bits_t values.
Definition link.h:112
void loomc_linker_release(loomc_linker_t *linker)
Releases a prepared linker from one owner.
struct loomc_linker_t loomc_linker_t
Prepared immutable linker.
Definition link.h:77
loomc_status_t loomc_link_module(loomc_linker_t *linker, loomc_workspace_t *workspace, const loomc_link_options_t *options, loomc_module_t **out_module, loomc_result_t **out_result)
Links a frozen index into an opaque module.
loomc_status_t loomc_linker_create(loomc_context_t *context, const loomc_linker_options_t *options, loomc_allocator_t allocator, loomc_linker_t **out_linker)
Creates a prepared immutable linker.
Reusable link indexes for deterministic library and source discovery.
struct loomc_link_index_t loomc_link_index_t
Frozen immutable link index.
Definition link_index.h:62
Opaque in-memory Loom modules.
struct loomc_module_t loomc_module_t
Opaque parsed, linked, optimized, or lowered module.
Definition module.h:89
Shared operation result container.
struct loomc_result_t loomc_result_t
Immutable operation result.
Definition result.h:63
Host allocator used for persistent Loom object storage.
Definition base.h:375
Configuration options attached to a link or compile invocation.
Definition config.h:76
Link invocation options.
Definition link.h:124
loomc_host_size_t root_symbol_count
Number of entries in root_symbols.
Definition link.h:145
loomc_string_view_t module_name
Output module name for this invocation. Empty uses the linker's default.
Definition link.h:138
const void * next
Extension chain for future link invocation options.
Definition link.h:132
loomc_structure_type_t type
Structure type. Must be LOOMC_STRUCTURE_TYPE_LINK_OPTIONS when nonzero.
Definition link.h:126
loomc_config_options_t config
Per-invocation config bindings materialized into the linked output module.
Definition link.h:151
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition link.h:129
loomc_link_index_t * link_index
Frozen provider index to link.
Definition link.h:135
loomc_link_flags_t flags
Link operation flags.
Definition link.h:148
const loomc_string_view_t * root_symbols
Root symbol names for selective linking.
Definition link.h:142
Linker creation options.
Definition link.h:84
loomc_string_view_t module_name
Default output module name for invocations that do not override it.
Definition link.h:96
loomc_structure_type_t type
Structure type.
Definition link.h:87
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition link.h:90
const void * next
Extension chain for future linker options.
Definition link.h:93
Non-owning string view over bytes that need not be NUL-terminated.
Definition base.h:63
Per-worker scratch workspace.
struct loomc_workspace_t loomc_workspace_t
Mutable per-worker scratch workspace.
Definition workspace.h:54