X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FcprAnalysis%2FCprAnalyse.lhs;h=dad6ccbaee5bfe8b71f910845be7865092452042;hb=d35356e840b98f614212fcfedb8cf46ad89b4861;hp=a41e62fb6cb9eea1b1b66bc6599d3cd6a6820fa5;hpb=d7c402a3cedbe49345a34f2e58a3f3050638dcb4;p=ghc-hetmet.git diff --git a/ghc/compiler/cprAnalysis/CprAnalyse.lhs b/ghc/compiler/cprAnalysis/CprAnalyse.lhs index a41e62f..dad6ccb 100644 --- a/ghc/compiler/cprAnalysis/CprAnalyse.lhs +++ b/ghc/compiler/cprAnalysis/CprAnalyse.lhs @@ -11,10 +11,10 @@ module CprAnalyse ( cprAnalyse ) where #include "HsVersions.h" -import CmdLineOpts ( DynFlags, DynFlag(..) ) +import DynFlags ( DynFlags, DynFlag(..) ) import CoreLint ( showPass, endPass ) import CoreSyn -import CoreUtils ( exprIsValue ) +import CoreUtils ( exprIsHNF ) import Id ( Id, setIdCprInfo, idCprInfo, idArity, isBottomingId, idDemandInfo, isImplicitId ) import IdInfo ( CprInfo(..) ) @@ -273,7 +273,7 @@ addIdCprInfo bndr rhs absval Fun _ -> idArity bndr >= n_fun_tys absval -- Enough visible lambdas - Tuple -> exprIsValue rhs || isStrict (idDemandInfo bndr) + Tuple -> exprIsHNF rhs || isStrict (idDemandInfo bndr) -- If the rhs is a value, and returns a constructed product, -- it will be inlined at usage sites, so we give it a Tuple absval -- If it isn't a value, we won't inline it (code/work dup worries), so