1#ifndef ROSE_BinaryAnalysis_AstHasher_H
2#define ROSE_BinaryAnalysis_AstHasher_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
6#include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
7#include <Combinatorics.h>
12namespace BinaryAnalysis {
20 bool hashingConstants_ =
false;
21 bool hashingAddresses_ =
false;
22 std::shared_ptr<Combinatorics::Hasher> hasher_;
30 explicit AstHasher(
const std::shared_ptr<Combinatorics::Hasher>&);
47 std::shared_ptr<Combinatorics::Hasher>
hasher()
const;
Compute the hash for an AST.
bool hashingConstants() const
Property: Whether to hash constants.
bool hashingAddresses() const
Property: Whether to hash addresses.
void hash(SgNode *)
Hash an AST.
void hash(const Partitioner2::BasicBlockPtr &bb)
Hash a basic block.
void hashingConstants(bool)
Property: Whether to hash constants.
std::shared_ptr< Combinatorics::Hasher > hasher() const
Property: The associated low-level hasher.
AstHasher(const std::shared_ptr< Combinatorics::Hasher > &)
Create a new AST hasher using the specified low-level hasher.
void hashingAddresses(bool)
Property: Whether to hash addresses.
This class represents the base class for all IR nodes within Sage III.