Disasm.SubroutinesA set of subroutines.
A partition of a whole program control-flow graph into a quotient set of subroutines.
The algorithm builds the minimal partion, i.e., it guarantees that no other partition exists that has fewer elements.
The number of elements heavily depends on the number of function starts that were provided as the input (e.g., if the function start identification procedure has a lot of false positives, expect a lot of subroutines).
include Core_kernel.Bin_prot.Binable.S with type t := tval bin_size_t : t Bin_prot.Size.sizerval bin_write_t : t Bin_prot.Write.writerval bin_read_t : t Bin_prot.Read.readerval __bin_read_t__ : (int -> t) Bin_prot.Read.readerval bin_writer_t : t Bin_prot.Type_class.writerval bin_reader_t : t Bin_prot.Type_class.readerval bin_t : t Bin_prot.Type_class.tval empty : tempty is the empty partition.
val update : t -> Driver.state -> t Bap_knowledge.knowledgeupdate p s updates the partitioning with the newly disassembled blocks.
belongs part ~entry addr is true if addr belongs to a basic block of subroutine with the given entry.
val entries : t -> Core_kernel.Set.M(Addr).tentries part is the set of entry points of all subroutines in the partition.
Set.length (entries part) is the cardinality of the partition.