hanchenye-llvm-project/libcxx
Kwasi Mensah 318d35a7bc [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

llvm-svn: 274857
2016-07-08 15:34:28 +00:00
..
benchmarks Add unordered_map::insert benchmark test and rename file 2016-07-02 05:30:54 +00:00
cmake [CMake] Cleanup uses of USES_TERMINAL 2016-06-08 22:20:28 +00:00
docs Add Filesystem TS -- Complete 2016-06-17 19:46:40 +00:00
include [libc++] Check hash before calling __hash_table key_eq function 2016-07-08 15:34:28 +00:00
lib Add Filesystem TS -- Complete 2016-06-17 19:46:40 +00:00
src Remove workarounds for C++17 inline variable ABI break. It has been fixed in clang. 2016-07-02 03:21:58 +00:00
test Revert r274605 due to bot failure: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/244/ 2016-07-06 18:24:53 +00:00
utils Add more missing license headers 2016-01-19 21:58:49 +00:00
www Mark issues 2550, 2551, 2555, 2685, 2698 as complete. These issues are wording clarifications; no code changes required. 2016-06-30 18:05:19 +00:00
.arcconfig
.gitignore
CMakeLists.txt Add -Wno-covered-switch-default while compiling libc++ 2016-06-18 18:55:18 +00:00
CREDITS.TXT Add entry to CREDITS.TXT for propagate_const 2016-06-19 19:36:28 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:39:53 +00:00
TODO.TXT