fn block_fingerprint(
insts: &IndexVec<Inst, InstData>,
block: &BlockData,
) -> SmallVec<[u8; 32]>Expand description
Builds a structural fingerprint of a block from instruction data, without consulting the raw bytecode.
For each non-dead instruction in the block, encodes the opcode followed by the immediate
payload (interned U256Idx for PUSH*, immediate byte for DUPN/SWAPN/EXCHANGE).
JUMP/JUMPI carry no immediate and so contribute only their opcode; jump targets are
already factored into the surrounding DedupKey via the block’s CFG successors.