9#ifndef LLVM_CAS_CASID_H
10#define LLVM_CAS_CASID_H
29 virtual void anchor();
76 return arrayRefFromStringRef<uint8_t>(Hash);
80 if (
LHS.Context ==
RHS.Context)
81 return LHS.Hash ==
RHS.Hash;
84 if (!
LHS.Context || !
RHS.Context)
88 return LHS.Context->getHashSchemaIdentifier() ==
89 RHS.Context->getHashSchemaIdentifier() &&
103 assert(Context &&
"Tombstone or empty key for DenseMap?");
125 const CASContext *Context;
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
This file defines DenseMapInfo traits for DenseMap.
This file defines the SmallString class.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
StringRef - Represent a constant reference to a string, i.e.
Context for CAS identifiers.
virtual void printIDImpl(raw_ostream &OS, const CASID &ID) const =0
Print ID to OS.
virtual StringRef getHashSchemaIdentifier() const =0
Get an identifer for the schema used by this CAS context.
virtual ~CASContext()=default
Unique identifier for a CAS object.
friend hash_code hash_value(const CASID &ID)
void print(raw_ostream &OS) const
Print CASID.
static CASID getDenseMapTombstoneKey()
friend bool operator==(const CASID &LHS, const CASID &RHS)
ArrayRef< uint8_t > getHash() const
const CASContext & getContext() const
static CASID getDenseMapEmptyKey()
friend bool operator!=(const CASID &LHS, const CASID &RHS)
std::string toString() const
Return a printable string for CASID.
static CASID create(const CASContext *Context, StringRef Hash)
Create CASID from CASContext and raw hash bytes.
friend raw_ostream & operator<<(raw_ostream &OS, const CASID &ID)
An opaque object representing a hash code.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
hash_code hash_value(const FixedPointSemantics &Val)
hash_code hash_combine_range(InputIteratorT first, InputIteratorT last)
Compute a hash_code for a sequence of values.
static bool isEqual(cas::CASID LHS, cas::CASID RHS)
static cas::CASID getTombstoneKey()
static unsigned getHashValue(cas::CASID ID)
static cas::CASID getEmptyKey()
An information struct used to provide DenseMap with the various necessary components for a given valu...