Nice proposal!
Something I’m not sure I perceive exactly why a new framework is necessary instead of reusing EmitC? That is: EmitC is just an emission infrastructure, the actual mapping of the high-level to what is emitted is a matter of “dialect conversion”: seems like all of your example could be implemented with some dialect conversion to EmitC to end-up with exactly what you intend here. What am I missing?