I'm trying to understand some syntax in *.clif files:
function u0:0() -> i32 system_v {
sig0 = () -> i64 system_v
fn0 = colocated u0:2 sig0
here, what does colocated u0:2 sig0 mean -- specifically, the u0:2 symbol. I read about colocation on the cranelift docs, but I don't fully understand what this statement means (including the u0:2).
hi @McCoy -- colocated means that the reference is to a function that is "close" in the address space. On x86-64 this means +/- 2GiB; on aarch64, +/- 128MiB. In practice this should only be used for same-module calls. The u0:2 is a symbol reference to an embedder-defined symbol index
thank you @Chris Fallin !
Last updated: Jan 10 2026 at 02:36 UTC