# Ticket #5522: partial.core.1.z6

File partial.core.1.z6, 15.5 KB (added by , 6 years ago) |
---|

Line | |
---|---|

1 | |

2 | ==================== Occurrence analysis ==================== |

3 | lvl_scn :: GHC.Types.Int |

4 | [LclId, Str=DmdType m] |

5 | lvl_scn = GHC.Types.I# 1 |

6 | |

7 | lvl_scm [Occ=OnceL] :: [GHC.Types.Int] |

8 | [LclId, Str=DmdType] |

9 | lvl_scm = |

10 | GHC.Types.: @ GHC.Types.Int lvl_scn (GHC.Types.[] @ GHC.Types.Int) |

11 | |

12 | lvl_scp :: GHC.Types.Int |

13 | [LclId, Str=DmdType m] |

14 | lvl_scp = GHC.Types.I# 2 |

15 | |

16 | lvl_sco [Occ=OnceL] :: [GHC.Types.Int] |

17 | [LclId, Str=DmdType] |

18 | lvl_sco = |

19 | GHC.Types.: @ GHC.Types.Int lvl_scp (GHC.Types.[] @ GHC.Types.Int) |

20 | |

21 | lvl_scr :: GHC.Types.Int |

22 | [LclId, Str=DmdType m] |

23 | lvl_scr = GHC.Types.I# 3 |

24 | |

25 | lvl_scq [Occ=OnceL] :: [GHC.Types.Int] |

26 | [LclId, Str=DmdType] |

27 | lvl_scq = |

28 | GHC.Types.: @ GHC.Types.Int lvl_scr (GHC.Types.[] @ GHC.Types.Int) |

29 | |

30 | lvl_sct :: GHC.Types.Int |

31 | [LclId, Str=DmdType m] |

32 | lvl_sct = GHC.Types.I# 4 |

33 | |

34 | lvl_scs [Occ=OnceL] :: [GHC.Types.Int] |

35 | [LclId, Str=DmdType] |

36 | lvl_scs = |

37 | GHC.Types.: @ GHC.Types.Int lvl_sct (GHC.Types.[] @ GHC.Types.Int) |

38 | |

39 | lvl_scv :: GHC.Types.Int |

40 | [LclId, Str=DmdType m] |

41 | lvl_scv = GHC.Types.I# 5 |

42 | |

43 | lvl_scu [Occ=OnceL] :: [GHC.Types.Int] |

44 | [LclId, Str=DmdType] |

45 | lvl_scu = |

46 | GHC.Types.: @ GHC.Types.Int lvl_scv (GHC.Types.[] @ GHC.Types.Int) |

47 | |

