> 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