Vectorization for Standard ML in MLton
Anton Bachin (abachin AT andrew)
Anand Subramanian (asubrama AT andrew)
Description
We are investigating the benefits of vectorization for Standard ML. Our original goal was to consider the interaction between CPS form and auto-vectorization, in the example of the MLRISC back end of the SML/NJ compiler. However, we have found development for SML/NJ to be difficult. The SML/NJ project seems to be limited to maintenance releases. Instead, we are focusing on the MLton compiler, which uses intermediate representations that are basically equivalent to regular SSA form.
Status
We have analyzed large portions of the MLton code, including the major intermediate representations, the back end, and the x86-64 code generator. We are currently modifying each of these to support SIMD intrinsics and SSE instructions. This task is nearly complete.
Links
References
Anderson, S., Hudak, P. Compilation of Haskell Array Comprehensions for Scientific Computing