143typedef enum loomc_target_fact_state_e {
231typedef enum loomc_target_pipeline_kind_e {
241typedef enum loomc_target_control_flow_lowering_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
Reusable Loom API context.
struct loomc_context_t loomc_context_t
Immutable Loom API context.
Definition context.h:47
struct loomc_pass_program_t loomc_pass_program_t
Prepared immutable pass program.
Definition pass.h:86
Shared operation result container.
struct loomc_result_t loomc_result_t
Immutable operation result.
Definition result.h:64
Sanitizer compile options.
Host allocator used for persistent Loom object storage.
Definition base.h:390
Context option extension that registers a target environment.
Definition target.h:160
loomc_target_environment_t * target_environment
Target environment to register with the context.
Definition target.h:172
const void * next
Next context option extension.
Definition target.h:169
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition target.h:166
loomc_structure_type_t type
Structure type.
Definition target.h:163
Non-owning string view over bytes that need not be NUL-terminated.
Definition base.h:63
One authored target declaration to bind to one target profile.
Definition target.h:190
loomc_string_view_t target_symbol
Target declaration symbol name. A leading @ is accepted.
Definition target.h:192
loomc_target_profile_t * target_profile
Complete target profile borrowed for the invocation.
Definition target.h:195
Target pipeline creation options.
Definition target.h:256
loomc_target_control_flow_lowering_t control_flow_lowering
Control-flow shape selected for the source-to-low boundary.
Definition target.h:276
loomc_target_pipeline_kind_t kind
Target pipeline boundary to build.
Definition target.h:273
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition target.h:262
loomc_structure_type_t type
Structure type.
Definition target.h:259
const void * next
Extension chain for target pipeline options such as loomc_sanitizer_options_t.
Definition target.h:266
uint32_t source_to_low_max_errors
Maximum source-to-low diagnostics. Zero uses source-to-low's default.
Definition target.h:279
loomc_string_view_t identifier
Stable identifier used for the synthetic pipeline module and diagnostics.
Definition target.h:270
Option extension carrying target specialization inputs.
Definition target.h:206
loomc_host_size_t target_binding_count
Number of rows in target_bindings.
Definition target.h:227
const void * next
Additional option extensions in the same unordered chain.
Definition target.h:215
const loomc_target_specialization_t * specializations
Specialization rows borrowed for the invocation.
Definition target.h:218
const loomc_target_binding_t * target_bindings
Target declaration binding rows borrowed for the invocation.
Definition target.h:224
loomc_structure_type_t type
Structure type.
Definition target.h:209
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition target.h:212
loomc_host_size_t specialization_count
Number of rows in specializations.
Definition target.h:221
One function version to specialize to one structured target profile.
Definition target.h:176
loomc_target_profile_t * target_profile
Complete target profile borrowed for the invocation.
Definition target.h:181
loomc_string_view_t function_symbol
Function symbol name. A leading @ is accepted.
Definition target.h:178
void loomc_target_profile_release(loomc_target_profile_t *profile)
Releases a target profile from one owner.
struct loomc_target_environment_t loomc_target_environment_t
Prepared immutable target environment.
Definition target.h:124
loomc_target_control_flow_lowering_t
Control-flow shape selected for source-to-low lowering.
Definition target.h:241
@ LOOMC_TARGET_CONTROL_FLOW_LOWERING_CFG
Lower source structured control flow to explicit CFG before source-to-low.
Definition target.h:243
@ LOOMC_TARGET_CONTROL_FLOW_LOWERING_STRUCTURED_LOW
Preserve supported structured control flow into target-low IR.
Definition target.h:246
void loomc_target_environment_retain(loomc_target_environment_t *target_environment)
Retains a target environment for another owner.
loomc_target_fact_state_t
Three-valued target fact state.
Definition target.h:143
@ LOOMC_TARGET_FACT_STATE_UNKNOWN
No fact has been supplied yet.
Definition target.h:145
@ LOOMC_TARGET_FACT_STATE_FALSE
The fact is known to be unavailable or false.
Definition target.h:148
@ LOOMC_TARGET_FACT_STATE_TRUE
The fact is known to be available or true.
Definition target.h:151
loomc_target_pipeline_kind_t
Target lowering pipeline boundary.
Definition target.h:231
@ LOOMC_TARGET_PIPELINE_KIND_PREPARED_LOW
Lower source/kernel IR to target-low IR prepared for target emission.
Definition target.h:233
@ LOOMC_TARGET_PIPELINE_KIND_SOURCE_LOW
Lower source/kernel IR to target-low IR before target ABI/resource materialization and packetization ...
Definition target.h:237
loomc_status_t loomc_pass_program_create_from_target_pipeline(loomc_context_t *context, const loomc_target_pipeline_options_t *options, loomc_allocator_t allocator, loomc_pass_program_t **out_pass_program, loomc_result_t **out_result)
Creates a prepared target lowering pass program.
void loomc_target_environment_release(loomc_target_environment_t *target_environment)
Releases a target environment from one owner.
struct loomc_target_profile_t loomc_target_profile_t
Prepared immutable target profile.
Definition target.h:136
void loomc_target_profile_retain(loomc_target_profile_t *profile)
Retains a target profile for another owner.