X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FcoreSyn%2FCoreTidy.lhs;h=d0234cec5dc713e9d014ac1283a774b8d070a59b;hb=f6cd95ff9a2bddbd78682dcd9287aec7d152cc13;hp=d7ab114f4eeb804278ca82fed73b1f36fa1d98e1;hpb=9c2209354ec9c513af06549c0e9341f10f7cee83;p=ghc-hetmet.git diff --git a/ghc/compiler/coreSyn/CoreTidy.lhs b/ghc/compiler/coreSyn/CoreTidy.lhs index d7ab114..d0234ce 100644 --- a/ghc/compiler/coreSyn/CoreTidy.lhs +++ b/ghc/compiler/coreSyn/CoreTidy.lhs @@ -25,6 +25,7 @@ import Id ( idType, idInfo, idName, isExportedId, setIdUnfolding, hasNoBinding, mkUserLocal ) import IdInfo {- loads of stuff -} +import NewDemand ( isBottomingSig, topSig ) import Name ( getOccName, nameOccName, globaliseName, setNameOcc, localiseName, isGlobalName, setNameUnique ) @@ -306,7 +307,7 @@ addExternal (id,rhs) needed idinfo = idInfo id dont_inline = isNeverInlinePrag (inlinePragInfo idinfo) loop_breaker = isLoopBreaker (occInfo idinfo) - bottoming_fn = isBottomingStrictness (strictnessInfo idinfo) + bottoming_fn = isBottomingSig (newStrictnessInfo idinfo `orElse` topSig) spec_ids = rulesRhsFreeVars (specInfo idinfo) worker_info = workerInfo idinfo @@ -465,18 +466,17 @@ tidyIdInfo tidy_env is_external unfold_info cg_info id | opt_OmitInterfacePragmas || not is_external -- No IdInfo if the Id isn't external, or if we don't have -O = vanillaIdInfo - `setCgInfo` cg_info - `setStrictnessInfo` strictnessInfo core_idinfo + `setCgInfo` cg_info + `setNewStrictnessInfo` newStrictnessInfo core_idinfo -- Keep strictness; it's used by CorePrep | otherwise = vanillaIdInfo - `setCgInfo` cg_info - `setCprInfo` cprInfo core_idinfo - `setStrictnessInfo` strictnessInfo core_idinfo - `setInlinePragInfo` inlinePragInfo core_idinfo - `setUnfoldingInfo` unfold_info - `setWorkerInfo` tidyWorker tidy_env (workerInfo core_idinfo) + `setCgInfo` cg_info + `setNewStrictnessInfo` newStrictnessInfo core_idinfo + `setInlinePragInfo` inlinePragInfo core_idinfo + `setUnfoldingInfo` unfold_info + `setWorkerInfo` tidyWorker tidy_env (workerInfo core_idinfo) -- NB: we throw away the Rules -- They have already been extracted by findExternalRules where