summaryrefslogtreecommitdiff
path: root/compiler/vectorise/Vectorise/Monad.hs
Commit message (Collapse)AuthorAgeFilesLines
* Vectoriser: merge fixManuel M T Chakravarty2013-02-061-1/+1
|
* Remove '-favoid-vect' and add '-fvectorisation-avoidance'Manuel M T Chakravarty2013-02-051-1/+2
| | | | | * By default '-fvectorisation-avoidance' is enabled at all optimisation levels (but it only matters in combination with '-fvectorise'). * The new vectoriser always uses vectorisation avoidance, but with '-fno-vectorisation-avoidance' it restricts it to simple scalar applications (and dictionary computations)
* Rewrote vectorisation avoidance (based on the HS paper)Manuel M T Chakravarty2012-12-051-13/+13
| | | | | | | * Vectorisation avoidance is now the default * Types and values from unvectorised modules are permitted in scalar code * Simplified the VECTORISE pragmas (see http://hackage.haskell.org/trac/ghc/wiki/DataParallel/VectPragma for the spec) * Vectorisation information is now included in the annotated Core AST
* Pass DynFlags down to showSDocIan Lynagh2012-06-121-5/+7
|
* Remove more uses of stdout and stderrIan Lynagh2012-05-291-4/+4
|
* Fix vectorisation of classesManuel M T Chakravarty2012-01-161-3/+3
| | | | | | - Make sure that we have no implicit names in ifaces - Any vectorisation info makes a module an orphan module - Allow 'Show' in vectorised code without vectorising it for the moment
* Move vectorisation of (->) & [::] into the libraryManuel M T Chakravarty2011-11-271-2/+0
| | | | | - (->), [::], & PArray are now vectorised via pragmas (and related clean up) - Repeatedly vectorising a variable or type constructor now raises an error
* Fix newtype wrapper for 'PData[s] (Wrap a)' and fix VECTORISE type and ↵Manuel M T Chakravarty2011-11-251-4/+16
| | | | | | | | instance pragmas * Correct usage of new type wrappers from MkId * 'VECTORISE [SCALAR] type T = S' didn't work correctly across module boundaries * Clean up 'VECTORISE SCALAR instance'
* Special case dictionary abstraction and application during vectorisationManuel M T Chakravarty2011-11-171-18/+15
|
* Improve vectorisation warnings and errorsManuel M T Chakravarty2011-11-141-2/+1
|
* New kind-polymorphic coreJose Pedro Magalhaes2011-11-111-1/+1
| | | | | | | | | This big patch implements a kind-polymorphic core for GHC. The current implementation focuses on making sure that all kind-monomorphic programs still work in the new core; it is not yet guaranteed that kind-polymorphic programs (using the new -XPolyKinds flag) will work. For more information, see http://haskell.org/haskellwiki/GHC/Kinds
* Clean up and complete the vectorisation of type classesManuel M T Chakravarty2011-11-041-5/+5
|
* Vectoriser gets all DPH library identifiers from Data.Array.Parallel.PrimManuel M T Chakravarty2011-10-251-39/+38
| | | | | | * 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-2/+0
|
* Add support for all top-level declarations to GHCiSimon Marlow2011-09-211-2/+6
| | | | | | | | | | | | | | | | This is work mostly done by Daniel Winograd-Cort during his internship at MSR Cambridge, with some further refactoring by me. This commit adds support to GHCi for most top-level declarations that can be used in Haskell source files. Class, data, newtype, type, instance are all supported, as are Type Family-related declarations. The current set of declarations are shown by :show bindings. As with variable bindings, entities bound by newer declarations shadow earlier ones. Tests are in testsuite/tests/ghci/scripts/ghci039--ghci054. Documentation to follow.
* Report bindings that cannot be vectorisedManuel M T Chakravarty2011-09-101-1/+7
| | | | | | - Toplevel bindings that cannot be vectorised are reported as a warning - '-ddump-vt-trace' has even more information about unvectorised code - Fixed some documentation
* Fixed reading and generating VectInfo as well as naming of vectorised ↵Manuel M T Chakravarty2011-08-241-10/+27
| | | | versions of imported identifiers
* Improve import and export of vectorisation informationManuel M T Chakravarty2011-08-191-4/+2
|
* Eliminate hardcoded names of D.A.PManuel M T Chakravarty2011-06-161-4/+1
|
* Added a pragma {-# NOVECTORISE f #-} that suppresses vectorisation of ↵Manuel M T Chakravarty2011-06-131-1/+2
| | | | toplevel variable 'f'.
* Propagate scalar variables and tycons for vectorisation through ↵Manuel M T Chakravarty2011-06-031-36/+30
| | | | 'HscTypes.VectInfo'.
* Added a VECTORISE pragmaManuel M T Chakravarty2011-02-201-52/+62
| | | | | | | | | | | | | | | - 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
* Handling of recursive scalar functions in isScalarLamkeller@cse.unsw.edu.au2011-02-141-1/+7
|
* Added handling of non-recursive module global functions to isScalar checkkeller@cse.unsw.edu.au2011-02-091-1/+9
|
* Refactoring and tidyup of HscMain and related things (also fix #1666)Simon Marlow2010-10-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While trying to fix #1666 (-Werror aborts too early) I decided to some tidyup in GHC/DriverPipeline/HscMain. - The GhcMonad overloading is gone from DriverPipeline and HscMain now. GhcMonad is now defined in a module of its own, and only used in the top-level GHC layer. DriverPipeline and HscMain use the plain IO monad and take HscEnv as an argument. - WarnLogMonad is gone. printExceptionAndWarnings is now called printException (the old name is deprecated). Session no longer contains warnings. - HscMain has its own little monad that collects warnings, and also plumbs HscEnv around. The idea here is that warnings are collected while we're in HscMain, but on exit from HscMain (any function) we check for warnings and either print them (via log_action, so IDEs can still override the printing), or turn them into an error if -Werror is on. - GhcApiCallbacks is gone, along with GHC.loadWithLogger. Thomas Schilling told me he wasn't using these, and I don't see a good reason to have them. - there's a new pure API to the parser (suggestion from Neil Mitchell): parser :: String -> DynFlags -> FilePath -> Either ErrorMessages (WarningMessages, Located (HsModule RdrName))
* Finish breaking up VectBuiltIn and VectMonad, and add commentsbenl@ouroborus.net2010-08-311-0/+146