> On 2016-Jul-18, at 10:43, Duncan P. N. Exon Smith <dexonsm...@apple.com> 
> wrote:
> 
> 
>> On 2016-Jul-17, at 13:11, Eric Fiselier <e...@efcs.ca> wrote:
>> 
>> Hi Duncan,
>> 
>> It's possibly expected. It depends on what operation it's performing. I 
>> expected a bit of a performance drop in some cases but I have a plan to fix 
>> those.
>> Do you have a link to LNT?
> 
> LNT is documented here:
>  http://llvm.org/docs/TestingGuide.html
>  http://llvm.org/docs/lnt/
> 
> We have a public bot that submits results here:
>  http://llvm.org/perf/
> 
> However I think Chris tracked this down using some regression bisection tools 
> on our internal instance.  I'm looking now to see if the public instance 
> caught a regression on -O3 -flto:
>  http://llvm.org/perf/db_default/v4/nts/machine/42

Yup.  Here it is:
  http://llvm.org/perf/db_default/v4/nts/86784

> 
>> 
>> On Wed, Jul 13, 2016 at 6:41 PM, Duncan P. N. Exon Smith 
>> <dexonsm...@apple.com> wrote:
>> Hmm.  I implied there were other regressions, but I just finished scanning 
>> them.  Shootout-C++/hash2 is the only major one.  The others were small, and 
>> only at -O0.
>> 
>>> On 2016-Jul-13, at 17:38, Duncan P. N. Exon Smith via cfe-commits 
>>> <cfe-commits@lists.llvm.org> wrote:
>>> 
>>> We saw mixed results from this on LNT, including some major regressions.  
>>> For example, on x86_64, SingleSource/Benchmarks/Shootout-C++/hash2 
>>> regressed 18.5% at -O3 and over 20% at -Os.
>>> 
>>> Is this expected?
>> 
>> ^ Still interested in an answer, though ;).
>> 
>>> 
>>>> On 2016-Jul-11, at 15:02, Eric Fiselier via cfe-commits 
>>>> <cfe-commits@lists.llvm.org> wrote:
>>>> 
>>>> Author: ericwf
>>>> Date: Mon Jul 11 17:02:02 2016
>>>> New Revision: 275114
>>>> 
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=275114&view=rev
>>>> Log:
>>>> Don't compute modulus of hash if it is smaller than the bucket count.
>>>> 
>>>> This cleans up a previous optimization attempt in hash, and results in
>>>> additional performance improvements over that previous attempt. 
>>>> Additionally
>>>> this new optimization does not hinder the power of 2 bucket count 
>>>> optimization.
>>>> 
>>>> Modified:
>>>>  libcxx/trunk/include/__hash_table
>>>> 
>>>> Modified: libcxx/trunk/include/__hash_table
>>>> URL: 
>>>> http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__hash_table?rev=275114&r1=275113&r2=275114&view=diff
>>>> ==============================================================================
>>>> --- libcxx/trunk/include/__hash_table (original)
>>>> +++ libcxx/trunk/include/__hash_table Mon Jul 11 17:02:02 2016
>>>> @@ -90,7 +90,8 @@ inline _LIBCPP_INLINE_VISIBILITY
>>>> size_t
>>>> __constrain_hash(size_t __h, size_t __bc)
>>>> {
>>>> -    return !(__bc & (__bc - 1)) ? __h & (__bc - 1) : __h % __bc;
>>>> +    return !(__bc & (__bc - 1)) ? __h & (__bc - 1) :
>>>> +        (__h < __bc ? __h : __h % __bc);
>>>> }
>>>> 
>>>> inline _LIBCPP_INLINE_VISIBILITY
>>>> @@ -2201,8 +2202,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>
>>>>       if (__nd != nullptr)
>>>>       {
>>>>           for (__nd = __nd->__next_; __nd != nullptr &&
>>>> -                (__hash == __nd->__hash_
>>>> -                    || __constrain_hash(__nd->__hash_, __bc) == __chash);
>>>> +                __constrain_hash(__nd->__hash_, __bc) == __chash;
>>>>                                                          __nd = 
>>>> __nd->__next_)
>>>>           {
>>>>               if ((__nd->__hash_ == __hash) && key_eq()(__nd->__value_, 
>>>> __k))
>>>> @@ -2231,8 +2231,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>
>>>>       if (__nd != nullptr)
>>>>       {
>>>>           for (__nd = __nd->__next_; __nd != nullptr &&
>>>> -                (__hash == __nd->__hash_
>>>> -                    || __constrain_hash(__nd->__hash_, __bc) == __chash);
>>>> +                  __constrain_hash(__nd->__hash_, __bc) == __chash;
>>>>                                                          __nd = 
>>>> __nd->__next_)
>>>>           {
>>>>               if ((__nd->__hash_ == __hash) && key_eq()(__nd->__value_, 
>>>> __k))
>>>> 
>>>> 
>>>> _______________________________________________
>>>> cfe-commits mailing list
>>>> cfe-commits@lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>> 
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits@lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>> 
>> 
> 

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to