HomePhabricator

[libc++] Check hash before calling __hash_table key_eq function

Description

[libc++] Check hash before calling __hash_table key_eq function

Summary: The current implementations of __hash_table::find used by std::unordered_set/unordered_map call key_eq on each key that lands in the same bucket as the key you're looking for. However, since equal objects mush hash to the same value, you can short-circuit the possibly expensive call to key_eq by checking the hashes first.

Reviewers: EricWF

Subscribers: kmensah, cfe-commits

Differential Revision: http://reviews.llvm.org/D21510

Details

Committed
kmensahJul 8 2016, 8:34 AM
Differential Revision
D21510: [libc++] Check hash before calling __hash_table key_eq function
Branches
Unknown
Tags
Unknown