Patchwork Fix code regression

login
register
mail settings
Submitter François Dumont
Date Sept. 23, 2012, 10:08 a.m.
Message ID <505EDF90.8080405@gmail.com>
Download mbox | patch
Permalink /patch/186193/
State New
Headers show

Comments

François Dumont - Sept. 23, 2012, 10:08 a.m.
Hi

     I detect this regression while running performance tests. I think 
it comes from:

2012-04-12  Benjamin Kosnik  <bkoz@redhat.com>

     * include/bits/unordered_map.h (__unordered_map): Remove.
     (__unordered_multimap): Remove.
     Add aliases for __umap_traits, __umap_hashtable, __ummap_traits,
     __ummap_hashtable.
     (unordered_map): Derive from __umap_hashtable.
     (unordered_multimap): Derive from __ummap_hashtable.
     * include/bits/unordered_set.h (__unordered_set): Remove.
     (__unordered_multiset): Remove.
     ...

2012-09-19  François Dumont  <fdumont@gcc.gnu.org>

     * testsuite/performance/23_containers/insert_erase/41975.cc: Use
     __uset_hashtable rather than now missing __unordered_set.

Ok to commit ?

François
Paolo Carlini - Sept. 23, 2012, 10:27 a.m.
Hi,

On 09/23/2012 12:08 PM, François Dumont wrote:
> Hi
>
>     I detect this regression while running performance tests. I think 
> it comes from:
>
> 2012-04-12  Benjamin Kosnik  <bkoz@redhat.com>
>
>     * include/bits/unordered_map.h (__unordered_map): Remove.
>     (__unordered_multimap): Remove.
>     Add aliases for __umap_traits, __umap_hashtable, __ummap_traits,
>     __ummap_hashtable.
>     (unordered_map): Derive from __umap_hashtable.
>     (unordered_multimap): Derive from __ummap_hashtable.
>     * include/bits/unordered_set.h (__unordered_set): Remove.
>     (__unordered_multiset): Remove.
>     ...
>
> 2012-09-19  François Dumont  <fdumont@gcc.gnu.org>
>
>     * testsuite/performance/23_containers/insert_erase/41975.cc: Use
>     __uset_hashtable rather than now missing __unordered_set.
>
> Ok to commit ?
Given the current code, I think it qualifies as obvious. Anyway, too bad 
anyway that we don't have anymore the __unordered_* names for the 
extension containers taking an additional parameter, seemed very natural.

By the way, Francois, I think it's time to commit the patch for 
44436...  and thanks again!

Thanks,
Paolo.

Patch

Index: testsuite/performance/23_containers/insert_erase/41975.cc
===================================================================
--- testsuite/performance/23_containers/insert_erase/41975.cc	(revision 191279)
+++ testsuite/performance/23_containers/insert_erase/41975.cc	(working copy)
@@ -40,8 +40,9 @@ 
       const int nb = 200000;
       start_counters(time, resource);
 
-      std::__unordered_set<int, std::hash<int>, std::equal_to<int>,
-			   std::allocator<int>, use_cache> us;
+      std::__uset_hashtable<int, std::hash<int>, std::equal_to<int>,
+			    std::allocator<int>,
+			    std::__uset_traits<use_cache>> us;
       for (int i = 0; i != nb; ++i)
 	us.insert(i);
 
@@ -125,9 +126,10 @@ 
 
       start_counters(time, resource);
 
-      std::__unordered_set<std::string, std::hash<std::string>,
-			   std::equal_to<std::string>,
-			   std::allocator<std::string>, use_cache> us;
+      std::__uset_hashtable<std::string, std::hash<std::string>,
+			    std::equal_to<std::string>,
+			    std::allocator<std::string>,
+			    std::__uset_traits<use_cache>> us;
       for (int i = 0; i != nb; ++i)
 	us.insert(strs[i]);