Skip to content
Snippets Groups Projects
Commit 0d341509 authored by Joachim Breitner's avatar Joachim Breitner
Browse files

In deferType, return convRes = Converges NoCPR

because this is the right-identity to `bothDmdResult`, and this is the
right thing to do in a lazy context.
parent d11e3d24
No related branches found
No related tags found
No related merge requests found
......@@ -776,8 +776,9 @@ seqCPRResult RetProd = ()
-- [cprRes] lets us switch off CPR analysis
-- by making sure that everything uses TopRes
topRes, botRes :: DmdResult
topRes, convRes, botRes :: DmdResult
topRes = Dunno NoCPR
convRes = Converges NoCPR
botRes = Diverges
cprSumRes :: ConTag -> DmdResult
......@@ -1182,9 +1183,9 @@ postProcessUnsat (True, One) ty = deferType ty
postProcessUnsat (False, One) ty = ty
deferType, reuseType, deferReuse :: DmdType -> DmdType
deferType (DmdType fv ds _) = DmdType (deferEnv fv) (map deferDmd ds) topRes
deferType (DmdType fv ds _) = DmdType (deferEnv fv) (map deferDmd ds) convRes
reuseType (DmdType fv ds res_ty) = DmdType (reuseEnv fv) (map reuseDmd ds) res_ty
deferReuse (DmdType fv ds _) = DmdType (deferReuseEnv fv) (map deferReuseDmd ds) topRes
deferReuse (DmdType fv ds _) = DmdType (deferReuseEnv fv) (map deferReuseDmd ds) convRes
deferEnv, reuseEnv, deferReuseEnv :: DmdEnv -> DmdEnv
deferEnv fv = mapVarEnv deferDmd fv
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment