Skip to main content

block_fingerprint

Function block_fingerprint 

Source
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.