summaryrefslogtreecommitdiff
path: root/compiler/vectorise/Vectorise/Builtins.hs
Commit message (Collapse)AuthorAgeFilesLines
* Be more careful when deciding which functions are scalarManuel M T Chakravarty2011-12-141-2/+5
| | | | Although scalar functions can use any scalar data type, their arguments and functions may only involve primitive types at the moment.
* Move vectorisation of (->) & [::] into the libraryManuel M T Chakravarty2011-11-271-2/+1
| | | | | - (->), [::], & PArray are now vectorised via pragmas (and related clean up) - Repeatedly vectorising a variable or type constructor now raises an error
* vectoriser: fix pvoids problem when vectorising enumerationsBen Lippmeier2011-11-221-0/+1
| | | | Also give a civilised error message when the data type to vectorised contains no data.
* vectoriser: Use Sels2 type for vector of selectors in PDatas Sum2 instanceBen Lippmeier2011-11-171-1/+1
|
* Vectoriser gets all DPH library identifiers from Data.Array.Parallel.PrimManuel M T Chakravarty2011-10-251-52/+10
| | | | | | * No more use of hardcoded original names * Initialisation of the desugarer monad loads 'Data.Array.Parallel.Prim' if -fdph-* given * Initialisation of the vectoriser gets all built-in names from there
* Fully implement for VECTORISE type pragmas (non-SCALAR).Manuel M T Chakravarty2011-10-101-1/+1
|
* Improve import and export of vectorisation informationManuel M T Chakravarty2011-08-191-1/+0
|
* Add VECTORISE [SCALAR] type pragmaManuel M T Chakravarty2011-08-191-8/+5
| | | | | | | | | - Pragma to determine how a given type is vectorised - At this stage only the VECTORISE SCALAR variant is used by the vectoriser. - '{-# VECTORISE SCALAR type t #-}' implies that 't' cannot contain parallel arrays and may be used in vectorised code. However, its constructors can only be used in scalar code. We use this, e.g., for 'Int'. - May be used on imported types See also http://hackage.haskell.org/trac/ghc/wiki/DataParallel/VectPragma
* Eliminate hardcoded names of D.A.PManuel M T Chakravarty2011-06-161-26/+29
|
* Added a VECTORISE pragmaManuel M T Chakravarty2011-02-201-1/+1
| | | | | | | | | | | | | | | - Added a pragma {-# VECTORISE var = exp #-} that prevents the vectoriser from vectorising the definition of 'var'. Instead it uses the binding '$v_var = exp' to vectorise 'var'. The vectoriser checks that the Core type of 'exp' matches the vectorised Core type of 'var'. (It would be quite complicated to perform that check in the type checker as the vectorisation of a type needs the state of the VM monad.) - Added parts of a related VECTORISE SCALAR pragma - Documented -ddump-vect - Added -ddump-vt-trace - Some clean up
* Fix warnings on WindowsIan Lynagh2010-09-051-3/+0
|
* Finish breaking up VectBuiltIn and VectMonad, and add commentsbenl@ouroborus.net2010-08-311-0/+78