X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FsimplCore%2FFloatOut.lhs;h=988bd53015d53474cc51ccb94b8ddf35e5657b55;hb=9d7da331989abcd1844e9d03b8d1e4163796fa85;hp=a53d0c693279ce96ca6528ed74a0308d757ad038;hpb=d1c1b7d0e7b94ede238845c91f58582bad3b3ef3;p=ghc-hetmet.git diff --git a/ghc/compiler/simplCore/FloatOut.lhs b/ghc/compiler/simplCore/FloatOut.lhs index a53d0c6..988bd53 100644 --- a/ghc/compiler/simplCore/FloatOut.lhs +++ b/ghc/compiler/simplCore/FloatOut.lhs @@ -11,7 +11,7 @@ module FloatOut ( floatOutwards ) where #include "HsVersions.h" import CoreSyn -import CoreUtils ( mkSCC, exprIsValue, exprIsTrivial ) +import CoreUtils ( mkSCC, exprIsHNF, exprIsTrivial ) import DynFlags ( DynFlags, DynFlag(..), FloatOutSwitches(..) ) import ErrUtils ( dumpIfSet_dyn ) @@ -243,7 +243,7 @@ floatNonRecRhs lvl arg -- Used for nested non-rec rhss, and fn args -- bindings just after the '='. And some of them might (correctly) -- be strict even though the 'let f' is lazy, because f, being a value, -- gets its demand-info zapped by the simplifier. - if exprIsValue arg' || exprIsTrivial arg' then + if exprIsHNF arg' || exprIsTrivial arg' then (fsa, floats, arg') else case (partitionByMajorLevel lvl floats) of { (floats', heres) ->