mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
Add support for on-disk hash table lookup with a known hash, for situations where the same key will be looked up in multiple tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242179 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3498c348c1
commit
77906b9964
@ -280,13 +280,19 @@ public:
|
||||
};
|
||||
|
||||
/// \brief Look up the stored data for a particular key.
|
||||
iterator find(const external_key_type &EKey, Info *InfoPtr = 0) {
|
||||
if (!InfoPtr)
|
||||
InfoPtr = &InfoObj;
|
||||
|
||||
using namespace llvm::support;
|
||||
iterator find(const external_key_type &EKey, Info *InfoPtr = nullptr) {
|
||||
const internal_key_type &IKey = InfoObj.GetInternalKey(EKey);
|
||||
hash_value_type KeyHash = InfoObj.ComputeHash(IKey);
|
||||
return find_hashed(IKey, KeyHash, InfoPtr);
|
||||
}
|
||||
|
||||
/// \brief Look up the stored data for a particular key with a known hash.
|
||||
iterator find_hashed(const internal_key_type &IKey, hash_value_type KeyHash,
|
||||
Info *InfoPtr = nullptr) {
|
||||
using namespace llvm::support;
|
||||
|
||||
if (!InfoPtr)
|
||||
InfoPtr = &InfoObj;
|
||||
|
||||
// Each bucket is just an offset into the hash table file.
|
||||
offset_type Idx = KeyHash & (NumBuckets - 1);
|
||||
|
Loading…
Reference in New Issue
Block a user