LLVM 20.0.0git
Classes | Namespaces | Typedefs | Functions
StructuralHash.h File Reference
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/StableHashing.h"
#include "llvm/IR/Instruction.h"
#include <cstdint>

Go to the source code of this file.

Classes

struct  llvm::FunctionHashInfo
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Typedefs

using llvm::IndexPair = std::pair< unsigned, unsigned >
 The pair of an instruction index and a operand index.
 
using llvm::IndexInstrMap = MapVector< unsigned, Instruction * >
 A map from an instruction index to an instruction pointer.
 
using llvm::IndexOperandHashMapType = DenseMap< IndexPair, stable_hash >
 A map from an IndexPair to a stable hash.
 
using llvm::IgnoreOperandFunc = std::function< bool(const Instruction *, unsigned)>
 A function that takes an instruction and an operand index and returns true if the operand should be ignored in the function hash computation.
 

Functions

stable_hash llvm::StructuralHash (const Function &F, bool DetailedHash=false)
 Returns a hash of the function F.
 
stable_hash llvm::StructuralHash (const GlobalVariable &G)
 Returns a hash of the global variable G.
 
stable_hash llvm::StructuralHash (const Module &M, bool DetailedHash=false)
 Returns a hash of the module M by hashing all functions and global variables contained within.
 
FunctionHashInfo llvm::StructuralHashWithDifferences (const Function &F, IgnoreOperandFunc IgnoreOp)
 Computes a structural hash of a given function, considering the structure and content of the function's instructions while allowing for selective ignoring of certain operands based on custom criteria.