[project @ 2002-02-11 08:20:38 by chak]
authorchak <unknown>
Mon, 11 Feb 2002 08:20:50 +0000 (08:20 +0000)
committerchak <unknown>
Mon, 11 Feb 2002 08:20:50 +0000 (08:20 +0000)
commit10fcd78ccde892feccda3f5eacd221c1de75feea
treefc9806e7ca83ab581c6cdc71afcda5b6cae82fcb
parent723ab3364061d8b0d9fd622feaa1d31eb1281f6a
[project @ 2002-02-11 08:20:38 by chak]
*******************************
       * Merging from ghc-ndp-branch *
       *******************************

This commit merges the current state of the "parallel array extension" and
includes the following:

* (Almost) completed Milestone 1:
  - The option `-fparr' activates the H98 extension for parallel arrays.
  - These changes have a high likelihood of conflicting (in the CVS sense)
    with other changes to GHC and are the reason for merging now.
  - ToDo: There are still some (less often used) functions not implemented in
  `PrelPArr' and a mechanism is needed to automatically import
  `PrelPArr' iff `-fparr' is given.  Documentation that should go into
  the Commentary is currently in `ghc/compiler/ndpFlatten/TODO'.

* Partial Milestone 2:
  - The option `-fflatten' activates the flattening transformation and `-ndp'
    selects the "ndp" way (where all libraries have to be compiled with
    flattening).  The way option `-ndp' automagically turns on `-fparr' and
    `-fflatten'.
  - Almost all changes are in the new directory `ndpFlatten' and shouldn't
    affect the rest of the compiler.  The only exception are the options and
    the points in `HscMain' where the flattening phase is called when
    `-fflatten' is given.
  - This isn't usable yet, but already implements function lifting,
    vectorisation, and a new analysis that determines which parts of a module
    have to undergo the flattening transformation.  Missing are data structure
    and function specialisation, the unboxed array library (including fusion
    rules), and lots of testing.

I have just run the regression tests on the thing without any problems.  So,
it seems, as if we haven't broken anything crucial.
46 files changed:
ghc/compiler/Makefile
ghc/compiler/basicTypes/Unique.lhs
ghc/compiler/deSugar/Check.lhs
ghc/compiler/deSugar/DsExpr.lhs
ghc/compiler/deSugar/DsListComp.lhs
ghc/compiler/deSugar/DsUtils.lhs
ghc/compiler/deSugar/Match.lhs
ghc/compiler/hsSyn/HsExpr.lhs
ghc/compiler/hsSyn/HsPat.lhs
ghc/compiler/hsSyn/HsSyn.lhs
ghc/compiler/hsSyn/HsTypes.lhs
ghc/compiler/main/CmdLineOpts.lhs
ghc/compiler/main/DriverFlags.hs
ghc/compiler/main/DriverState.hs
ghc/compiler/main/HscMain.lhs
ghc/compiler/main/ParsePkgConf.y
ghc/compiler/ndpFlatten/FlattenInfo.hs [new file with mode: 0644]
ghc/compiler/ndpFlatten/FlattenMonad.hs [new file with mode: 0644]
ghc/compiler/ndpFlatten/Flattening.hs [new file with mode: 0644]
ghc/compiler/ndpFlatten/NDPCoreUtils.hs [new file with mode: 0644]
ghc/compiler/ndpFlatten/PArrAnal.hs [new file with mode: 0644]
ghc/compiler/ndpFlatten/TODO [new file with mode: 0644]
ghc/compiler/parser/Lex.lhs
ghc/compiler/parser/ParseUtil.lhs
ghc/compiler/parser/Parser.y
ghc/compiler/parser/RdrHsSyn.lhs
ghc/compiler/prelude/PrelNames.lhs
ghc/compiler/prelude/TysWiredIn.lhs
ghc/compiler/rename/ParseIface.y
ghc/compiler/rename/RnEnv.lhs
ghc/compiler/rename/RnExpr.lhs
ghc/compiler/rename/RnHiFiles.lhs
ghc/compiler/rename/RnHsSyn.lhs
ghc/compiler/rename/RnTypes.lhs
ghc/compiler/simplCore/SimplCore.lhs
ghc/compiler/typecheck/TcExpr.lhs
ghc/compiler/typecheck/TcHsSyn.lhs
ghc/compiler/typecheck/TcMType.lhs
ghc/compiler/typecheck/TcMonad.lhs
ghc/compiler/typecheck/TcMonoType.lhs
ghc/compiler/typecheck/TcPat.lhs
ghc/compiler/typecheck/TcSimplify.lhs
ghc/compiler/typecheck/TcUnify.lhs
ghc/compiler/types/PprType.lhs
ghc/lib/std/Makefile
ghc/lib/std/PrelPArr.hs [new file with mode: 0644]