X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fstranal%2FWorkWrap.lhs;fp=compiler%2Fstranal%2FWorkWrap.lhs;h=7a56c33289f1ca16c7075a67d51201bb9732d0ad;hp=b0759b92aabe9f87abcd9b7e3f923e97496755b6;hb=0e04bfecd870305bdf5945ba3ab80f314c708265;hpb=0f62d90fe74c90fa5a6568f23ccb5576f12a6c4e diff --git a/compiler/stranal/WorkWrap.lhs b/compiler/stranal/WorkWrap.lhs index b0759b9..7a56c33 100644 --- a/compiler/stranal/WorkWrap.lhs +++ b/compiler/stranal/WorkWrap.lhs @@ -226,6 +226,7 @@ tryWW is_rec fn_id rhs = return [ (fn_id, rhs) ] | is_thunk && worthSplittingThunk maybe_fn_dmd res_info + -- See Note [Thunk splitting] = ASSERT2( isNonRec is_rec, ppr new_fn_id ) -- The thunk must be non-recursive checkSize new_fn_id rhs $ splitThunk new_fn_id rhs @@ -356,8 +357,8 @@ get_one_shots (Note _ e) = get_one_shots e get_one_shots _ = noOneShotInfo \end{code} -Thunk splitting -~~~~~~~~~~~~~~~ +Note [Thunk splitting] +~~~~~~~~~~~~~~~~~~~~~~ Suppose x is used strictly (never mind whether it has the CPR property). @@ -391,6 +392,7 @@ function, so that if x's demand is deeper (say U(U(L,L),L)) then the splitting will go deeper too. \begin{code} +-- See Note [Thunk splitting] -- splitThunk converts the *non-recursive* binding -- x = e -- into