IR: Separate out recalculateHash(), NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225655 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith 2015-01-12 19:16:34 +00:00
parent 7826807958
commit 6205b21cf5
2 changed files with 14 additions and 11 deletions

View File

@ -731,6 +731,7 @@ class GenericMDNode : public MDNode {
~GenericMDNode();
void setHash(unsigned Hash) { MDNodeSubclassData = Hash; }
void recalculateHash();
public:
/// \brief Get the hash, if any.

View File

@ -484,6 +484,18 @@ void GenericMDNode::resolveCycles() {
}
}
void GenericMDNode::recalculateHash() {
setHash(hash_combine_range(op_begin(), op_end()));
#ifndef NDEBUG
{
SmallVector<Metadata *, 8> MDs(op_begin(), op_end());
unsigned RawHash = hash_combine_range(MDs.begin(), MDs.end());
assert(getHash() == RawHash &&
"Expected hash of MDOperand to equal hash of Metadata*");
}
#endif
}
void MDNode::dropAllReferences() {
for (unsigned I = 0, E = NumOperands; I != E; ++I)
setOperand(I, nullptr);
@ -545,18 +557,8 @@ void GenericMDNode::handleChangedOperand(void *Ref, Metadata *New) {
return;
}
// Re-calculate the hash.
setHash(hash_combine_range(op_begin(), op_end()));
#ifndef NDEBUG
{
SmallVector<Metadata *, 8> MDs(op_begin(), op_end());
unsigned RawHash = hash_combine_range(MDs.begin(), MDs.end());
assert(getHash() == RawHash &&
"Expected hash of MDOperand to equal hash of Metadata*");
}
#endif
// Re-unique the node.
recalculateHash();
GenericMDNodeInfo::KeyTy Key(this);
auto I = Store.find_as(Key);
if (I == Store.end()) {