CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
28 lines
1.3 KiB
Plaintext
28 lines
1.3 KiB
Plaintext
Design guidelines for the isl interfaces
|
|
========================================
|
|
|
|
# Constructors
|
|
|
|
A function that constructs an isl object can be exposed in two ways, as
|
|
an unnamed constructor or as a named static function. Aiming for an interface
|
|
that is explicit and close to the isl C interface, all such functions
|
|
are exported as named static functions, except in the following cases.
|
|
Unnamed constructors are generated for functions where even without the
|
|
function name an object is identified uniquely by its arguments. For
|
|
example, there is a single isl_val that corresponds to a given integer
|
|
(isl_val_int_from_si), but both a NaN or a zero value can be constructed
|
|
from an isl_local_space (isl_aff_zero_on_domain and isl_aff_nan_on_domain).
|
|
Only function that create objects that are fully constructed by the function
|
|
and do not require further information to be added for typical use cases
|
|
are exposed as unnamed constructors.
|
|
Functions that commonly require more information to be provided
|
|
(isl_union_access_info_from_sink, isl_schedule_constraints_on_domain)
|
|
are exported as named static functions.
|
|
Typical examples of function that are generated as unnamed constructors
|
|
are the following:
|
|
|
|
- Conversion constructors
|
|
- Constructors from std::string
|
|
- Constructors where all arguments by themselves uniquely identify
|
|
a complete object (e.g., isl_val_int_from_si)
|