A practical algorithm for exact array dependence analysis
Communications of the ACM
Programming parallel algorithms
Communications of the ACM
Contification using dominators
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Shrinking lambda expressions in linear time
Journal of Functional Programming
Software Vectorization Handbook, The: Applying Intel Multimedia Extensions for Maximum Performance
Software Vectorization Handbook, The: Applying Intel Multimedia Extensions for Maximum Performance
Whole-program compilation in MLton
Proceedings of the 2006 workshop on ML
Proceedings of the 20th annual international conference on Supercomputing
The rise and fall of High Performance Fortran: an historical object lesson
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Pillar: A Parallel Implementation Language
Languages and Compilers for Parallel Computing
Harnessing the Multicores: Nested Data Parallelism in Haskell
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Proceedings of the third ACM Haskell symposium on Haskell
Regular, shape-polymorphic, parallel arrays in Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Efficient parallel stencil convolution in Haskell
Proceedings of the 4th ACM symposium on Haskell
GC-Safe interprocedural unboxing
CC'12 Proceedings of the 21st international conference on Compiler Construction
Exploiting vector instructions with generalized stream fusio
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
The Intel labs Haskell research compiler
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Hi-index | 0.00 |
Expressing algorithms using immutable arrays greatly simplifies the challenges of automatic SIMD vectorization, since several important classes of dependency violations cannot occur. The Haskell programming language provides libraries for programming with immutable arrays, and compiler support for optimizing them to eliminate the overhead of intermediate temporary arrays. We describe an implementation of automatic SIMD vectorization in a Haskell compiler which gives substantial vector speedups for a range of programs written in a natural programming style. We compare performance with that of programs compiled by the Glasgow Haskell Compiler.