[project @ 2001-07-17 15:28:30 by simonpj]
authorsimonpj <unknown>
Tue, 17 Jul 2001 15:28:31 +0000 (15:28 +0000)
committersimonpj <unknown>
Tue, 17 Jul 2001 15:28:31 +0000 (15:28 +0000)
commitfdc830018cb48210e2ca441942de8eae8e6aedd2
treec899f723fde254366be2139d9f01b1dd4ddcfa2b
parentd011e9110e2d9b0dd7a8f18f2e0cada8e537f86b
[project @ 2001-07-17 15:28:30 by simonpj]
--------------------------------
First cut at the demand analyser
--------------------------------

This demand analyser is intended to replace the strictness/absence
analyser, and the CPR analyser.

This commit adds it to the compiler, but in an entirely non-invasive
way.

If you build the compiler without -DDEBUG,
you won't get it at all.

If you build the compiler with -DDEBUG,
you'll get the demand analyser, but the existing
strictness analyser etc are still there.  All the
demand analyser does is to compare its output with
the existing stuff and report differences.

There's no cross-module stuff for demand info yet.

The strictness/demand info is put the IdInfo as
newStrictnessInfo
newDemandInfo

Eventually we'll remove the old ones.

Simon
ghc/compiler/basicTypes/IdInfo.lhs
ghc/compiler/basicTypes/MkId.lhs
ghc/compiler/basicTypes/NewDemand.lhs [new file with mode: 0644]
ghc/compiler/coreSyn/PprCore.lhs
ghc/compiler/main/DriverState.hs
ghc/compiler/simplCore/OccurAnal.lhs
ghc/compiler/simplCore/SimplCore.lhs
ghc/compiler/stranal/DmdAnal.lhs [new file with mode: 0644]
ghc/compiler/utils/UniqFM.lhs