Shared IR types for univdreams.
Per the architecture sketch, the IR is arch-tagged: each
architecture brings its own instruction vocabulary. This crate hosts
only the concepts that genuinely span architectures — function and
basic-block structure, control-flow terminators, and the
[ArchInsn] trait that lets per-arch instruction types plug in.
The byte-identity contract for the IR layer:
For any [
Function] built from real bytes by an arch's lifter, [Function::emit_bytes] returns exactly the input bytes.
This is true by construction: emit_bytes concatenates each
instruction's preserved original bytes in address order. The CFG
structure is a view over a flat byte stream, not a transformation
of it.