LlvmEmitter

Lower one assembled compute unit to a callable LLVM function.

In the namespace spir. Declared in src/libs/libspir/spir/LlvmEmitter.hpp.

Detailed description

The unit is the one `eval::internal::assembleUnit` produces: `std430` buffers at bindings 0 and 1, a `Params` uniform carrying `batch_count` at binding 2, one invocation per batch element. The emitted function takes that shape as an ordinary C signature —

void <entryName>(const float* in, float* out)

— with `gl_GlobalInvocationID` reading as **0** and `batch_count` as **1**, which is exactly what the SPIR-V interpreter does when the differential harness runs one invocation (§SUR-34f). The two lanes are then answering the same question, which is the only way their disagreement means anything.

Deliberately not a general SPIR-V consumer: `SUP-63` puts breadth out of scope, and we consume our own SPIR-V.

In this section