summaryrefslogtreecommitdiff
path: root/compiler/vectorise/Vectorise/Builtins
Commit message (Collapse)AuthorAgeFilesLines
* Update email addressesGabor Greif2013-08-221-2/+2
|
* Strings and comments only: 'to to ' fixesGabor Greif2013-08-221-2/+2
| | | | I'd still prefer if a native english speaker would check them.
* Vectoriser: PArray may be part of identity conversionsManuel M T Chakravarty2013-02-042-3/+8
|
* Partial VectoriasationGabriele Keller2012-04-241-1/+1
|
* Fixed typo (wrong max constant) in Initiialise.hsGabriele Keller2012-04-241-1/+1
|
* Move vectorisation of (->) & [::] into the libraryManuel M T Chakravarty2011-11-272-32/+6
| | | | | - (->), [::], & PArray are now vectorised via pragmas (and related clean up) - Repeatedly vectorising a variable or type constructor now raises an error
* Fix and clean up 'PData' and 'Wrap' usage of the vectoriserManuel M T Chakravarty2011-11-231-1/+2
|
* vectoriser: fix pvoids problem when vectorising enumerationsBen Lippmeier2011-11-222-2/+10
| | | | 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-172-2/+9
|
* vectoriser: support tuple constructors up to arity 5Ben Lippmeier2011-11-151-1/+1
|
* vectoriser: Wraps tycon isn't used during vectorisationBen Lippmeier2011-11-151-1/+0
|
* vectoriser: make PA PDatas instances for prod types workBen Lippmeier2011-11-152-15/+6
|
* vectoriser: get the PDatas instances for products in PReprBen Lippmeier2011-11-141-1/+1
|
* vectoriser: comments to PRepr and get PDatas TyCon from environmentBen Lippmeier2011-11-142-41/+58
|
* GHC is now independent of the DPH library structureManuel M T Chakravarty2011-11-101-8/+6
| | | | | | | | | | | * if -XParallelArrays is given, the symbols for the desugarer are taken from 'Data.Array.Parallel' (from whichever package is exposed and has the module — the home package is fine, too) * if -fvectorise is given, the symbols for the vectoriser are taken from 'Data.Array.Parallel.Prim' (as above) (There is one wired in symbol left, namely the data constructor 'base:GHC.PArr.[::]. It'll die another day.)
* Make sure to look items from D.A.P.P properly up in the HPTManuel M T Chakravarty2011-11-041-3/+3
| | | | Kudos to Ben Lippmeier for suggesting this change
* Vectoriser gets all DPH library identifiers from Data.Array.Parallel.PrimManuel M T Chakravarty2011-10-253-378/+288
| | | | | | * 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-102-115/+96
|
* Implement -XConstraintKindMax Bolingbroke2011-09-062-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Basically as documented in http://hackage.haskell.org/trac/ghc/wiki/KindFact, this patch adds a new kind Constraint such that: Show :: * -> Constraint (?x::Int) :: Constraint (Int ~ a) :: Constraint And you can write *any* type with kind Constraint to the left of (=>): even if that type is a type synonym, type variable, indexed type or so on. The following (somewhat related) changes are also made: 1. We now box equality evidence. This is required because we want to give (Int ~ a) the *lifted* kind Constraint 2. For similar reasons, implicit parameters can now only be of a lifted kind. (?x::Int#) => ty is now ruled out 3. Implicit parameter constraints are now allowed in superclasses and instance contexts (this just falls out as OK with the new constraint solver) Internally the following major changes were made: 1. There is now no PredTy in the Type data type. Instead GHC checks the kind of a type to figure out if it is a predicate 2. There is now no AClass TyThing: we represent classes as TyThings just as a ATyCon (classes had TyCons anyway) 3. What used to be (~) is now pretty-printed as (~#). The box constructor EqBox :: (a ~# b) -> (a ~ b) 4. The type LCoercion is used internally in the constraint solver and type checker to represent coercions with free variables of type (a ~ b) rather than (a ~# b)
* Improve import and export of vectorisation informationManuel M T Chakravarty2011-08-191-18/+4
|
* Add VECTORISE [SCALAR] type pragmaManuel M T Chakravarty2011-08-191-3/+4
| | | | | | | | | - 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
* Track changes in the DPH package and GHC.PArr.Manuel M T Chakravarty2011-06-171-1/+1
|
* Eliminate hardcoded names of D.A.PManuel M T Chakravarty2011-06-163-318/+89
|
* Fix warningsManuel M T Chakravarty2011-06-131-35/+35
|
* Added a pragma {-# NOVECTORISE f #-} that suppresses vectorisation of ↵Manuel M T Chakravarty2011-06-131-5/+5
| | | | toplevel variable 'f'.
* Remove scar tissueBen Lippmeier2011-05-121-29/+3
|
* Wibbles on modules imported by vectoriserBen Lippmeier2011-05-122-7/+9
|
* Follow changes in DPH library: Repr module is gone.Ben Lippmeier2011-05-122-5/+1
|
* Update vectoriser now that PData instances have moved.Ben Lippmeier2011-05-124-60/+73
|
* Update vectoriser now that PRepr has movedBen Lippmeier2011-05-122-26/+32
|
* Update vectoriser now that Scalar has movedBen Lippmeier2011-05-122-12/+22
|
* Update vectoriser now that PData has moved.Ben Lippmeier2011-05-122-12/+28
|
* This BIG PATCH contains most of the work for the New Coercion RepresentationSimon Peyton Jones2011-04-192-2/+0
| | | | | | | | | | | | | | See the paper "Practical aspects of evidence based compilation in System FC" * Coercion becomes a data type, distinct from Type * Coercions become value-level things, rather than type-level things, (although the value is zero bits wide, like the State token) A consequence is that a coerion abstraction increases the arity by 1 (just like a dictionary abstraction) * There is a new constructor in CoreExpr, namely Coercion, to inject coercions into terms
* Added a VECTORISE pragmaManuel M T Chakravarty2011-02-202-32/+34
| | | | | | | | | | | | | | | - 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 vectorisation of recursive typesRoman Leshchinskiy2011-01-262-11/+10
|
* vectoriser: adapt to new superclass story part I (dictionary construction)Roman Leshchinskiy2010-12-182-2/+6
|
* Nicer error message for #3782benl@ouroborus.net2010-10-291-1/+9
| | | | | | | | | | | | | | | | | | It now says: ghc-stage2: sorry! (this is work in progress) (GHC version 7.1.20101028 for i386-apple-darwin): Vectorise.Builtins.indexBuiltin DPH builtin function 'sumTyCon' of size '11' is not yet implemented. This function does not appear in your source program, but it is needed to compile your code in the backend. This is a known, current limitation of DPH. If you want it to to work you should send mail to cvs-ghc@haskell.org and ask what you can do to help (it might involve some GHC hacking). I added 'pprSorry' that behaves like 'pprPanic' except it say sorry! instead of panic!, and doesn't ask the user to report a bug.
* Fix warnings: Remove unused importsIan Lynagh2010-09-021-1/+0
|
* Finish breaking up VectBuiltIn and VectMonad, and add commentsbenl@ouroborus.net2010-08-312-0/+550
|
* Break up vectoriser builtins modulebenl@ouroborus.net2010-08-302-0/+223