Support for non-concrete types in LLVM


I just wanted to know , I’ve searched everywhere in the documentation ,
does LLVM have any support for non-concrete types ?

By non-concrete I mean , type like “iN” until runtime and then probably some sort

of monomorphization pass can be run to concretize the “iN” types to something like “i56”
depending on the runtime parameters.



No. LLVM is a low-level IR, i.e. one close to how real hardware works but abstracting away differences between targets (e.g. vector lengths, number of registers). There are no mainstream processors that support computations on arbitrary-length types (ARM’s SVE is the closest).