]> granicus.if.org Git - llvm/commit
[ADT] Add a much simpler loop to DenseMap::clear when the types are
authorChandler Carruth <chandlerc@gmail.com>
Sat, 5 Aug 2017 22:48:37 +0000 (22:48 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sat, 5 Aug 2017 22:48:37 +0000 (22:48 +0000)
commit549896a7368869a9f93b59071a5bcf11b2383a88
tree5d5360335663fcee3b0c4e5734fc1844e59cd684
parent96fa22223c586f86e07d3fa7d5481d57ed903b88
[ADT] Add a much simpler loop to DenseMap::clear when the types are
POD-like and we can just splat the empty key across memory.

Sadly we can't optimize the normal loop well enough because we can't
turn the conditional store into an unconditional store according to the
memory model.

This loop actually showed up in a profile of code that was calling clear
as a serious source of time. =[

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310189 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/ADT/DenseMap.h