[project @ 2001-03-19 16:22:51 by simonpj]
authorsimonpj <unknown>
Mon, 19 Mar 2001 16:22:51 +0000 (16:22 +0000)
committersimonpj <unknown>
Mon, 19 Mar 2001 16:22:51 +0000 (16:22 +0000)
commita7dff32d3a8c10c9bd2081f441285ed31a01d2c1
tree4314d233a356b448eb8307d06d1867ff2e014db7
parentdd4bc7edc9c6bdb3fd295eb5bad3df4772aa58e2
[project @ 2001-03-19 16:22:51 by simonpj]
-------------------------------------------------------
Be more careful about floating out from  INLINE pragmas
-------------------------------------------------------

Given this:

x = __inline__ (f (g y))

we were floating the (g y) out as a MFE, thus:

lvl = g y
x = __inline__ (f lvl)

This is bad.  The (g y) redex gets outside the __inline__ envelope,
and may never get inlined.

The solution involved a bit of fiddling in SetLevels.
ghc/compiler/simplCore/SetLevels.lhs