Commit 96cb07b5 authored by simonpj@microsoft.com's avatar simonpj@microsoft.com
Browse files

Use Id.isStrictId

parent 49d454d8
......@@ -90,7 +90,7 @@ Consider this:
f = \ t -> case (v `cast` co) of
V a b -> a : f t
Exactly the same optimistaion (unrolling one call to f) will work here,
Exactly the same optimisation (unrolling one call to f) will work here,
despite the cast. See mk_alt_env in the Case branch of libCase.
......@@ -108,7 +108,6 @@ big.
Data types
~~~~~~~~~~
The ``level'' of a binder tells how many
recursive defns lexically enclose the binding
A recursive defn "encloses" its RHS, not its
......
......@@ -9,8 +9,6 @@ module SimplEnv (
OutId, OutTyVar, OutBind, OutExpr, OutAlt, OutArg, OutType, OutBndr,
InCoercion, OutCoercion,
isStrictBndr,
-- The simplifier mode
setMode, getMode,
......@@ -92,13 +90,6 @@ type OutAlt = CoreAlt
type OutArg = CoreArg
\end{code}
\begin{code}
isStrictBndr :: Id -> Bool
isStrictBndr bndr
= ASSERT2( isId bndr, ppr bndr )
isStrictDmd (idNewDemandInfo bndr) || isStrictType (idType bndr)
\end{code}
%************************************************************************
%* *
\subsubsection{The @SimplEnv@ type}
......@@ -364,7 +355,7 @@ andFF FltLifted flt = flt
classifyFF :: CoreBind -> FloatFlag
classifyFF (Rec _) = FltLifted
classifyFF (NonRec bndr rhs)
| not (isStrictBndr bndr) = FltLifted
| not (isStrictId bndr) = FltLifted
| exprOkForSpeculation rhs = FltOkSpec
| otherwise = FltCareful
......
......@@ -19,7 +19,7 @@ module SimplUtils (
mkBoringStop, mkLazyArgStop, mkRhsStop, contIsRhsOrArg,
interestingCallContext, interestingArgContext,
interestingArg, isStrictBndr, mkArgInfo
interestingArg, mkArgInfo
) where
#include "HsVersions.h"
......
......@@ -359,7 +359,7 @@ simplNonRecX :: SimplEnv
simplNonRecX env bndr new_rhs
= do { (env, bndr') <- simplBinder env bndr
; completeNonRecX env NotTopLevel NonRecursive
(isStrictBndr bndr) bndr bndr' new_rhs }
(isStrictId bndr) bndr bndr' new_rhs }
completeNonRecX :: SimplEnv
-> TopLevelFlag -> RecFlag -> Bool
......@@ -842,7 +842,7 @@ simplNonRecE env bndr (rhs, rhs_se) (bndrs, body) cont
= do { tick (PreInlineUnconditionally bndr)
; simplLam (extendIdSubst env bndr (mkContEx rhs_se rhs)) bndrs body cont }
| isStrictBndr bndr
| isStrictId bndr
= do { simplExprF (rhs_se `setFloats` env) rhs
(StrictBind bndr bndrs body env cont) }
......
Markdown is supported
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