To make use of the profiling system
all modules must be compiled and linked
with the -prof option. Any
SCC annotations you've put in your source
will spring to life.
Without a -prof option, your
SCCs are ignored; so you can compile
SCC-laden code without changing
it.
There are a few other profiling-related compilation options.
Use them in addition to-prof. These do not have to be used consistently
for all modules in a program.
-auto:
GHC will automatically add
_scc_ constructs for all
top-level, exported functions.
-auto-all:
All top-level functions,
exported or not, will be automatically
_scc_'d.
-caf-all:
The costs of all CAFs in a module are usually
attributed to one “big” CAF cost-centre. With
this option, all CAFs get their own cost-centre. An
“if all else fails” option…
-ignore-scc:
Ignore any _scc_
constructs, so a module which already has
_scc_s can be compiled
for profiling with the annotations ignored.