Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Sequentialise any remaining SOACs. It is very important that this is run *after* any access-pattern-related optimisation, because this pass will destroy information.
This pass conceptually contains three subpasses:
- Sequentialise
Stream
operations, leaving other SOACs intact. - Apply whole-program simplification.
- Sequentialise remaining SOACs.
This is because sequentialisation of streams creates many SOACs operating on single-element arrays, which can be efficiently simplified away, but only *before* they are turned into loops. In principle this pass could be split into multiple, but for now it is kept together.
Synopsis
- unstreamGPU :: Pass GPU GPU
- unstreamMC :: Pass MC MC