summaryrefslogtreecommitdiff
path: root/testsuite/tests/roles
diff options
context:
space:
mode:
authorBen Gamari <bgamari.foss@gmail.com>2017-03-03 15:47:47 -0500
committerBen Gamari <ben@smart-cactus.org>2017-03-03 15:47:48 -0500
commitc1dacb8a9c18677495bbe7e41391f8ca7a573070 (patch)
tree9f3e33766337e42511b75795b264bc4393c08ade /testsuite/tests/roles
parenta694cee77b64235b42029fea248453ddf6b17d17 (diff)
downloadhaskell-c1dacb8a9c18677495bbe7e41391f8ca7a573070.tar.gz
Produce KindReps for common kinds in GHC.Types
Unfortunately this comes with a fair bit of implementation cost. Perhaps some refactoring would help, but in the interest of getting 8.2 out the door I'm pushing as-is. While this doesn't have nearly the effect on compiler allocations that D3166 has, it's still nothing to sneeze at. nofib shows, ``` ------------------------------------------------------------------------ Program master D3166 D3219 ------------------------------------------------------------------------ -1 s.d. ----- -3.555% -4.081% +1 s.d. ----- +1.937% +1.593% Average ----- -0.847% -1.285% ``` Test Plan: Validate Reviewers: austin Subscribers: thomie, simonmar Differential Revision: https://phabricator.haskell.org/D3219
Diffstat (limited to 'testsuite/tests/roles')
-rw-r--r--testsuite/tests/roles/should_compile/Roles1.stderr16
-rw-r--r--testsuite/tests/roles/should_compile/Roles13.stderr56
-rw-r--r--testsuite/tests/roles/should_compile/Roles14.stderr4
-rw-r--r--testsuite/tests/roles/should_compile/Roles2.stderr6
-rw-r--r--testsuite/tests/roles/should_compile/Roles3.stderr14
-rw-r--r--testsuite/tests/roles/should_compile/Roles4.stderr6
-rw-r--r--testsuite/tests/roles/should_compile/T8958.stderr9
7 files changed, 45 insertions, 66 deletions
diff --git a/testsuite/tests/roles/should_compile/Roles1.stderr b/testsuite/tests/roles/should_compile/Roles1.stderr
index ae4570ab47..e9f7823aae 100644
--- a/testsuite/tests/roles/should_compile/Roles1.stderr
+++ b/testsuite/tests/roles/should_compile/Roles1.stderr
@@ -64,7 +64,7 @@ Roles1.$tcT5
Roles1.$trModule
(GHC.Types.TrNameS "T5"#)
0
- $krep
+ GHC.Types.krep$*Arr*
Roles1.$tc'K5
= GHC.Types.TyCon
5548842497263642061##
@@ -112,7 +112,7 @@ Roles1.$tcT2
Roles1.$trModule
(GHC.Types.TrNameS "T2"#)
0
- $krep
+ GHC.Types.krep$*Arr*
Roles1.$tc'K2
= GHC.Types.TyCon
11054915488163123841##
@@ -128,7 +128,7 @@ Roles1.$tcT1
Roles1.$trModule
(GHC.Types.TrNameS "T1"#)
0
- $krep
+ GHC.Types.krep$*Arr*
Roles1.$tc'K1
= GHC.Types.TyCon
1265606750138351672##
@@ -143,15 +143,16 @@ $krep [InlPrag=[~]] = GHC.Types.KindRepVar 0
$krep [InlPrag=[~]] = GHC.Types.KindRepVar 1
$krep [InlPrag=[~]] = GHC.Types.KindRepVar 2
$krep [InlPrag=[~]] = GHC.Types.KindRepApp $krep $krep
+$krep [InlPrag=[~]]
+ = GHC.Types.KindRepFun $krep GHC.Types.krep$*Arr*
+$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep GHC.Types.krep$*
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
+$krep [InlPrag=[~]]
+ = GHC.Types.KindRepFun GHC.Types.krep$*Arr* GHC.Types.krep$*Arr*
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp
Roles1.$tcT7 ((:) $krep ((:) $krep ((:) $krep [])))
@@ -161,7 +162,6 @@ $krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp Roles1.$tcT4 ((:) $krep ((:) $krep []))
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp Roles1.$tcT3 ((:) $krep ((:) $krep []))
-$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp Roles1.$tcT5 ((:) $krep [])
$krep [InlPrag=[~]]
diff --git a/testsuite/tests/roles/should_compile/Roles13.stderr b/testsuite/tests/roles/should_compile/Roles13.stderr
index 6a5e31d9c5..6b7bb557f4 100644
--- a/testsuite/tests/roles/should_compile/Roles13.stderr
+++ b/testsuite/tests/roles/should_compile/Roles13.stderr
@@ -1,7 +1,7 @@
==================== Tidy Core ====================
Result size of Tidy Core
- = {terms: 105, types: 40, coercions: 5, joins: 0/0}
+ = {terms: 98, types: 38, coercions: 5, joins: 0/0}
-- RHS size: {terms: 2, types: 2, coercions: 0, joins: 0/0}
convert1 :: Wrap Age -> Wrap Age
@@ -51,17 +51,7 @@ $krep
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$krep1 :: GHC.Types.KindRep
[GblId, Caf=NoCafRefs]
-$krep1 = GHC.Types.KindRepTYPE GHC.Types.LiftedRep
-
--- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep2 :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs]
-$krep2 = GHC.Types.KindRepFun $krep1 $krep1
-
--- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-$krep3 :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs]
-$krep3 = GHC.Types.KindRepVar 0#
+$krep1 = GHC.Types.KindRepVar 0#
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$tcAge1 :: GHC.Prim.Addr#
@@ -75,7 +65,7 @@ $tcAge2 = GHC.Types.TrNameS $tcAge1
-- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
Roles13.$tcAge :: GHC.Types.TyCon
-[GblId, Caf=NoCafRefs]
+[GblId]
Roles13.$tcAge
= GHC.Types.TyCon
3456257068627873222##
@@ -83,19 +73,19 @@ Roles13.$tcAge
Roles13.$trModule
$tcAge2
0#
- $krep1
+ GHC.Types.krep$*
-- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep4 :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs]
-$krep4
+$krep2 :: GHC.Types.KindRep
+[GblId]
+$krep2
= GHC.Types.KindRepTyConApp
Roles13.$tcAge (GHC.Types.[] @ GHC.Types.KindRep)
-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep5 :: GHC.Types.KindRep
+$krep3 :: GHC.Types.KindRep
[GblId]
-$krep5 = GHC.Types.KindRepFun $krep $krep4
+$krep3 = GHC.Types.KindRepFun $krep $krep2
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$tc'MkAge1 :: GHC.Prim.Addr#
@@ -117,7 +107,7 @@ Roles13.$tc'MkAge
Roles13.$trModule
$tc'MkAge2
0#
- $krep5
+ $krep3
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$tcWrap1 :: GHC.Prim.Addr#
@@ -131,7 +121,7 @@ $tcWrap2 = GHC.Types.TrNameS $tcWrap1
-- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
Roles13.$tcWrap :: GHC.Types.TyCon
-[GblId, Caf=NoCafRefs]
+[GblId]
Roles13.$tcWrap
= GHC.Types.TyCon
13773534096961634492##
@@ -139,24 +129,24 @@ Roles13.$tcWrap
Roles13.$trModule
$tcWrap2
0#
- $krep2
+ GHC.Types.krep$*Arr*
-- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
-$krep6 :: [GHC.Types.KindRep]
+$krep4 :: [GHC.Types.KindRep]
[GblId, Caf=NoCafRefs]
-$krep6
+$krep4
= GHC.Types.:
- @ GHC.Types.KindRep $krep3 (GHC.Types.[] @ GHC.Types.KindRep)
+ @ GHC.Types.KindRep $krep1 (GHC.Types.[] @ GHC.Types.KindRep)
-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep7 :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs]
-$krep7 = GHC.Types.KindRepTyConApp Roles13.$tcWrap $krep6
+$krep5 :: GHC.Types.KindRep
+[GblId]
+$krep5 = GHC.Types.KindRepTyConApp Roles13.$tcWrap $krep4
-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep8 :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs]
-$krep8 = GHC.Types.KindRepFun $krep3 $krep7
+$krep6 :: GHC.Types.KindRep
+[GblId]
+$krep6 = GHC.Types.KindRepFun $krep1 $krep5
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$tc'MkWrap1 :: GHC.Prim.Addr#
@@ -170,7 +160,7 @@ $tc'MkWrap2 = GHC.Types.TrNameS $tc'MkWrap1
-- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
Roles13.$tc'MkWrap :: GHC.Types.TyCon
-[GblId, Caf=NoCafRefs]
+[GblId]
Roles13.$tc'MkWrap
= GHC.Types.TyCon
15580677875333883466##
@@ -178,7 +168,7 @@ Roles13.$tc'MkWrap
Roles13.$trModule
$tc'MkWrap2
1#
- $krep8
+ $krep6
diff --git a/testsuite/tests/roles/should_compile/Roles14.stderr b/testsuite/tests/roles/should_compile/Roles14.stderr
index 08ca28fecc..ce4ddd3bb7 100644
--- a/testsuite/tests/roles/should_compile/Roles14.stderr
+++ b/testsuite/tests/roles/should_compile/Roles14.stderr
@@ -19,7 +19,7 @@ Roles12.$tcC2
Roles12.$trModule
(GHC.Types.TrNameS "C2"#)
0
- $krep
+ GHC.Types.krep$*Arr*
Roles12.$tc'C:C2
= GHC.Types.TyCon
7087988437584478859##
@@ -31,8 +31,6 @@ Roles12.$tc'C:C2
$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp Roles12.$tcC2 ((:) $krep [])
Roles12.$trModule
diff --git a/testsuite/tests/roles/should_compile/Roles2.stderr b/testsuite/tests/roles/should_compile/Roles2.stderr
index b96d17330a..23d253eb8e 100644
--- a/testsuite/tests/roles/should_compile/Roles2.stderr
+++ b/testsuite/tests/roles/should_compile/Roles2.stderr
@@ -18,7 +18,7 @@ Roles2.$tcT2
Roles2.$trModule
(GHC.Types.TrNameS "T2"#)
0
- $krep
+ GHC.Types.krep$*Arr*
Roles2.$tc'K2
= GHC.Types.TyCon
17395957229042313563##
@@ -34,7 +34,7 @@ Roles2.$tcT1
Roles2.$trModule
(GHC.Types.TrNameS "T1"#)
0
- $krep
+ GHC.Types.krep$*Arr*
Roles2.$tc'K1
= GHC.Types.TyCon
16530009231990968394##
@@ -46,8 +46,6 @@ Roles2.$tc'K1
$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp GHC.Ptr.$tcFunPtr ((:) $krep [])
$krep [InlPrag=[~]]
diff --git a/testsuite/tests/roles/should_compile/Roles3.stderr b/testsuite/tests/roles/should_compile/Roles3.stderr
index 7f9f1a39d9..cc9ce91a52 100644
--- a/testsuite/tests/roles/should_compile/Roles3.stderr
+++ b/testsuite/tests/roles/should_compile/Roles3.stderr
@@ -40,7 +40,7 @@ Roles3.$tcC4
Roles3.$trModule
(GHC.Types.TrNameS "C4"#)
0
- $krep
+ GHC.Types.krep$*->*->*
Roles3.$tcC3
= GHC.Types.TyCon
5076086601454991970##
@@ -48,7 +48,7 @@ Roles3.$tcC3
Roles3.$trModule
(GHC.Types.TrNameS "C3"#)
0
- $krep
+ GHC.Types.krep$*->*->*
Roles3.$tcC2
= GHC.Types.TyCon
7902873224172523979##
@@ -56,7 +56,7 @@ Roles3.$tcC2
Roles3.$trModule
(GHC.Types.TrNameS "C2"#)
0
- $krep
+ GHC.Types.krep$*->*->*
Roles3.$tc'C:C2
= GHC.Types.TyCon
11218882737915989529##
@@ -72,7 +72,7 @@ Roles3.$tcC1
Roles3.$trModule
(GHC.Types.TrNameS "C1"#)
0
- $krep
+ GHC.Types.krep$*Arr*
Roles3.$tc'C:C1
= GHC.Types.TyCon
4508088879886988796##
@@ -88,14 +88,12 @@ $krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp
- Data.Type.Equality.$tc~ ((:) $krep ((:) $krep ((:) $krep [])))
+ Data.Type.Equality.$tc~
+ ((:) GHC.Types.krep$* ((:) $krep ((:) $krep [])))
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp Roles3.$tcC2 ((:) $krep ((:) $krep []))
-$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp Roles3.$tcC1 ((:) $krep [])
Roles3.$trModule
diff --git a/testsuite/tests/roles/should_compile/Roles4.stderr b/testsuite/tests/roles/should_compile/Roles4.stderr
index 205a4d5714..ac9d08b415 100644
--- a/testsuite/tests/roles/should_compile/Roles4.stderr
+++ b/testsuite/tests/roles/should_compile/Roles4.stderr
@@ -25,7 +25,7 @@ Roles4.$tcC3
Roles4.$trModule
(GHC.Types.TrNameS "C3"#)
0
- $krep
+ GHC.Types.krep$*Arr*
Roles4.$tc'C:C3
= GHC.Types.TyCon
3133378316178104365##
@@ -41,7 +41,7 @@ Roles4.$tcC1
Roles4.$trModule
(GHC.Types.TrNameS "C1"#)
0
- $krep
+ GHC.Types.krep$*Arr*
Roles4.$tc'C:C1
= GHC.Types.TyCon
3870707671502302648##
@@ -55,8 +55,6 @@ $krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp GHC.Types.$tc[] ((:) $krep [])
$krep [InlPrag=[~]]
diff --git a/testsuite/tests/roles/should_compile/T8958.stderr b/testsuite/tests/roles/should_compile/T8958.stderr
index 22cc6ca7b7..bb20002c26 100644
--- a/testsuite/tests/roles/should_compile/T8958.stderr
+++ b/testsuite/tests/roles/should_compile/T8958.stderr
@@ -27,7 +27,7 @@ T8958.$tcMap
T8958.$trModule
(GHC.Types.TrNameS "Map"#)
0
- $krep
+ GHC.Types.krep$*->*->*
T8958.$tc'MkMap
= GHC.Types.TyCon
2942839876828444488##
@@ -43,7 +43,7 @@ T8958.$tcRepresentational
T8958.$trModule
(GHC.Types.TrNameS "Representational"#)
0
- $krep
+ GHC.Types.krep$*Arr*
T8958.$tc'C:Representational
= GHC.Types.TyCon
2358772282532242424##
@@ -59,7 +59,7 @@ T8958.$tcNominal
T8958.$trModule
(GHC.Types.TrNameS "Nominal"#)
0
- $krep
+ GHC.Types.krep$*Arr*
T8958.$tc'C:Nominal
= GHC.Types.TyCon
10562260635335201742##
@@ -71,8 +71,6 @@ T8958.$tc'C:Nominal
$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0
$krep [InlPrag=[~]] = GHC.Types.KindRepVar 1
$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
-$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp
GHC.Tuple.$tc(,)
@@ -83,7 +81,6 @@ $krep [InlPrag=[~]]
T8958.$tcMap
((:) @ GHC.Types.KindRep
$krep ((:) @ GHC.Types.KindRep $krep [] @ GHC.Types.KindRep))
-$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep
$krep [InlPrag=[~]]
= GHC.Types.KindRepTyConApp
GHC.Types.$tc[]