diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2015-04-14 09:20:42 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2015-04-14 09:22:00 +0100 |
commit | d261d4cbcc867405f71d7c9580628f52978e2267 (patch) | |
tree | aeb2b0c1fa7c552327e941108855f3370cd2605c /compiler/simplCore/SetLevels.hs | |
parent | 919b51174163907d2bc3bb41aadf56aa8bb42e9b (diff) | |
download | haskell-d261d4cbcc867405f71d7c9580628f52978e2267.tar.gz |
Zap usage info in CSE (Trac #10218)
Trac #10218 reports a subtle bug that turned out to be:
- CSE invalidated the usage information computed
by earlier demand analysis, by increasing sharing
- that made a single-entry thunk into a multi-entry thunk
- and with -feager-blackholing, that led to <<loop>>
The patch fixes it by making the CSE pass zap usage information for
let-bound identifiers. It can be restored by -flate-dmd-anal.
(But making -flate-dmd-anal the default needs some careful work;
see Trac #7782.)
Diffstat (limited to 'compiler/simplCore/SetLevels.hs')
-rw-r--r-- | compiler/simplCore/SetLevels.hs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/simplCore/SetLevels.hs b/compiler/simplCore/SetLevels.hs index 0d7ba70111..de02e27c2b 100644 --- a/compiler/simplCore/SetLevels.hs +++ b/compiler/simplCore/SetLevels.hs @@ -1099,7 +1099,7 @@ add_id id_env (v, v1) zap_demand_info :: Var -> Var zap_demand_info v - | isId v = zapDemandIdInfo v + | isId v = zapIdDemandInfo v | otherwise = v {- |