[project @ 2003-07-30 10:01:46 by simonmar]
authorsimonmar <unknown>
Wed, 30 Jul 2003 10:01:46 +0000 (10:01 +0000)
committersimonmar <unknown>
Wed, 30 Jul 2003 10:01:46 +0000 (10:01 +0000)
commite66106a53dab255670ad1229b280cf36d16bc44c
tree36daaca732aa16ac72a49b3f223cebf0c0103b1e
parent31d1bcbed45e4b6ff9543193ab7813e05b29e9b4
[project @ 2003-07-30 10:01:46 by simonmar]
Throw away an SCC on a single variable.  This seems to be justified:
there can be no work to attribute to the current cost centre when
evaluating a lone variable, other than the act of entering the
closure, and possibly returning immediately if it is a variable.

This also fixes a bug in profiling, which showed up as incorrect
transformations made by the simplifier resulting in extra strictness.
The simplifier assumes (in Simplify.simplLazyBind) that (let x = e in
x) will have been turned into x, but this isn't true if there's an SCC
around the x.
ghc/compiler/coreSyn/CoreUtils.lhs