Ticket #3259: main.simpl

File main.simpl, 10.0 KB (added by blamario, 6 years ago)

Output of ghc-6.11.20090421 --make primes-test.hs -threaded -O2 -ddump-simpl &> main.simpl

Line 
1[1 of 1] Compiling Main             ( primes-test.hs, primes-test.o )
2
3==================== Tidy Core ====================
4Main.lvl :: GHC.Integer.Internals.Integer
5GblId
6[NoCafRefs
7 Str: DmdType]
8Main.lvl = GHC.Integer.Internals.S# 1
9
10lvl1_r1rV :: GHC.Integer.Internals.Integer
11GblId
12[NoCafRefs
13 Str: DmdType]
14lvl1_r1rV = GHC.Integer.Internals.S# 0
15
16lvl2_r1rX :: GHC.Integer.Internals.Integer
17GblId
18[NoCafRefs
19 Str: DmdType]
20lvl2_r1rX = GHC.Integer.Internals.S# 2
21
22Rec {
23Main.factors1 :: GHC.Integer.Internals.Integer
24                 -> [GHC.Integer.Internals.Integer]
25GblId
26[Arity 1
27 Str: DmdType S]
28Main.factors1 =
29  \ (n_alz :: GHC.Integer.Internals.Integer) ->
30    let {
31      lim_s1rf [ALWAYS Just S] :: GHC.Integer.Internals.Integer
32      LclId
33      [Str: DmdType]
34      lim_s1rf = GHC.Integer.minusInteger n_alz Main.lvl } in
35    letrec {
36      go_s1rh :: GHC.Integer.Internals.Integer
37                 -> [GHC.Integer.Internals.Integer]
38      LclId
39      [Arity 1
40       Str: DmdType S]
41      go_s1rh =
42        \ (x_a1qw :: GHC.Integer.Internals.Integer) ->
43          case GHC.Integer.gtInteger x_a1qw lim_s1rf of _ {
44            GHC.Bool.False ->
45              case GHC.Real.$wdivMod n_alz x_a1qw of _ { (# _, ww2_aTr #) ->
46              case ww2_aTr of _ {
47                GHC.Integer.Internals.S# i_dSX ->
48                  case i_dSX of _ {
49                    __DEFAULT -> go_s1rh (GHC.Integer.plusInteger x_a1qw Main.lvl);
50                    0 ->
51                      GHC.Types.:
52                        @ GHC.Integer.Internals.Integer
53                        x_a1qw
54                        (go_s1rh (GHC.Integer.plusInteger x_a1qw Main.lvl))
55                  };
56                GHC.Integer.Internals.J# s_dT9 d_dTa ->
57                  case GHC.Prim.cmpIntegerInt# s_dT9 d_dTa 0 of _ {
58                    __DEFAULT -> go_s1rh (GHC.Integer.plusInteger x_a1qw Main.lvl);
59                    0 ->
60                      GHC.Types.:
61                        @ GHC.Integer.Internals.Integer
62                        x_a1qw
63                        (go_s1rh (GHC.Integer.plusInteger x_a1qw Main.lvl))
64                  }
65              }
66              };
67            GHC.Bool.True -> GHC.Types.[] @ GHC.Integer.Internals.Integer
68          }; } in
69    case go_s1rh lvl2_r1rX of _ {
70      [] ->
71        GHC.Types.:
72          @ GHC.Integer.Internals.Integer
73          n_alz
74          (GHC.Types.[] @ GHC.Integer.Internals.Integer);
75      : a1_aLo _ ->
76        GHC.Types.:
77          @ GHC.Integer.Internals.Integer
78          a1_aLo
79          (Main.factors1 (GHC.Real.$s$dmdiv n_alz a1_aLo))
80    }
81end Rec }
82
83Main.factors [NEVER Nothing] :: forall a_am5.
84                                (GHC.Real.Integral a_am5) =>
85                                a_am5 -> [a_am5]
86GblId
87[Arity 1
88 NoCafRefs
89 Str: DmdType L]
90Main.factors =
91  \ (@ a_am5) ($dIntegral_arK :: GHC.Real.Integral a_am5) ->
92    let {
93      lit_s1rn [ALWAYS Just L] :: a_am5
94      LclId
95      [Str: DmdType]
96      lit_s1rn =
97        case $dIntegral_arK
98        of _ { GHC.Real.D:Integral tpl1_B2 _ _ _ _ _ _ _ _ ->
99        case tpl1_B2 of _ { GHC.Real.D:Real tpl11_XW _ _ ->
100        case tpl11_XW of _ { GHC.Num.D:Num _ _ _ _ _ _ _ _ tpl23_X1j ->
101        tpl23_X1j Main.lvl
102        }
103        }
104        } } in
105    let {
106      lit1_s1rl [ALWAYS Just L] :: a_am5
107      LclId
108      [Str: DmdType]
109      lit1_s1rl =
110        case $dIntegral_arK
111        of _ { GHC.Real.D:Integral tpl1_B2 _ _ _ _ _ _ _ _ ->
112        case tpl1_B2 of _ { GHC.Real.D:Real tpl11_XW _ _ ->
113        case tpl11_XW of _ { GHC.Num.D:Num _ _ _ _ _ _ _ _ tpl23_X1j ->
114        tpl23_X1j lvl2_r1rX
115        }
116        }
117        } } in
118    let {
119      lit2_s1rj [ALWAYS Just L] :: a_am5
120      LclId
121      [Str: DmdType]
122      lit2_s1rj =
123        case $dIntegral_arK
124        of _ { GHC.Real.D:Integral tpl1_B2 _ _ _ _ _ _ _ _ ->
125        case tpl1_B2 of _ { GHC.Real.D:Real tpl11_XW _ _ ->
126        case tpl11_XW of _ { GHC.Num.D:Num _ _ _ _ _ _ _ _ tpl23_X1j ->
127        tpl23_X1j lvl1_r1rV
128        }
129        }
130        } } in
131    \ (n_alz :: a_am5) ->
132      case $dIntegral_arK
133      of _
134      { GHC.Real.D:Integral tpl1_B2 tpl2_B3 _ _ tpl5_B6 tpl6_B7 _ _ _ ->
135      case tpl2_B3 of _ { GHC.Enum.D:Enum _ _ _ _ _ _ tpl17_X1q _ ->
136      case GHC.List.filter
137             @ a_am5
138             (\ (k_alG :: a_am5) ->
139                case tpl1_B2 of _ { GHC.Real.D:Real _ tpl21_X1a _ ->
140                case tpl21_X1a of _ { GHC.Classes.D:Ord tpl24_X3H _ _ _ _ _ _ _ ->
141                case tpl24_X3H of _ { GHC.Classes.D:Eq tpl33_X1u _ ->
142                tpl33_X1u (tpl6_B7 n_alz k_alG) lit2_s1rj
143                }
144                }
145                })
146             (tpl17_X1q
147                lit1_s1rl
148                (case tpl1_B2 of _ { GHC.Real.D:Real tpl20_XW _ _ ->
149                 case tpl20_XW of _ { GHC.Num.D:Num _ _ _ _ tpl28_X1M _ _ _ _ ->
150                 tpl28_X1M n_alz lit_s1rn
151                 }
152                 }))
153      of _ {
154        [] -> GHC.Types.: @ a_am5 n_alz (GHC.Types.[] @ a_am5);
155        : a1_aLo _ ->
156          GHC.Types.:
157            @ a_am5
158            a1_aLo
159            (letrec {
160               factors2_s1rp :: a_am5 -> [a_am5]
161               LclId
162               [Arity 1
163                Str: DmdType L]
164               factors2_s1rp =
165                 \ (n1_Xmx :: a_am5) ->
166                   case GHC.List.filter
167                          @ a_am5
168                          (\ (k_alG :: a_am5) ->
169                             case tpl1_B2 of _ { GHC.Real.D:Real _ tpl21_X1a _ ->
170                             case tpl21_X1a of _ { GHC.Classes.D:Ord tpl24_X3H _ _ _ _ _ _ _ ->
171                             case tpl24_X3H of _ { GHC.Classes.D:Eq tpl33_X1u _ ->
172                             tpl33_X1u (tpl6_B7 n1_Xmx k_alG) lit2_s1rj
173                             }
174                             }
175                             })
176                          (tpl17_X1q
177                             lit1_s1rl
178                             (case tpl1_B2 of _ { GHC.Real.D:Real tpl20_XW _ _ ->
179                              case tpl20_XW of _ { GHC.Num.D:Num _ _ _ _ tpl28_X1M _ _ _ _ ->
180                              tpl28_X1M n1_Xmx lit_s1rn
181                              }
182                              }))
183                   of _ {
184                     [] -> GHC.Types.: @ a_am5 n1_Xmx (GHC.Types.[] @ a_am5);
185                     : a11_XMC _ ->
186                       GHC.Types.:
187                         @ a_am5 a11_XMC (factors2_s1rp (tpl5_B6 n1_Xmx a11_XMC))
188                   }; } in
189             factors2_s1rp (tpl5_B6 n_alz a1_aLo))
190      }
191      }
192      }
193
194Main.parallelize :: forall a_asn a1_ass.
195                    a_asn -> a1_ass -> (a_asn, a1_ass)
196GblId
197[Arity 2
198 NoCafRefs
199 Str: DmdType LL]
200Main.parallelize =
201  \ (@ a_asn) (@ a1_ass) (a_ahN :: a_asn) (b_ahP :: a1_ass) ->
202    case GHC.Prim.par# @ a_asn a_ahN of _ { __DEFAULT ->
203    case b_ahP of x1_aUS { __DEFAULT -> (a_ahN, x1_aUS) }
204    }
205
206Main.factors2 :: GHC.Integer.Internals.Integer
207                 -> [GHC.Integer.Internals.Integer]
208GblId
209[Str: DmdType]
210Main.factors2 =
211  Main.factors @ GHC.Integer.Internals.Integer GHC.Real.$f8
212
213Main.test :: GHC.Integer.Internals.Integer
214             -> GHC.Integer.Internals.Integer
215             -> GHC.Integer.Internals.Integer
216GblId
217[Arity 2
218 Str: DmdType LL]
219Main.test =
220  \ (n1_ahR :: GHC.Integer.Internals.Integer)
221    (n2_ahT :: GHC.Integer.Internals.Integer) ->
222    let {
223      a_s1rs [ALWAYS Just L] :: GHC.Integer.Internals.Integer
224      LclId
225      [Str: DmdType]
226      a_s1rs =
227        Data.List.prod1
228          (Main.factors2
229             (Data.List.prod1
230                (GHC.Num.up_list Main.lvl Main.lvl n1_ahR) Data.List.lvl1))
231          Data.List.lvl1 } in
232    case GHC.Prim.par# @ GHC.Integer.Internals.Integer a_s1rs
233    of _ { __DEFAULT ->
234    case Data.List.prod1
235           (Main.factors2
236              (Data.List.prod1
237                 (GHC.Num.up_list Main.lvl Main.lvl n2_ahT) Data.List.lvl1))
238           Data.List.lvl1
239    of x1_aUS { __DEFAULT ->
240    case GHC.Real.$wdivMod x1_aUS a_s1rs of _ { (# ww1_aUo, _ #) ->
241    ww1_aUo
242    }
243    }
244    }
245
246Main.lvl3 :: GHC.Integer.Internals.Integer
247GblId
248[NoCafRefs]
249Main.lvl3 = GHC.Integer.Internals.S# 4000
250
251Main.lvl4 :: GHC.Integer.Internals.Integer
252GblId
253[NoCafRefs]
254Main.lvl4 = GHC.Integer.Internals.S# 4001
255
256Main.lvl5 :: GHC.Integer.Internals.Integer
257GblId
258[]
259Main.lvl5 = Main.test Main.lvl3 Main.lvl4
260
261Main.lvl6 :: GHC.Base.String
262GblId
263[]
264Main.lvl6 =
265  GHC.Num.$wshowsPrec 0 Main.lvl5 (GHC.Types.[] @ GHC.Types.Char)
266
267Main.a :: GHC.Prim.State# GHC.Prim.RealWorld
268          -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
269GblId
270[Arity 1
271 Str: DmdType L]
272Main.a =
273  \ (eta_aUW :: GHC.Prim.State# GHC.Prim.RealWorld) ->
274    case GHC.IO.a23 GHC.Handle.stdout Main.lvl6 eta_aUW
275    of _ { (# new_s_a11z, _ #) ->
276    GHC.IO.$wa13 GHC.Handle.stdout '\n' new_s_a11z
277    }
278
279Main.main :: GHC.IOBase.IO ()
280GblId
281[Arity 1
282 Str: DmdType L]
283Main.main =
284  Main.a
285  `cast` (sym (GHC.IOBase.NTCo:IO ())
286          :: GHC.Prim.State# GHC.Prim.RealWorld
287             -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
288               ~
289             GHC.IOBase.IO ())
290
291Main.a1 :: GHC.Prim.State# GHC.Prim.RealWorld
292           -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
293GblId
294[Arity 1
295 Str: DmdType L]
296Main.a1 =
297  GHC.TopHandler.a9
298    @ ()
299    (Main.a
300     `cast` (sym (GHC.IOBase.NTCo:IO ())
301             :: GHC.Prim.State# GHC.Prim.RealWorld
302                -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
303                  ~
304                GHC.IOBase.IO ()))
305
306:Main.main :: GHC.IOBase.IO ()
307GblId
308[Arity 1
309 Str: DmdType L]
310:Main.main =
311  Main.a1
312  `cast` (sym (GHC.IOBase.NTCo:IO ())
313          :: GHC.Prim.State# GHC.Prim.RealWorld
314             -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
315               ~
316             GHC.IOBase.IO ())
317
318
319
320
321==================== Tidy Core Rules ====================
322"SPEC Main.factors [GHC.Integer.Internals.Integer]" NEVER
323    forall {$dIntegral_sQP :: GHC.Real.Integral
324                                GHC.Integer.Internals.Integer}
325      Main.factors @ GHC.Integer.Internals.Integer $dIntegral_sQP
326      = Main.factors1
327
328
329Linking primes-test ...