Commit e55d6fa8 authored by's avatar
Browse files

Don't look through SCC in exprIsConApp_maybe

By not taking account of SCC notes we were inadvertently
discarding some, which led to mis-counted entries with -O

Should fix (part of) Trac #4414
parent cbe382d4
......@@ -1163,13 +1163,14 @@ However e might not *look* as if
-- where are the *universally-qantified* type args of 'dc'
exprIsConApp_maybe :: IdUnfoldingFun -> CoreExpr -> Maybe (DataCon, [Type], [CoreExpr])
exprIsConApp_maybe id_unf (Note _ expr)
exprIsConApp_maybe id_unf (Note note expr)
| notSccNote note
= exprIsConApp_maybe id_unf expr
-- We ignore all notes. For example,
-- We ignore all notes except SCCs. For example,
-- case _scc_ "foo" (C a b) of
-- C a b -> e
-- should be optimised away, but it will be only if we look
-- through the SCC note.
-- should not be optimised away, because we'll lose the
-- entry count on 'foo'; see Trac #4414
exprIsConApp_maybe id_unf (Cast expr co)
= -- Here we do the KPush reduction rule as described in the FC paper
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment