Repository : ssh://darcs.haskell.org//srv/darcs/testsuite On branch : ghc-7.2
http://hackage.haskell.org/trac/ghc/changeset/01033c01e6fa37714c65eb80f33c8d92978721a0 >--------------------------------------------------------------- commit 01033c01e6fa37714c65eb80f33c8d92978721a0 Author: Simon Peyton Jones <[email protected]> Date: Thu Jul 21 12:57:23 2011 +0100 Follow output wibbles T3064 has better residency than before, but slightly worse allocation because the simplifier does one more iteration. That's as a result of the eta-expansion, which leads to a knock-on inlining -- it's a good thing. >--------------------------------------------------------------- tests/perf/compiler/all.T | 6 ++-- tests/simplCore/should_compile/T3717.stderr | 2 + tests/simplCore/should_compile/T3772.stdout | 2 + tests/simplCore/should_compile/T4908.stderr | 24 ++++++++------- tests/simplCore/should_compile/T4930.stderr | 2 + tests/simplCore/should_compile/spec-inline.stderr | 34 +++++++++++---------- 6 files changed, 40 insertions(+), 30 deletions(-) diff --git a/tests/perf/compiler/all.T b/tests/perf/compiler/all.T index b009d27..74f596f 100644 --- a/tests/perf/compiler/all.T +++ b/tests/perf/compiler/all.T @@ -110,15 +110,15 @@ test('T3064', compiler_stats_num_field('peak_megabytes_allocated', 8, 11)), # expected value: 18 (amd64/Linux): if_wordsize(64, - compiler_stats_num_field('peak_megabytes_allocated', 11, 16)), + compiler_stats_num_field('peak_megabytes_allocated', 9, 13)), # expected value: 56380288 (x86/Linux) (28/6/2011) if_wordsize(32, compiler_stats_num_field('bytes allocated', 50000000, - 60000000)), + 62000000)), # expected value: 108937496 (amd64/Linux) (28/6/2011): if_wordsize(64, compiler_stats_num_field('bytes allocated', 100000000, - 120000000)), + 122000000)), # expected value: 2247016 (x86/Linux) (28/6/2011): if_wordsize(32, compiler_stats_num_field('max_bytes_used', 2000000, diff --git a/tests/simplCore/should_compile/T3717.stderr b/tests/simplCore/should_compile/T3717.stderr index 828f789..d677863 100644 --- a/tests/simplCore/should_compile/T3717.stderr +++ b/tests/simplCore/should_compile/T3717.stderr @@ -1,5 +1,7 @@ ==================== Tidy Core ==================== +Result size = 22 + Rec { T3717.$wfoo [Occ=LoopBreaker] :: GHC.Prim.Int# -> GHC.Prim.Int# [GblId, Arity=1, Caf=NoCafRefs, Str=DmdType L] diff --git a/tests/simplCore/should_compile/T3772.stdout b/tests/simplCore/should_compile/T3772.stdout index f3bccb5..343bfa3 100644 --- a/tests/simplCore/should_compile/T3772.stdout +++ b/tests/simplCore/should_compile/T3772.stdout @@ -1,5 +1,7 @@ ==================== Tidy Core ==================== +Result size = 26 + Rec { xs :: GHC.Prim.Int# -> () [GblId, Arity=1, Caf=NoCafRefs, Str=DmdType L] diff --git a/tests/simplCore/should_compile/T4908.stderr b/tests/simplCore/should_compile/T4908.stderr index 9e24e6f..ac90d0f 100644 --- a/tests/simplCore/should_compile/T4908.stderr +++ b/tests/simplCore/should_compile/T4908.stderr @@ -1,18 +1,20 @@ ==================== Tidy Core ==================== +Result size = 54 + Rec { T4908.f_$s$wf [Occ=LoopBreaker] - :: GHC.Types.Int - -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Types.Bool + :: GHC.Prim.Int# + -> GHC.Types.Int -> GHC.Prim.Int# -> GHC.Types.Bool [GblId, Arity=3, Caf=NoCafRefs, Str=DmdType LLL] T4908.f_$s$wf = - \ (sc :: GHC.Types.Int) - (sc1 :: GHC.Prim.Int#) + \ (sc :: GHC.Prim.Int#) + (sc1 :: GHC.Types.Int) (sc2 :: GHC.Prim.Int#) -> - case sc2 of ds { + case sc of ds { __DEFAULT -> - case sc1 of ds1 { - __DEFAULT -> T4908.f_$s$wf sc ds1 (GHC.Prim.-# ds 1); + case sc2 of ds1 { + __DEFAULT -> T4908.f_$s$wf (GHC.Prim.-# ds 1) sc1 ds1; 0 -> GHC.Types.True }; 0 -> GHC.Types.True @@ -36,7 +38,7 @@ T4908.$wf = case w of _ { (a, b) -> case b of _ { GHC.Types.I# ds1 -> case ds1 of ds2 { - __DEFAULT -> T4908.f_$s$wf a ds2 (GHC.Prim.-# ds 1); + __DEFAULT -> T4908.f_$s$wf (GHC.Prim.-# ds 1) a ds2; 0 -> GHC.Types.True } } @@ -64,10 +66,10 @@ T4908.f = ------ Local rules for imported ids -------- "SC:$wf0" [ALWAYS] - forall (sc :: GHC.Types.Int) - (sc1 :: GHC.Prim.Int#) + forall (sc :: GHC.Prim.Int#) + (sc1 :: GHC.Types.Int) (sc2 :: GHC.Prim.Int#). - T4908.$wf sc2 (sc, GHC.Types.I# sc1) + T4908.$wf sc (sc1, GHC.Types.I# sc2) = T4908.f_$s$wf sc sc1 sc2 diff --git a/tests/simplCore/should_compile/T4930.stderr b/tests/simplCore/should_compile/T4930.stderr index bb1637c..10070cf 100644 --- a/tests/simplCore/should_compile/T4930.stderr +++ b/tests/simplCore/should_compile/T4930.stderr @@ -1,5 +1,7 @@ ==================== Tidy Core ==================== +Result size = 23 + lvl :: [GHC.Types.Char] [GblId] lvl = GHC.CString.unpackCString# "Too small" diff --git a/tests/simplCore/should_compile/spec-inline.stderr b/tests/simplCore/should_compile/spec-inline.stderr index cd5d922..33a9366 100644 --- a/tests/simplCore/should_compile/spec-inline.stderr +++ b/tests/simplCore/should_compile/spec-inline.stderr @@ -1,5 +1,7 @@ ==================== Tidy Core ==================== +Result size = 155 + Roman.foo2 :: GHC.Types.Int [GblId, Caf=NoCafRefs, @@ -37,19 +39,19 @@ Roman.foo_$s$wgo = GHC.Prim.+# (GHC.Prim.+# (GHC.Prim.+# - (GHC.Prim.+# (GHC.Prim.+# (GHC.Prim.+# sc sc) sc) sc) sc) - sc) - sc } in - case GHC.Prim.<=# sc1 0 of _ { + (GHC.Prim.+# (GHC.Prim.+# (GHC.Prim.+# sc1 sc1) sc1) sc1) sc1) + sc1) + sc1 } in + case GHC.Prim.<=# sc 0 of _ { GHC.Types.False -> - case GHC.Prim.<# sc1 100 of _ { + case GHC.Prim.<# sc 100 of _ { GHC.Types.False -> - case GHC.Prim.<# sc1 500 of _ { + case GHC.Prim.<# sc 500 of _ { GHC.Types.False -> - Roman.foo_$s$wgo (GHC.Prim.+# a a) (GHC.Prim.-# sc1 1); - GHC.Types.True -> Roman.foo_$s$wgo a (GHC.Prim.-# sc1 3) + Roman.foo_$s$wgo (GHC.Prim.-# sc 1) (GHC.Prim.+# a a); + GHC.Types.True -> Roman.foo_$s$wgo (GHC.Prim.-# sc 3) a }; - GHC.Types.True -> Roman.foo_$s$wgo sc (GHC.Prim.-# sc1 2) + GHC.Types.True -> Roman.foo_$s$wgo (GHC.Prim.-# sc 2) sc1 }; GHC.Types.True -> 0 } @@ -85,7 +87,7 @@ Roman.$wgo = ipv) ipv } in case w of _ { - Data.Maybe.Nothing -> Roman.foo_$s$wgo a 10; + Data.Maybe.Nothing -> Roman.foo_$s$wgo 10 a; Data.Maybe.Just n -> case n of _ { GHC.Types.I# x2 -> case GHC.Prim.<=# x2 0 of _ { @@ -94,10 +96,10 @@ Roman.$wgo = GHC.Types.False -> case GHC.Prim.<# x2 500 of _ { GHC.Types.False -> - Roman.foo_$s$wgo (GHC.Prim.+# a a) (GHC.Prim.-# x2 1); - GHC.Types.True -> Roman.foo_$s$wgo a (GHC.Prim.-# x2 3) + Roman.foo_$s$wgo (GHC.Prim.-# x2 1) (GHC.Prim.+# a a); + GHC.Types.True -> Roman.foo_$s$wgo (GHC.Prim.-# x2 3) a }; - GHC.Types.True -> Roman.foo_$s$wgo ipv (GHC.Prim.-# x2 2) + GHC.Types.True -> Roman.foo_$s$wgo (GHC.Prim.-# x2 2) ipv }; GHC.Types.True -> 0 } @@ -138,15 +140,15 @@ Roman.foo :: GHC.Types.Int -> GHC.Types.Int Roman.foo = \ (n :: GHC.Types.Int) -> case n of _ { GHC.Types.I# ipv -> - case Roman.foo_$s$wgo 6 ipv of ww { __DEFAULT -> GHC.Types.I# ww } + case Roman.foo_$s$wgo ipv 6 of ww { __DEFAULT -> GHC.Types.I# ww } } ------ Local rules for imported ids -------- "SC:$wgo0" [ALWAYS] forall (sc :: GHC.Prim.Int#) (sc1 :: GHC.Prim.Int#). - Roman.$wgo (Data.Maybe.Just @ GHC.Types.Int (GHC.Types.I# sc1)) - (Data.Maybe.Just @ GHC.Types.Int (GHC.Types.I# sc)) + Roman.$wgo (Data.Maybe.Just @ GHC.Types.Int (GHC.Types.I# sc)) + (Data.Maybe.Just @ GHC.Types.Int (GHC.Types.I# sc1)) = Roman.foo_$s$wgo sc sc1 _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
