ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
fingerprint.cpp File Reference
#include <util/ssa/fingerprint.h>
#include <fmt/format.h>
#include <irep2/irep2_content_hash.h>
#include <irep2/irep2_utils.h>
#include <util/message/message.h>
#include <cctype>
#include <algorithm>
#include <map>
#include <string>
#include <set>
#include <vector>
Include dependency graph for fingerprint.cpp:

Functions

uint64_t fingerprint_hash (const std::string &s)
 FNV-1a over s. Stable across processes, unlike irep2's crc().
ssa_cone_keyt ssa_cone_key (const symex_target_equationt::SSA_stepst &steps, fingerprint_modet mode)
std::string ssa_cone_key_string (const symex_target_equationt::SSA_stepst &steps, fingerprint_modet mode)
 ssa_cone_key rendered as 32 hex digits.
uint64_t ssa_cone_digest (const symex_target_equationt::SSA_stepst &steps, fingerprint_modet mode)
 Digest the surviving steps of a per-claim sliced equation.
size_t ssa_cone_size (const symex_target_equationt::SSA_stepst &steps)
 Number of steps the digest covered.

Function Documentation

◆ fingerprint_hash()

uint64_t fingerprint_hash ( const std::string & s)

FNV-1a over s. Stable across processes, unlike irep2's crc().

◆ ssa_cone_digest()

uint64_t ssa_cone_digest ( const symex_target_equationt::SSA_stepst & steps,
fingerprint_modet mode )

Digest the surviving steps of a per-claim sliced equation.

Each non-ignored step contributes its type and every expression convert_internal_step hands the solver for it: guard and cond for an assume, assert, branching or assignment, plus lhs/rhs for a renumber and the arguments for an output, neither of which is reachable through cond.

Symbols reachable only through a type (a symbolic array size) are not normalised, which can only cost hits, never manufacture them.

◆ ssa_cone_key()

◆ ssa_cone_key_string()

std::string ssa_cone_key_string ( const symex_target_equationt::SSA_stepst & steps,
fingerprint_modet mode )

ssa_cone_key rendered as 32 hex digits.

◆ ssa_cone_size()

size_t ssa_cone_size ( const symex_target_equationt::SSA_stepst & steps)

Number of steps the digest covered.