diff options
| author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-01-12 19:16:34 +0000 |
|---|---|---|
| committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-01-12 19:16:34 +0000 |
| commit | 967629e14abc76ecf8f6516ae6fd6b4a0069170a (patch) | |
| tree | 8775be474396eb113e6017614d4c955ff450ef9c | |
| parent | 3a16d80a44318b9bd9020fce4e683acf3de5e904 (diff) | |
| download | bcm5719-llvm-967629e14abc76ecf8f6516ae6fd6b4a0069170a.tar.gz bcm5719-llvm-967629e14abc76ecf8f6516ae6fd6b4a0069170a.zip | |
IR: Separate out recalculateHash(), NFC
llvm-svn: 225655
| -rw-r--r-- | llvm/include/llvm/IR/Metadata.h | 1 | ||||
| -rw-r--r-- | llvm/lib/IR/Metadata.cpp | 24 |
2 files changed, 14 insertions, 11 deletions
diff --git a/llvm/include/llvm/IR/Metadata.h b/llvm/include/llvm/IR/Metadata.h index d868c4bdc61..8033a17efd7 100644 --- a/llvm/include/llvm/IR/Metadata.h +++ b/llvm/include/llvm/IR/Metadata.h @@ -731,6 +731,7 @@ class GenericMDNode : public MDNode { ~GenericMDNode(); void setHash(unsigned Hash) { MDNodeSubclassData = Hash; } + void recalculateHash(); public: /// \brief Get the hash, if any. diff --git a/llvm/lib/IR/Metadata.cpp b/llvm/lib/IR/Metadata.cpp index f303b7d8a71..1ae9a96fe46 100644 --- a/llvm/lib/IR/Metadata.cpp +++ b/llvm/lib/IR/Metadata.cpp @@ -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()) { |

