-
-
-%************************************************************************
-%* *
-\subsection[addAutoScc]{Adding automatic sccs}
-%* *
-%************************************************************************
-
-\begin{code}
-addAutoScc :: (FAST_STRING, FAST_STRING) -- Module and group
- -> (Id, CoreExpr)
- -> (Id,CoreExpr)
-
-addAutoScc (mod, grp) pair@(bndr, core_expr)
- | worthSCC core_expr &&
- (opt_AutoSccsOnAllToplevs ||
- (isExported bndr && opt_AutoSccsOnExportedToplevs))
- = (bndr, SCC (mkAutoCC bndr mod grp IsNotCafCC) core_expr)
-
- | otherwise
- = pair
-
-worthSCC (SCC _ _) = False
-worthSCC (Con _ _) = False
-worthSCC core_expr = True
-\end{code}