forked from OSchip/llvm-project
DenseMap<uintptr_t,...> doesn't allow all values as keys.
Avoid colliding with the sentinels, hopefully unbreaking llvm-gcc-x86_64-linux-selfhost. llvm-svn: 126982
This commit is contained in:
parent
c88b7ecb88
commit
e2017b6f2e
|
@ -632,6 +632,8 @@ bool llvm::EliminateDuplicatePHINodes(BasicBlock *BB) {
|
|||
Hash ^= reinterpret_cast<uintptr_t>(static_cast<Value *>(*I));
|
||||
Hash = (Hash << 7) | (Hash >> (sizeof(uintptr_t) * CHAR_BIT - 7));
|
||||
}
|
||||
// Avoid colliding with the DenseMap sentinels ~0 and ~0-1.
|
||||
Hash >>= 1;
|
||||
// If we've never seen this hash value before, it's a unique PHI.
|
||||
std::pair<DenseMap<uintptr_t, PHINode *>::iterator, bool> Pair =
|
||||
HashMap.insert(std::make_pair(Hash, PN));
|
||||
|
|
Loading…
Reference in New Issue