Fix two uses of [ e1 .. e2 ] in light of the new Haskell 98 semantics.
where
-- find all unboxed stack-resident ids
unboxed_slots =
where
-- find all unboxed stack-resident ids
unboxed_slots =
- [ (ofs, getPrimRepSize rep) |
(MkCgIdInfo id _ (VirStkLoc ofs) _) <- rngVarEnv binds,
(MkCgIdInfo id _ (VirStkLoc ofs) _) <- rngVarEnv binds,
- let rep = idPrimRep id,
- not (isFollowableRep rep)
+ let rep = idPrimRep id; size = getPrimRepSize rep,
+ not (isFollowableRep rep),
+ size > 0
]
-- flatten this list into a list of unboxed stack slots
]
-- flatten this list into a list of unboxed stack slots
| otherwise
= case i of
MkCgIdInfo _ _ stable_loc _
| otherwise
= case i of
MkCgIdInfo _ _ stable_loc _
+ | is_stk_loc && size > 0 ->
dead_slots live_vars fbs ([offset-size+1 .. offset] ++ ds) bs
where
maybe_stk_loc = maybeStkLoc stable_loc
dead_slots live_vars fbs ([offset-size+1 .. offset] ++ ds) bs
where
maybe_stk_loc = maybeStkLoc stable_loc