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: Dec 23 2024 at 13:07 UTC