[project @ 1999-05-11 16:41:56 by keithw]
authorkeithw <unknown>
Tue, 11 May 1999 16:41:59 +0000 (16:41 +0000)
committerkeithw <unknown>
Tue, 11 May 1999 16:41:59 +0000 (16:41 +0000)
commit2a34e381fa40677c43a530bb6c55d3f4786b7f4b
tree8c90d87ed03209dac82d7afb81bc24c9dbe0f10a
parentd133b73a4d4717892ced072d05e039a54ede0ceb
[project @ 1999-05-11 16:41:56 by keithw]
(this is number 5a of 9 commits to be applied together)

  The major purpose of this commit is to introduce usage information
  and usage analysis into the compiler, per the paper _Once Upon a
  Polymorphic Type_ (Keith Wansbrough and Simon Peyton Jones, POPL'99,
  and Glasgow TR-1998-19).

  An analysis is provided that annotates a Core program with optimal
  usage annotations.  This analysis is performed by -fusagesp
  (=CoreDoUSPInf), and requires -fusagesp-on (=opt_UsageSPOn).  This
  latter performs an analysis in tidyCorePgm, immediately before
  CoreToStg is done.  The driver flag -fusagesp currently provides hsc
  with -fusagesp-on, and if -O is on does a single -fusagesp early on
  in the Core-to-Core sequence.  Please change this as desired.

  *NB*: For now, -fusagesp with -O requires -fno-specialise.  Sorry.

  The flags -ddump-usagesp (=opt_D_dump_usagesp) and -dusagesp-lint
  (=opt_DoUSPLinting) (also -dnousagesp-lint to the driver) have been
  added and are documented in the User Guide.
ghc/compiler/main/CmdLineOpts.lhs
ghc/compiler/usageSP/UConSet.lhs [new file with mode: 0644]
ghc/compiler/usageSP/UsageSPInf.lhs [new file with mode: 0644]
ghc/compiler/usageSP/UsageSPLint.lhs [new file with mode: 0644]
ghc/compiler/usageSP/UsageSPUtils.lhs [new file with mode: 0644]