PTX backend doesn't lower string literals yet. E110 refusal fires on any device-side "..." until this lands.
Easiest of the three. For each byte-init global, emit .const .align 1 .b8 .strN[len] = { 'h', 'e', ... }; at module scope, and lower BIR_GLOBAL_REF to mov.u64 %rd, .strN. The existing PTX BIR_GLOBAL_REF handler is a no-op stub today, so it's basically a new code path rather than touching anything.
Bytes live at M->strings[c->d.bytes.off], length c->d.bytes.len. bir_global_is_bytes(M, gi) tells you which globals.
PTX backend doesn't lower string literals yet. E110 refusal fires on any device-side
"..."until this lands.Easiest of the three. For each byte-init global, emit
.const .align 1 .b8 .strN[len] = { 'h', 'e', ... };at module scope, and lowerBIR_GLOBAL_REFtomov.u64 %rd, .strN. The existing PTXBIR_GLOBAL_REFhandler is a no-op stub today, so it's basically a new code path rather than touching anything.Bytes live at
M->strings[c->d.bytes.off], lengthc->d.bytes.len.bir_global_is_bytes(M, gi)tells you which globals.