[project @ 1999-05-11 16:42:29 by keithw]
(this is number 5b 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.