[commit: vector] simd: Allow streams to produce entire vectors as well as individual elements (fd18157)
Geoffrey Mainland
gmainlan at ghc.haskell.org
Fri Jul 19 14:23:31 CEST 2013
Repository : http://darcs.haskell.org/ghc.git/
On branch : simd
http://hackage.haskell.org/trac/ghc/changeset/fd1815757858ceac2b9323b3c42a8007a0602197
>---------------------------------------------------------------
commit fd1815757858ceac2b9323b3c42a8007a0602197
Author: Roman Leshchinskiy <rl at cse.unsw.edu.au>
Date: Sat Jan 7 11:06:00 2012 +0000
Allow streams to produce entire vectors as well as individual elements
This is a signficant extension to the stream fusion mechanism. A Stream is now
parametrised with a vector type and offers two iteration modes: individual
elements and individual elements + vectors. This supports significantly more
efficient implementations of block operations. For instance, (++) will now use
memcpy where possible rather than iterating through the elements in a loop.
Comments are sorely lacking at the moment.
Data/Vector/Fusion/Stream.hs | 216 +++++++-------
Data/Vector/Fusion/Stream/Monadic.hs | 524 ++++++++++++++++++++--------------
Data/Vector/Generic.hs | 46 +--
Data/Vector/Generic/Base.hs | 4 +-
Data/Vector/Generic/Mutable.hs | 192 ++++++++++---
Data/Vector/Generic/Mutable/Base.hs | 135 +++++++++
Data/Vector/Generic/New.hs | 26 +-
vector.cabal | 1 +
8 files changed, 749 insertions(+), 395 deletions(-)
Diff suppressed because of size. To see it, use:
git show fd1815757858ceac2b9323b3c42a8007a0602197
More information about the ghc-commits
mailing list