48 | Rec { |

49 | go_abJ [Occ=LoopBreaker] :: [GHC.Types.Int] -> [GHC.Types.Int] |

50 | [LclId, Arity=1, Str=DmdType S] |

51 | go_abJ = |

52 | \ (ds_abK [Occ=Once!] :: [GHC.Types.Int]) -> |

53 | case ds_abK of _ { |

54 | [] -> GHC.Types.[] @ GHC.Types.Int; |

55 | : y_abO [Occ=OnceL!, Dmd=Just D(T)] |

56 | ys_abP [Occ=Once*, Dmd=Just L] -> |

57 | case (letrec { |

58 | go_Xce [Occ=LoopBreaker] :: [GHC.Types.Int] -> [GHC.Types.Int] |

59 | [LclId, Arity=1, Str=DmdType S] |

60 | go_Xce = |

61 | \ (ds_Xcg [Occ=Once!] :: [GHC.Types.Int]) -> |

62 | case ds_Xcg of _ { |

63 | [] -> GHC.Types.[] @ GHC.Types.Int; |

64 | : y_Xcm [Occ=OnceL!, Dmd=Just D(T)] |

65 | ys_Xco [Occ=Once*, Dmd=Just L] -> |

66 | case (letrec { |

67 | go_XcZ [Occ=LoopBreaker] :: [GHC.Types.Int] -> [GHC.Types.Int] |

68 | [LclId, Arity=1, Str=DmdType S] |

69 | go_XcZ = |

70 | \ (ds_Xd2 [Occ=Once!] :: [GHC.Types.Int]) -> |

71 | case ds_Xd2 of _ { |

72 | [] -> GHC.Types.[] @ GHC.Types.Int; |

73 | : y_Xcu [Occ=OnceL!, Dmd=Just D(T)] |

74 | ys_Xcw [Occ=Once*, Dmd=Just L] -> |

75 | case (letrec { |

76 | go_Xdb [Occ=LoopBreaker] |

77 | :: [GHC.Types.Int] -> [GHC.Types.Int] |

78 | [LclId, Arity=1, Str=DmdType S] |

79 | go_Xdb = |

80 | \ (ds_Xcs [Occ=Once!] :: [GHC.Types.Int]) -> |

81 | case ds_Xcs of _ { |

82 | [] -> GHC.Types.[] @ GHC.Types.Int; |

83 | : y_Xcy [Occ=OnceL!, Dmd=Just D(T)] |

84 | ys_XcA [Occ=Once*, Dmd=Just L] -> |

85 | case (letrec { |

86 | go_Xdn [Occ=LoopBreaker] |

87 | :: [GHC.Types.Int] |

88 | -> [GHC.Types.Int] |

89 | [LclId, Arity=1, Str=DmdType S] |

90 | go_Xdn = |

91 | \ (ds_Xdq [Occ=Once!] |

92 | :: [GHC.Types.Int]) -> |

93 | case ds_Xdq of _ { |

94 | [] -> |

95 | GHC.Types.[] |

96 | @ GHC.Types.Int; |

97 | : y_XcC [Occ=Once!, |

98 | Dmd=Just D(T)] |

99 | ys_XcE [Occ=Once*, |

100 | Dmd=Just L] -> |

101 | case (let { |

102 | lvl_scw [Occ=OnceL, |

103 | Dmd=Just D(T)] |

104 | :: GHC.Types.Int |

105 | [LclId, Str=DmdType] |

106 | lvl_scw = |

107 | case y_abO |

108 | of _ |

109 | { GHC.Types.I# x_abx [Occ=Once, |

110 | Dmd=Just L] -> |

111 | case y_Xcm |

112 | of _ |

113 | { GHC.Types.I# y_abB [Occ=Once, |

114 | Dmd=Just L] -> |

115 | case y_Xcu |

116 | of _ |

117 | { GHC.Types.I# y_Xdr [Occ=Once, |

118 | Dmd=Just L] -> |

119 | case y_Xcy |

120 | of _ |

121 | { GHC.Types.I# y_XcI [Occ=Once, |

122 | Dmd=Just L] -> |

123 | case y_XcC |

124 | of _ |

125 | { GHC.Types.I# y_XcU [Occ=Once, |

126 | Dmd=Just L] -> |

127 | GHC.Types.I# |

128 | (GHC.Prim.+# |

129 | (GHC.Prim.+# |

130 | (GHC.Prim.+# |

131 | (GHC.Prim.+# |

132 | x_abx |

133 | y_abB) |

134 | y_Xdr) |

135 | y_XcI) |

136 | y_XcU) |

137 | } |

138 | } |

139 | } |

140 | } |

141 | } } in |

142 | letrec { |

143 | go_Xcx [Occ=LoopBreaker] |

144 | :: [GHC.Types.Int] |

145 | -> [GHC.Types.Int] |

146 | [LclId, |

147 | Arity=1, |

148 | Str=DmdType S] |

149 | go_Xcx = |

150 | \ (ds_Xcz [Occ=Once!] |

151 | :: [GHC.Types.Int]) -> |

152 | case ds_Xcz |

153 | of _ { |

154 | [] -> |

155 | GHC.Types.[] |

156 | @ GHC.Types.Int; |

157 | : y_XcF [Occ=Once, |

158 | Dmd=Just D(L)] |

159 | ys_XcH [Occ=Once, |

160 | Dmd=Just L] -> |

161 | GHC.Types.: |

162 | @ GHC.Types.Int |

163 | (GHC.Base.plusInt |

164 | lvl_scw |

165 | y_XcF) |

166 | (go_Xcx |

167 | ys_XcH) |

168 | }; } in |

169 | go_Xcx) |

170 | lvl_scu |

171 | of _ { |

172 | [] -> go_Xdn ys_XcE; |

173 | : x_abV [Occ=Once, |

174 | Dmd=Just L] |

175 | xs_abW [Occ=Once, |

176 | Dmd=Just L] -> |

177 | GHC.Types.: |

178 | @ GHC.Types.Int |

179 | x_abV |

180 | (GHC.Base.++ |

181 | @ GHC.Types.Int |

182 | xs_abW |

183 | (go_Xdn ys_XcE)) |

184 | } |

185 | }; } in |

186 | go_Xdn) |

187 | lvl_scs |

188 | of _ { |

189 | [] -> go_Xdb ys_XcA; |

190 | : x_abV [Occ=Once, Dmd=Just L] |

191 | xs_abW [Occ=Once, Dmd=Just L] -> |

192 | GHC.Types.: |

193 | @ GHC.Types.Int |

194 | x_abV |

195 | (GHC.Base.++ |

196 | @ GHC.Types.Int |

197 | xs_abW |

198 | (go_Xdb ys_XcA)) |

199 | } |

200 | }; } in |

201 | go_Xdb) |

202 | lvl_scq |

203 | of _ { |

204 | [] -> go_XcZ ys_Xcw; |

205 | : x_abV [Occ=Once, Dmd=Just L] |

206 | xs_abW [Occ=Once, Dmd=Just L] -> |

207 | GHC.Types.: |

208 | @ GHC.Types.Int |

209 | x_abV |

210 | (GHC.Base.++ @ GHC.Types.Int xs_abW (go_XcZ ys_Xcw)) |

211 | } |

212 | }; } in |

213 | go_XcZ) |

