16#ifndef LLVM_CGDATA_OUTLINEDHASHTREERECORD_H
17#define LLVM_CGDATA_OUTLINEDHASHTREERECORD_H
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.
std::map< unsigned, HashNodeStable > IdHashNodeStableMapTy
raw_fd_ostream & errs()
This returns a reference to a raw_ostream for standard error.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.
HashNodeStable is the serialized, stable, and compact representation of a HashNode.
std::vector< unsigned > SuccessorIds
void serializeYAML(yaml::Output &YOS) const
Serialize the outlined hash tree to a YAML stream.
void deserializeYAML(yaml::Input &YIS)
Deserialize the outlined hash tree from a YAML stream.
void deserialize(const unsigned char *&Ptr)
Deserialize the outlined hash tree from a raw_ostream.
OutlinedHashTreeRecord(std::unique_ptr< OutlinedHashTree > HashTree)
void serialize(raw_ostream &OS) const
Serialize the outlined hash tree to a raw_ostream.
void print(raw_ostream &OS=llvm::errs()) const
Print the outlined hash tree in a YAML format.
std::unique_ptr< OutlinedHashTree > HashTree
void merge(const OutlinedHashTreeRecord &Other)
Merge the other outlined hash tree into this one.