This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Fw: [PATCH][Aarch64] Add vectorized mersenne twister
- From: Jonathan Wakely <jwakely at redhat dot com>
- To: James Greenhalgh <james dot greenhalgh at arm dot com>
- Cc: libstdc++ at gcc dot gnu dot org, nd at arm dot com, Michael dot Collison at arm dot com, gcc-patches at gcc dot gnu dot org
- Date: Fri, 2 Jun 2017 15:57:19 +0100
- Subject: Re: Fw: [PATCH][Aarch64] Add vectorized mersenne twister
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=jwakely at redhat dot com
- Dkim-filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 3220C334599
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3220C334599
- References: <20170602142929.GA40346@arm.com>
On 02/06/17 15:29 +0100, James Greenhalgh wrote:
Hi Michael,
I think the correct list for this patch would be libstdc++@gcc.gnu.org
(I'm sure someone there will correct me if I'm wrong).
Thanks, James, that's right. All libstdc++ patches should go to both
gcc-patches and this list.
I'm interested in the answer to your point about polluting the global
namespace.
It's not ideal, but I agree it's acceptable when including a
non-standard extension header. Strictly conforming programs won't use
that header, and won't get the namespace pollution.
However, if I'm reading the patch correctly it will also happen when
including <random>, because that will use the new
config/cpu/aarch64/opt/bits/opt_random.h header which includes
"arm_neon.h".
That aside, this looks like a nice addition.
The #include "arm_neon.h" directives should use <arm_neon.h> instead.
Add optimized implementation of mersenne twister for aarch64
* config/cpu/aarch64/opt/ext/opt_random.h: New file.
(__arch64_recursion): new function.
(operator==): New function.
(simd_fast_mersenne_twister_engine): New template class.
This line of the changelog seems unnecessary, no new class template is
being added.
* config/cpu/aarch64/opt/bits/opt_random.h: New file.
* include/ext/random (add include for arm_neon.h):
(simd_fast_mersenne_twister_engine): add _M_state private
array for ARM_NEON conditional compilation.