214 | lvl_sco |

215 | of _ { |

216 | [] -> go_Xce ys_Xco; |

217 | : x_abV [Occ=Once, Dmd=Just L] xs_abW [Occ=Once, Dmd=Just L] -> |

218 | GHC.Types.: |

219 | @ GHC.Types.Int |

220 | x_abV |

221 | (GHC.Base.++ @ GHC.Types.Int xs_abW (go_Xce ys_Xco)) |

222 | } |

223 | }; } in |

224 | go_Xce) |

225 | lvl_scm |

226 | of _ { |

227 | [] -> go_abJ ys_abP; |

228 | : x_abV [Occ=Once, Dmd=Just L] xs_abW [Occ=Once, Dmd=Just L] -> |

229 | GHC.Types.: |

230 | @ GHC.Types.Int |

231 | x_abV |

232 | (GHC.Base.++ @ GHC.Types.Int xs_abW (go_abJ ys_abP)) |

233 | } |

234 | } |

235 | end Rec } |

236 | |

237 | lvl_sdS [Occ=Once] :: GHC.Types.Int |

238 | [LclId] |

239 | lvl_sdS = GHC.Types.I# 0 |

240 | |

241 | lvl_sdR [Occ=Once] :: [GHC.Types.Int] |

242 | [LclId] |

243 | lvl_sdR = |

244 | GHC.Types.: @ GHC.Types.Int lvl_sdS (GHC.Types.[] @ GHC.Types.Int) |

245 | |

246 | Foo.output :: [GHC.Types.Int] |

247 | [LclIdX, Str=DmdType] |

248 | Foo.output = go_abJ lvl_sdR |

249 |