diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2014-05-08 11:21:16 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2014-08-28 11:14:05 +0100 |
commit | 6e0f6ededff6018a88dd390590a09f79842ccfa5 (patch) | |
tree | c2d4f46cfdcf8b236d9ac751c48f0b0ccced7503 /testsuite/tests/numeric | |
parent | e9cd1d5e9d6f0e019d6433a3c7dd9585b3f7ae6b (diff) | |
download | haskell-6e0f6ededff6018a88dd390590a09f79842ccfa5.tar.gz |
Refactor unfoldings
There are two main refactorings here
1. Move the uf_arity field
out of CoreUnfolding
into UnfWhen
It's a lot tidier there. If I've got this right, no behaviour
should change.
2. Define specUnfolding and use it in DsBinds and Specialise
a) commons-up some shared code
b) makes sure that Specialise correctly specialises DFun
unfoldings (which it didn't before)
The two got put together because both ended up interacting in the
specialiser.
They cause zero difference to nofib.
Diffstat (limited to 'testsuite/tests/numeric')
-rw-r--r-- | testsuite/tests/numeric/should_compile/T7116.stdout | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/testsuite/tests/numeric/should_compile/T7116.stdout b/testsuite/tests/numeric/should_compile/T7116.stdout index 549ed488aa..9e5d19e3e0 100644 --- a/testsuite/tests/numeric/should_compile/T7116.stdout +++ b/testsuite/tests/numeric/should_compile/T7116.stdout @@ -7,9 +7,9 @@ T7116.dl :: GHC.Types.Double -> GHC.Types.Double Arity=1, Caf=NoCafRefs, Str=DmdType <S,1*U(U)>m, - Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True, - ConLike=True, WorkFree=True, Expandable=True, - Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=False) + Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, + WorkFree=True, Expandable=True, + Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False) Tmpl= \ (x [Occ=Once!] :: GHC.Types.Double) -> case x of _ [Occ=Dead] { GHC.Types.D# y -> GHC.Types.D# (GHC.Prim.+## y y) @@ -25,9 +25,9 @@ T7116.dr :: GHC.Types.Double -> GHC.Types.Double Arity=1, Caf=NoCafRefs, Str=DmdType <S,1*U(U)>m, - Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True, - ConLike=True, WorkFree=True, Expandable=True, - Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=False) + Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, + WorkFree=True, Expandable=True, + Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False) Tmpl= \ (x [Occ=Once!] :: GHC.Types.Double) -> case x of _ [Occ=Dead] { GHC.Types.D# x1 -> GHC.Types.D# (GHC.Prim.+## x1 x1) @@ -39,9 +39,9 @@ T7116.fl :: GHC.Types.Float -> GHC.Types.Float Arity=1, Caf=NoCafRefs, Str=DmdType <S,1*U(U)>m, - Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True, - ConLike=True, WorkFree=True, Expandable=True, - Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=False) + Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, + WorkFree=True, Expandable=True, + Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False) Tmpl= \ (x [Occ=Once!] :: GHC.Types.Float) -> case x of _ [Occ=Dead] { GHC.Types.F# y -> GHC.Types.F# (GHC.Prim.plusFloat# y y) @@ -57,9 +57,9 @@ T7116.fr :: GHC.Types.Float -> GHC.Types.Float Arity=1, Caf=NoCafRefs, Str=DmdType <S,1*U(U)>m, - Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True, - ConLike=True, WorkFree=True, Expandable=True, - Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=False) + Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, + WorkFree=True, Expandable=True, + Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False) Tmpl= \ (x [Occ=Once!] :: GHC.Types.Float) -> case x of _ [Occ=Dead] { GHC.Types.F# x1 -> GHC.Types.F# (GHC.Prim.plusFloat# x1 x1) |