[project @ 1999-04-13 08:55:33 by kglynn]
authorkglynn <unknown>
Tue, 13 Apr 1999 08:55:54 +0000 (08:55 +0000)
committerkglynn <unknown>
Tue, 13 Apr 1999 08:55:54 +0000 (08:55 +0000)
commit30b5b5cceb167a87907d4cf122e77ce333fc5066
treec31a4d9dab26e039f0309390692cbbb0f425caac
parentf3270acfe8330c51e53f8566292af5ff9127cd26
[project @ 1999-04-13 08:55:33 by kglynn]
(keving)

Big Bang introduction of CPR Analysis Pass.  Note that now
-fstrictness only does the strictness analysis phase,  it is necessary
to follow this with -fworker-wrapper to actually do the required Core
transformations. The -O option in the ghc driver script has been
modified appropriately.

For now,  CPR analysis is turned off.  To try it,  insert a
-fcpr_analyse between the -fstrictness and the -fworker-wrapper
options.

Misc. comments:

- The worker flag has been removed from an ID's StrictnessInfo field.
Now the worker info is an extra field in the Id's prag info.

- We do a nested CPR analysis,  but worker-wrapper only looks at the
info for the outermost constructor,  else laziness can be lost.

- Id's CPR Info in traces and interfaces file follows __M

- Worker-wrappery transformation now accounts for both strictness and
CPR analysis results.
19 files changed:
ghc/compiler/Makefile
ghc/compiler/basicTypes/Id.lhs
ghc/compiler/basicTypes/IdInfo.lhs
ghc/compiler/coreSyn/PprCore.lhs
ghc/compiler/hsSyn/HsDecls.lhs
ghc/compiler/main/CmdLineOpts.lhs
ghc/compiler/main/MkIface.lhs
ghc/compiler/prelude/PrelVals.lhs
ghc/compiler/reader/Lex.lhs
ghc/compiler/rename/ParseIface.y
ghc/compiler/rename/RnSource.lhs
ghc/compiler/simplCore/SimplCore.lhs
ghc/compiler/simplCore/Simplify.lhs
ghc/compiler/stranal/SaLib.lhs
ghc/compiler/stranal/StrictAnal.lhs
ghc/compiler/stranal/WorkWrap.lhs
ghc/compiler/stranal/WwLib.lhs
ghc/compiler/typecheck/TcIfaceSig.lhs
ghc/driver/ghc.lprl