Ticket #2252: goodSimplOpt.txt

File goodSimplOpt.txt, 15.3 KB (added by simona, 6 years ago)

simplifier output for GoodPerform?.hs (with -O)

Line 
1
2==================== Tidy Core ====================
3lvl_r1ao :: [GHC.Base.Char]
4[GlobalId]
5[]
6lvl_r1ao = GHC.Base.unpackCString# "something's wrong"
7
8a_r1aq :: GHC.Num.Integer
9[GlobalId]
10[NoCafRefs
11 Str: DmdType]
12a_r1aq = GHC.Num.S# 8
13
14a1_r1as :: GHC.Num.Integer
15[GlobalId]
16[NoCafRefs
17 Str: DmdType]
18a1_r1as = GHC.Num.S# 1
19
20fail_r1au :: (Abs.Domain.SparsePolyhedra.Types.DomVar,
21              Abs.Domain.SparsePolyhedra.Types.DomVar,
22              Abs.Domain.SparsePolyhedra.Types.DomVar,
23              Abs.Domain.SparsePolyhedra.Types.DomVar,
24              Abs.Domain.SparsePolyhedra.Types.DomVar,
25              Abs.Domain.SparsePolyhedra.Types.DomVar,
26              Abs.Domain.SparsePolyhedra.Types.DomVar,
27              Abs.Domain.SparsePolyhedra.Types.DomVar)
28[GlobalId]
29[Str: DmdType b]
30fail_r1au =
31  GHC.Err.irrefutPatError
32    @ (Abs.Domain.SparsePolyhedra.Types.DomVar,
33       Abs.Domain.SparsePolyhedra.Types.DomVar,
34       Abs.Domain.SparsePolyhedra.Types.DomVar,
35       Abs.Domain.SparsePolyhedra.Types.DomVar,
36       Abs.Domain.SparsePolyhedra.Types.DomVar,
37       Abs.Domain.SparsePolyhedra.Types.DomVar,
38       Abs.Domain.SparsePolyhedra.Types.DomVar,
39       Abs.Domain.SparsePolyhedra.Types.DomVar)
40    "tests/GoodPerform.hs:36:0-41|(s : c : sn : u : tn : p : f : vn : _)"
41
42ds_r1aw :: (Abs.Domain.SparsePolyhedra.Types.DomVar,
43            Abs.Domain.SparsePolyhedra.Types.DomVar,
44            Abs.Domain.SparsePolyhedra.Types.DomVar,
45            Abs.Domain.SparsePolyhedra.Types.DomVar,
46            Abs.Domain.SparsePolyhedra.Types.DomVar,
47            Abs.Domain.SparsePolyhedra.Types.DomVar,
48            Abs.Domain.SparsePolyhedra.Types.DomVar,
49            Abs.Domain.SparsePolyhedra.Types.DomVar)
50[GlobalId]
51[Str: DmdType]
52ds_r1aw =
53  case GHC.Enum.eftInt 1 9223372036854775807 of wild_Xr {
54    [] -> fail_r1au;
55    : s1_XGJ ds1_dRv ->
56      case ds1_dRv of wild1_XD {
57        [] -> fail_r1au;
58        : c1_XGO ds2_dRw ->
59          case ds2_dRw of wild2_XH {
60            [] -> fail_r1au;
61            : sn1_XGT ds3_dRx ->
62              case ds3_dRx of wild3_XL {
63                [] -> fail_r1au;
64                : u1_XGY ds4_dRy ->
65                  case ds4_dRy of wild4_XP {
66                    [] -> fail_r1au;
67                    : tn1_XH3 ds5_dRz ->
68                      case ds5_dRz of wild5_XT {
69                        [] -> fail_r1au;
70                        : p1_XH8 ds6_dRA ->
71                          case ds6_dRA of wild6_XX {
72                            [] -> fail_r1au;
73                            : f1_XHd ds7_dRB ->
74                              case ds7_dRB of wild7_X11 {
75                                [] -> fail_r1au;
76                                : vn1_XHi ds8_dRC ->
77                                  (s1_XGJ, c1_XGO, sn1_XGT, u1_XGY, tn1_XH3, p1_XH8, f1_XHd, vn1_XHi)
78                              }
79                          }
80                      }
81                  }
82              }
83          }
84      }
85  }
86
87u_rt5 :: Abs.Domain.SparsePolyhedra.Types.DomVar
88[GlobalId]
89[Str: DmdType]
90u_rt5 =
91  case ds_r1aw
92  of ds1_XSl
93  { (s1_XGK, c1_XGM, sn1_XGO, u1_XGQ, tn1_XGS, p1_XGU, f1_XGW, vn1_XGY) ->
94  u1_XGQ
95  }
96
97a2_r1ay :: (GHC.Num.Integer, Abs.Domain.SparsePolyhedra.Types.DomVar)
98[GlobalId]
99[Str: DmdType m]
100a2_r1ay = (a1_r1as, u_rt5)
101
102a3_r1aA :: [Abs.Domain.SparsePolyhedra.Types.Term]
103[GlobalId]
104[Str: DmdType]
105a3_r1aA =
106  GHC.Base.:
107    @ Abs.Domain.SparsePolyhedra.Types.Term
108    a2_r1ay
109    (GHC.Base.[] @ Abs.Domain.SparsePolyhedra.Types.Term)
110
111lvl1_r1aC :: [[Abs.Domain.SparsePolyhedra.Types.Term]]
112[GlobalId]
113[]
114lvl1_r1aC =
115  GHC.Base.map
116    @ (GHC.Num.Integer, Abs.Domain.SparsePolyhedra.Types.DomVar)
117    @ [Abs.Domain.SparsePolyhedra.Types.Term]
118    (Data.List.wrap @ Abs.Domain.SparsePolyhedra.Types.Term)
119    a3_r1aA
120
121a4_r1aE :: [Abs.Domain.SparsePolyhedra.Types.Term]
122[GlobalId]
123[]
124a4_r1aE =
125  Data.List.mergesort'
126    @ Abs.Domain.SparsePolyhedra.Types.Term
127    Abs.Domain.SparsePolyhedra.lvl1
128    lvl1_r1aC
129
130lvl2_r1aG :: Abs.Domain.SparsePolyhedra.Types.Constraint
131[GlobalId]
132[]
133lvl2_r1aG =
134  case Abs.Domain.SparsePolyhedra.Constraints.$wsimplify
135         (a4_r1aE
136          `cast` (sym (Abs.Domain.SparsePolyhedra.Types.:CoTerms)
137                  :: [Abs.Domain.SparsePolyhedra.Types.Term]
138                       ~
139                     Abs.Domain.SparsePolyhedra.Types.Terms))
140         a_r1aq
141  of ww_aXn { (# ww1_aXp, ww2_aXq #) ->
142  Abs.Domain.SparsePolyhedra.Types.Constraint ww1_aXp ww2_aXq
143  }
144
145lvl3_r1aI :: [Abs.Domain.SparsePolyhedra.Types.Constraint]
146[GlobalId]
147[]
148lvl3_r1aI =
149  GHC.Base.:
150    @ Abs.Domain.SparsePolyhedra.Types.Constraint
151    lvl2_r1aG
152    (GHC.Base.[] @ Abs.Domain.SparsePolyhedra.Types.Constraint)
153
154a5_r1aK :: [Abs.Domain.SparsePolyhedra.Types.Term]
155[GlobalId]
156[]
157a5_r1aK =
158  Data.List.mergesort'
159    @ Abs.Domain.SparsePolyhedra.Types.Term
160    Abs.Domain.SparsePolyhedra.lvl1
161    lvl1_r1aC
162
163a6_r1aM :: [Abs.Domain.SparsePolyhedra.Types.Term]
164[GlobalId]
165[]
166a6_r1aM =
167  Data.List.mergesort'
168    @ Abs.Domain.SparsePolyhedra.Types.Term
169    Abs.Domain.SparsePolyhedra.lvl1
170    lvl1_r1aC
171
172lvl4_r1aO :: Abs.Domain.SparsePolyhedra.Types.Constraint
173[GlobalId]
174[]
175lvl4_r1aO =
176  case Abs.Domain.SparsePolyhedra.Constraints.$wsimplify
177         (a6_r1aM
178          `cast` (sym (Abs.Domain.SparsePolyhedra.Types.:CoTerms)
179                  :: [Abs.Domain.SparsePolyhedra.Types.Term]
180                       ~
181                     Abs.Domain.SparsePolyhedra.Types.Terms))
182         a_r1aq
183  of ww_aXn { (# ww1_aXp, ww2_aXq #) ->
184  Abs.Domain.SparsePolyhedra.Types.Constraint ww1_aXp ww2_aXq
185  }
186
187lvl5_r1aQ :: [Abs.Domain.SparsePolyhedra.Types.Constraint]
188[GlobalId]
189[]
190lvl5_r1aQ =
191  GHC.Base.:
192    @ Abs.Domain.SparsePolyhedra.Types.Constraint
193    lvl4_r1aO
194    (GHC.Base.[] @ Abs.Domain.SparsePolyhedra.Types.Constraint)
195
196Rec {
197$wfixpoint_r1aS :: Abs.Domain.SparsePolyhedra.Poly
198                   -> Abs.Domain.SparsePolyhedra.Poly
199                   -> Abs.Domain.SparsePolyhedra.Poly
200                   -> GHC.Prim.State# GHC.Prim.RealWorld
201                   -> (# GHC.Prim.State# GHC.Prim.RealWorld, Abs.Domain.SparsePolyhedra.Poly #)
202[GlobalId]
203[Arity 4
204 Str: DmdType SSL]
205$wfixpoint_r1aS =
206  \ (w_X18K :: Abs.Domain.SparsePolyhedra.Poly)
207    (w1_s18a :: Abs.Domain.SparsePolyhedra.Poly)
208    (w2_s18b :: Abs.Domain.SparsePolyhedra.Poly)
209    (eta_s18u :: GHC.Prim.State# GHC.Prim.RealWorld) ->
210    let {
211      sR_s193 [ALWAYS Just S] :: Abs.Domain.SparsePolyhedra.Poly
212      [Str: DmdType]
213      sR_s193 = Abs.Domain.SparsePolyhedra.join w_X18K w1_s18a } in
214    let {
215      $wa_s19j :: GHC.Prim.State# GHC.Prim.RealWorld
216                  -> GHC.Prim.State# GHC.Prim.RealWorld
217                  -> (# GHC.Prim.State# GHC.Prim.RealWorld, Abs.Domain.SparsePolyhedra.Poly #)
218      [Arity 2
219       Str: DmdType AL]
220      $wa_s19j =
221        \ (w3_s184 :: GHC.Prim.State# GHC.Prim.RealWorld)
222          (w4_s185 :: GHC.Prim.State# GHC.Prim.RealWorld) ->
223          (# w4_s185,
224             case sR_s193 of wild_aTE {
225               Abs.Domain.SparsePolyhedra.Bottom -> Abs.Domain.SparsePolyhedra.Bottom;
226               Abs.Domain.SparsePolyhedra.Poly n_aTH cons_aTI ->
227                 case cons_aTI
228                 of w31_aTK { Abs.Domain.SparsePolyhedra.Types.ConSys ww_aTM ww1_aTN ->
229                 case Abs.Domain.SparsePolyhedra.Constraints.$waddConstraints
230                        n_aTH ww_aTM ww1_aTN lvl3_r1aI
231                 of wild1_aTS {
232                   Data.Maybe.Nothing -> Abs.Domain.SparsePolyhedra.Bottom;
233                   Data.Maybe.Just cons'_aTV -> Abs.Domain.SparsePolyhedra.Poly n_aTH cons'_aTV
234                 }
235                 }
236             } #)
237    } in
238      case sR_s193 of wild_aTZ {
239        Abs.Domain.SparsePolyhedra.Bottom -> $wa_s19j GHC.Prim.realWorld# eta_s18u;
240        Abs.Domain.SparsePolyhedra.Poly ipv_aU2 ipv1_aU3 ->
241          let {
242            $w$j_s19c :: GHC.Prim.State# GHC.Prim.RealWorld
243                         -> GHC.Prim.State# GHC.Prim.RealWorld
244                         -> (# GHC.Prim.State# GHC.Prim.RealWorld, Abs.Domain.SparsePolyhedra.Poly #)
245            [Arity 2
246             Str: DmdType A]
247            $w$j_s19c =
248              \ (w3_s180 :: GHC.Prim.State# GHC.Prim.RealWorld)
249                (eta1_s18r :: GHC.Prim.State# GHC.Prim.RealWorld) ->
250                case ipv1_aU3
251                of w31_aTK { Abs.Domain.SparsePolyhedra.Types.ConSys ww_aTM ww1_aTN ->
252                $wfixpoint_r1aS
253                  w_X18K
254                  (case Abs.Domain.SparsePolyhedra.Constraints.$waddConstraints
255                          ipv_aU2 ww_aTM ww1_aTN lvl5_r1aQ
256                   of wild1_aTS {
257                     Data.Maybe.Nothing -> Abs.Domain.SparsePolyhedra.Bottom;
258                     Data.Maybe.Just cons'_aTV ->
259                       case Abs.Domain.SparsePolyhedra.Constraints.$wsimplify
260                              (a5_r1aK
261                               `cast` (sym (Abs.Domain.SparsePolyhedra.Types.:CoTerms)
262                                       :: [Abs.Domain.SparsePolyhedra.Types.Term]
263                                            ~
264                                          Abs.Domain.SparsePolyhedra.Types.Terms))
265                              a1_r1as
266                       of ww2_aUt { (# ww3_aUv, ww4_aUw #) ->
267                       case cons'_aTV
268                       of w6_aUy { Abs.Domain.SparsePolyhedra.Types.ConSys ww21_aUA ww31_aUB ->
269                       case Abs.Domain.SparsePolyhedra.Constraints.$wupdateVar
270                              a1_r1as u_rt5 ww3_aUv ww4_aUw ww21_aUA ww31_aUB
271                       of wild2_aUD {
272                         Data.Maybe.Nothing -> Abs.Domain.SparsePolyhedra.Bottom;
273                         Data.Maybe.Just cons'1_aUG -> Abs.Domain.SparsePolyhedra.Poly ipv_aU2 cons'1_aUG
274                       }
275                       }
276                       }
277                   })
278                  wild_aTZ
279                  eta1_s18r
280                }
281          } in
282            case w2_s18b of wild1_aU5 {
283              Abs.Domain.SparsePolyhedra.Bottom -> $w$j_s19c GHC.Prim.realWorld# eta_s18u;
284              Abs.Domain.SparsePolyhedra.Poly ipv2_aU9 ipv3_aUa ->
285                case ipv1_aU3
286                of w3_aXL { Abs.Domain.SparsePolyhedra.Types.ConSys ww_aXN ww1_aXO ->
287                case ipv3_aUa
288                of w4_aXQ { Abs.Domain.SparsePolyhedra.Types.ConSys ww2_aXS ww3_aXT ->
289                case Abs.Domain.SparsePolyhedra.Constraints.$wdefinesSubspace
290                       ipv2_aU9 ww_aXN ww1_aXO ww2_aXS ww3_aXT
291                of wild11_B1 {
292                  GHC.Base.False -> $w$j_s19c GHC.Prim.realWorld# eta_s18u;
293                  GHC.Base.True -> $wa_s19j GHC.Prim.realWorld# eta_s18u
294                }
295                }
296                }
297            }
298      }
299end Rec }
300
301lvl6_r1aU :: GHC.Num.Integer
302[GlobalId]
303[NoCafRefs]
304lvl6_r1aU = GHC.Num.S# 0
305
306lvl7_r1aW :: Abs.Domain.SparsePolyhedra.Types.Constraint
307[GlobalId]
308[NoCafRefs]
309lvl7_r1aW =
310  Abs.Domain.SparsePolyhedra.Types.Constraint
311    ((GHC.Base.[] @ Abs.Domain.SparsePolyhedra.Types.Term)
312     `cast` (sym (Abs.Domain.SparsePolyhedra.Types.:CoTerms)
313             :: [Abs.Domain.SparsePolyhedra.Types.Term]
314                  ~
315                Abs.Domain.SparsePolyhedra.Types.Terms))
316    lvl6_r1aU
317
318lvl8_r1aY :: GHC.Base.Int
319[GlobalId]
320[NoCafRefs]
321lvl8_r1aY = GHC.Base.I# 8
322
323lvl9_r1b0 :: Abs.Domain.SparsePolyhedra.Poly
324[GlobalId]
325[NoCafRefs]
326lvl9_r1b0 =
327  Abs.Domain.SparsePolyhedra.Poly lvl8_r1aY Abs.Domain.SparsePolyhedra.lvl2
328
329w_r1b2 :: Abs.Domain.SparsePolyhedra.Poly
330[GlobalId]
331[]
332w_r1b2 =
333  Abs.Domain.SparsePolyhedra.assign
334    Abs.Domain.SparsePolyhedra.lvl u_rt5 lvl7_r1aW lvl9_r1b0
335
336Rec {
337Main.a7 :: GHC.Prim.Int#
338           -> GHC.Prim.State# GHC.Prim.RealWorld
339           -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
340[GlobalId]
341[Arity 2
342 Str: DmdType LL]
343Main.a7 =
344  \ (m_a14m :: GHC.Prim.Int#) (eta_s15a :: GHC.Prim.State# GHC.Prim.RealWorld) ->
345    case GHC.Prim.<=# m_a14m 1 of wild_a14n {
346      GHC.Base.False ->
347        case $wfixpoint_r1aS
348               w_r1b2
349               Abs.Domain.SparsePolyhedra.Bottom
350               Abs.Domain.SparsePolyhedra.Bottom
351               eta_s15a
352        of wild1_a14J { (# new_s_a14L, a103_a14M #) ->
353        case a103_a14M of wild2_aTZ {
354          Abs.Domain.SparsePolyhedra.Bottom -> Main.a7 (GHC.Prim.-# m_a14m 1) new_s_a14L;
355          Abs.Domain.SparsePolyhedra.Poly ipv_aU2 ipv1_aU3 ->
356            case ipv1_aU3
357            of w1_aXL { Abs.Domain.SparsePolyhedra.Types.ConSys ww_aXN ww1_aXO ->
358            case Abs.Domain.SparsePolyhedra.Constraints.$wdefinesSubspace
359                   ipv_aU2 ww_aXN ww1_aXO ww_aXN ww1_aXO
360            of wild3_aSp {
361              GHC.Base.False ->
362                case GHC.IO.a25 GHC.Handle.stdout lvl_r1ao new_s_a14L
363                of wild4_a13z { (# new_s1_a13B, a1031_a13C #) ->
364                case GHC.IO.$wa13 GHC.Handle.stdout '\n' new_s1_a13B
365                of wild5_X15V { (# new_s2_X15Y, a1032_X160 #) ->
366                Main.a7 (GHC.Prim.-# m_a14m 1) new_s2_X15Y
367                }
368                };
369              GHC.Base.True -> Main.a7 (GHC.Prim.-# m_a14m 1) new_s_a14L
370            }
371            }
372        }
373        };
374      GHC.Base.True ->
375        case $wfixpoint_r1aS
376               w_r1b2
377               Abs.Domain.SparsePolyhedra.Bottom
378               Abs.Domain.SparsePolyhedra.Bottom
379               eta_s15a
380        of wild1_a14J { (# new_s_a14L, a103_a14M #) ->
381        case a103_a14M of wild2_aTZ {
382          Abs.Domain.SparsePolyhedra.Bottom -> (# new_s_a14L, GHC.Base.() #);
383          Abs.Domain.SparsePolyhedra.Poly ipv_aU2 ipv1_aU3 ->
384            case ipv1_aU3
385            of w1_aXL { Abs.Domain.SparsePolyhedra.Types.ConSys ww_aXN ww1_aXO ->
386            case Abs.Domain.SparsePolyhedra.Constraints.$wdefinesSubspace
387                   ipv_aU2 ww_aXN ww1_aXO ww_aXN ww1_aXO
388            of wild3_aSp {
389              GHC.Base.False ->
390                case GHC.IO.a25 GHC.Handle.stdout lvl_r1ao new_s_a14L
391                of wild4_a13z { (# new_s1_a13B, a1031_a13C #) ->
392                case GHC.IO.$wa13 GHC.Handle.stdout '\n' new_s1_a13B
393                of wild5_X15M { (# new_s2_X15P, a1032_X15R #) ->
394                (# new_s2_X15P, GHC.Base.() #)
395                }
396                };
397              GHC.Base.True -> (# new_s_a14L, GHC.Base.() #)
398            }
399            }
400        }
401        }
402    }
403end Rec }
404
405Main.a8 :: GHC.Prim.State# GHC.Prim.RealWorld
406           -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
407[GlobalId]
408[Arity 1
409 Str: DmdType L]
410Main.a8 = Main.a7 2000
411
412Main.main :: GHC.IOBase.IO ()
413[GlobalId]
414[Arity 1
415 Str: DmdType L]
416Main.main =
417  Main.a8
418  `cast` (sym ((GHC.IOBase.:CoIO) ())
419          :: GHC.Prim.State# GHC.Prim.RealWorld
420             -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
421               ~
422             GHC.IOBase.IO ())
423
424Main.a9 :: GHC.Prim.State# GHC.Prim.RealWorld
425           -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
426[GlobalId]
427[Arity 1
428 Str: DmdType L]
429Main.a9 =
430  GHC.TopHandler.a7
431    @ ()
432    (Main.a8
433     `cast` (sym ((GHC.IOBase.:CoIO) ())
434             :: GHC.Prim.State# GHC.Prim.RealWorld
435                -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
436                  ~
437                GHC.IOBase.IO ()))
438
439:Main.main :: GHC.IOBase.IO ()
440[GlobalId]
441[Arity 1
442 Str: DmdType L]
443:Main.main =
444  Main.a9
445  `cast` (sym ((GHC.IOBase.:CoIO) ())
446          :: GHC.Prim.State# GHC.Prim.RealWorld
447             -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
448               ~
449             GHC.IOBase.IO ())
450
451
452
453
454==================== Tidy Core Rules ====================
455
456