[project @ 2005-05-04 15:07:47 by simonmar]
authorsimonmar <unknown>
Wed, 4 May 2005 15:07:47 +0000 (15:07 +0000)
committersimonmar <unknown>
Wed, 4 May 2005 15:07:47 +0000 (15:07 +0000)
Do *not* inline runSTRep now (see comments for details).

GHC/ST.lhs

index cdccb18..413a045 100644 (file)
@@ -145,7 +145,14 @@ runST st = runSTRep (case st of { ST st_rep -> st_rep })
 -- I'm only letting runSTRep be inlined right at the end, in particular *after* full laziness
 -- That's what the "INLINE [0]" says.
 --             SLPJ Apr 99
-{-# INLINE [0] runSTRep #-}
+-- {-# INLINE [0] runSTRep #-}
+
+-- SDM: further to the above, inline phase 0 is run *before*
+-- full-laziness at the moment, which means that the above comment is
+-- invalid.  Inlining runSTRep doesn't make a huge amount of
+-- difference, anyway.  Hence:
+
+{-# NOINLINE runSTRep #-}
 runSTRep :: (forall s. STRep s a) -> a
 runSTRep st_rep = case st_rep realWorld# of
                        (# _, r #) -> r