Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,388
    • Issues 4,388
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 374
    • Merge Requests 374
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #3458

Closed
Open
Opened Aug 24, 2009 by guest@trac-guest

Allocation where none should happen

These two functions, according to profiling, do a lot of allocation:

gen d r n m s p
    | r == ll   = do
        pokeElemOff p n 0x0a
        gen d 0     (n+1) (m+1) s p
    | n == m    = do
        pokeElemOff p n 0x0a
        return (s, if r == 0 then m else m+1)
    | otherwise = do
        let t = next s
        pokeElemOff p n (pick d t)
        gen d (r+1) (n+1) m     t p

------------------------------------------------------------------------

pick (c, p) r = loop 0 where
    loop i = if r < unsafeAt p i
              then fromIntegral $ unsafeAt c i :: Word8
              else loop (i+1)

Core for pick:

[GlobalId]
[Arity 3
 NoCafRefs
 Str: DmdType LLL]
$w$spick_r3kC =
  \ (ww_s33o :: GHC.Prim.ByteArray#)
    (ww1_s33v :: GHC.Prim.ByteArray#)
    (ww2_s33A :: GHC.Prim.Word#) ->
    letrec {
      $wloop_s38I :: GHC.Prim.Int# -> GHC.Prim.Word#
      [Arity 1
       Str: DmdType L]
      $wloop_s38I =
        \ (ww3_s339 :: GHC.Prim.Int#) ->
          __scc {pick main:Main !}
          case GHC.Prim.ltWord#
                 ww2_s33A (GHC.Prim.indexWord32Array# ww1_s33v ww3_s339)
          of wild_X3O {
            GHC.Bool.False -> $wloop_s38I (GHC.Prim.+# ww3_s339 1);
            GHC.Bool.True ->
              GHC.Prim.narrow8Word# (GHC.Prim.indexWord32Array# ww_s33o ww3_s339)
          }; } in
    case __scc {pick main:Main}
         case $wloop_s38I 0 of ww3_s33d { __DEFAULT ->
         GHC.Word.W8# ww3_s33d
         }
    of ww3_s33D { GHC.Word.W8# ww4_s33E ->
    ww4_s33E
    }

Core for gen (long):

Rec {
$s$wa_r3mi :: GHC.Prim.State# GHC.Prim.RealWorld
              -> GHC.Prim.Addr#
              -> GHC.Prim.Word#
              -> GHC.Prim.Int#
              -> GHC.Prim.Int#
              -> GHC.Prim.Int#
              -> GHC.Prim.ByteArray#
              -> GHC.Types.Int
              -> GHC.Types.Int
              -> GHC.Types.Int
              -> GHC.Prim.ByteArray#
              -> GHC.Types.Int
              -> GHC.Types.Int
              -> GHC.Types.Int
              -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                    (GHC.Word.Word32, GHC.Types.Int) #)
[GlobalId]
[Arity 14
 NoCafRefs]
$s$wa_r3mi =
  \ (sc_s3es :: GHC.Prim.State# GHC.Prim.RealWorld)
    (sc1_s3et :: GHC.Prim.Addr#)
    (sc2_s3eu :: GHC.Prim.Word#)
    (sc3_s3ev :: GHC.Prim.Int#)
    (sc4_s3ew :: GHC.Prim.Int#)
    (sc5_s3ex :: GHC.Prim.Int#)
    (sc6_s3ey :: GHC.Prim.ByteArray#)
    (sc7_s3ez :: GHC.Types.Int)
    (sc8_s3eA :: GHC.Types.Int)
    (sc9_s3eB :: GHC.Types.Int)
    (sc10_s3eC :: GHC.Prim.ByteArray#)
    (sc11_s3eD :: GHC.Types.Int)
    (sc12_s3eE :: GHC.Types.Int)
    (sc13_s3eF :: GHC.Types.Int) ->
    let {
      m_s39b :: GHC.Types.Int
      []
      m_s39b = GHC.Types.I# sc3_s3ev } in
    ((__scc {gen main:Main !}
      case sc5_s3ex of wild_B1 {
        __DEFAULT ->
          case GHC.Prim.==# sc4_s3ew sc3_s3ev of wild1_X3F {
            GHC.Bool.False ->
              (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                 let {
                   ww_s33e :: GHC.Prim.Word#
                   []
                   ww_s33e =
                     GHC.Prim.remWord#
                       (GHC.Prim.narrow32Word#
                          (GHC.Prim.plusWord#
                             (GHC.Prim.narrow32Word# (GHC.Prim.timesWord# __word 3877 sc2_s3eu))
                             __word 29573))
                       __word 139968 } in
                 case $w$spick_r3k8 sc10_s3eC sc6_s3ey ww_s33e
                 of ww1_s33i { __DEFAULT ->
                 case GHC.Prim.writeWord8OffAddr#
                        @ GHC.Prim.RealWorld sc1_s3et sc4_s3ew ww1_s33i eta_a2vm
                 of s21_a2wV { __DEFAULT ->
                 $s$wa_r3mi
                   s21_a2wV
                   sc1_s3et
                   ww_s33e
                   sc3_s3ev
                   (GHC.Prim.+# sc4_s3ew 1)
                   (GHC.Prim.+# wild_B1 1)
                   sc6_s3ey
                   sc7_s3ez
                   sc8_s3eA
                   sc9_s3eB
                   sc10_s3eC
                   sc11_s3eD
                   sc12_s3eE
                   sc13_s3eF
                 }
                 })
              `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                      :: GHC.Prim.State# GHC.Prim.RealWorld
                         -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                               (GHC.Word.Word32, GHC.Types.Int) #)
                           ~
                         GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int));
            GHC.Bool.True ->
              (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                 case GHC.Prim.writeWord8OffAddr#
                        @ GHC.Prim.RealWorld sc1_s3et sc4_s3ew __word 10 eta_a2vm
                 of s21_a2wV { __DEFAULT ->
                 (# s21_a2wV,
                    (GHC.Word.W32# sc2_s3eu,
                     case wild_B1 of wild2_X4o {
                       __DEFAULT -> GHC.Types.I# (GHC.Prim.+# sc3_s3ev 1); 0 -> m_s39b
                     }) #)
                 })
              `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                      :: GHC.Prim.State# GHC.Prim.RealWorld
                         -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                               (GHC.Word.Word32, GHC.Types.Int) #)
                           ~
                         GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
          };
        60 ->
          (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
             case GHC.Prim.writeWord8OffAddr#
                    @ GHC.Prim.RealWorld sc1_s3et sc4_s3ew __word 10 eta_a2vm
             of s21_a2wV { __DEFAULT ->
             $s$wa1_r3mk
               s21_a2wV
               sc1_s3et
               sc2_s3eu
               (GHC.Prim.+# sc3_s3ev 1)
               (GHC.Prim.+# sc4_s3ew 1)
               sc6_s3ey
               sc7_s3ez
               sc8_s3eA
               sc9_s3eB
               sc10_s3eC
               sc11_s3eD
               sc12_s3eE
               sc13_s3eF
             })
          `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                  :: GHC.Prim.State# GHC.Prim.RealWorld
                     -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                           (GHC.Word.Word32, GHC.Types.Int) #)
                       ~
                     GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
      })
     `cast` ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int)
             :: GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int)
                  ~
                GHC.Prim.State# GHC.Prim.RealWorld
                -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                      (GHC.Word.Word32, GHC.Types.Int) #)))
      sc_s3es
$s$wa1_r3mk :: GHC.Prim.State# GHC.Prim.RealWorld
               -> GHC.Prim.Addr#
               -> GHC.Prim.Word#
               -> GHC.Prim.Int#
               -> GHC.Prim.Int#
               -> GHC.Prim.ByteArray#
               -> GHC.Types.Int
               -> GHC.Types.Int
               -> GHC.Types.Int
               -> GHC.Prim.ByteArray#
               -> GHC.Types.Int
               -> GHC.Types.Int
               -> GHC.Types.Int
               -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                     (GHC.Word.Word32, GHC.Types.Int) #)
[GlobalId]
[Arity 13
 NoCafRefs]
$s$wa1_r3mk =
  \ (sc_s3fH :: GHC.Prim.State# GHC.Prim.RealWorld)
    (sc1_s3fI :: GHC.Prim.Addr#)
    (sc2_s3fJ :: GHC.Prim.Word#)
    (sc3_s3fK :: GHC.Prim.Int#)
    (sc4_s3fL :: GHC.Prim.Int#)
    (sc5_s3fM :: GHC.Prim.ByteArray#)
    (sc6_s3fN :: GHC.Types.Int)
    (sc7_s3fO :: GHC.Types.Int)
    (sc8_s3fP :: GHC.Types.Int)
    (sc9_s3fQ :: GHC.Prim.ByteArray#)
    (sc10_s3fR :: GHC.Types.Int)
    (sc11_s3fS :: GHC.Types.Int)
    (sc12_s3fT :: GHC.Types.Int) ->
    let {
      m_s39b :: GHC.Types.Int
      []
      m_s39b = GHC.Types.I# sc3_s3fK } in
    ((__scc {gen main:Main !}
      case GHC.Prim.==# sc4_s3fL sc3_s3fK of wild_X3F {
        GHC.Bool.False ->
          (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
             let {
               ww_s33e :: GHC.Prim.Word#
               []
               ww_s33e =
                 GHC.Prim.remWord#
                   (GHC.Prim.narrow32Word#
                      (GHC.Prim.plusWord#
                         (GHC.Prim.narrow32Word# (GHC.Prim.timesWord# __word 3877 sc2_s3fJ))
                         __word 29573))
                   __word 139968 } in
             case $w$spick_r3k8 sc9_s3fQ sc5_s3fM ww_s33e
             of ww1_s33i { __DEFAULT ->
             case GHC.Prim.writeWord8OffAddr#
                    @ GHC.Prim.RealWorld sc1_s3fI sc4_s3fL ww1_s33i eta_a2vm
             of s21_a2wV { __DEFAULT ->
             $s$wa_r3mi
               s21_a2wV
               sc1_s3fI
               ww_s33e
               sc3_s3fK
               (GHC.Prim.+# sc4_s3fL 1)
               1
               sc5_s3fM
               sc6_s3fN
               sc7_s3fO
               sc8_s3fP
               sc9_s3fQ
               sc10_s3fR
               sc11_s3fS
               sc12_s3fT
             }
             })
          `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                  :: GHC.Prim.State# GHC.Prim.RealWorld
                     -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                           (GHC.Word.Word32, GHC.Types.Int) #)
                       ~
                     GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int));
        GHC.Bool.True ->
          (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
             case GHC.Prim.writeWord8OffAddr#
                    @ GHC.Prim.RealWorld sc1_s3fI sc4_s3fL __word 10 eta_a2vm
             of s21_a2wV { __DEFAULT ->
             (# s21_a2wV, (GHC.Word.W32# sc2_s3fJ, m_s39b) #)
             })
          `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                  :: GHC.Prim.State# GHC.Prim.RealWorld
                     -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                           (GHC.Word.Word32, GHC.Types.Int) #)
                       ~
                     GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
      })
     `cast` ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int)
             :: GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int)
                  ~
                GHC.Prim.State# GHC.Prim.RealWorld
                -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                      (GHC.Word.Word32, GHC.Types.Int) #)))
      sc_s3fH
end Rec }

$s$wa2_r3mm :: GHC.Prim.State# GHC.Prim.RealWorld
               -> GHC.Prim.Addr#
               -> GHC.Word.Word32
               -> GHC.Prim.Int#
               -> GHC.Prim.Int#
               -> (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
                   Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32)
               -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                     (GHC.Word.Word32, GHC.Types.Int) #)
[GlobalId]
[Arity 6
 NoCafRefs]
$s$wa2_r3mm =
  \ (sc_s3eH :: GHC.Prim.State# GHC.Prim.RealWorld)
    (sc1_s3eI :: GHC.Prim.Addr#)
    (sc2_s3eJ :: GHC.Word.Word32)
    (sc3_s3eK :: GHC.Prim.Int#)
    (sc4_s3eL :: GHC.Prim.Int#)
    (sc5_s3eM :: (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
                  Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32)) ->
    let {
      m_s39b :: GHC.Types.Int
      []
      m_s39b = GHC.Types.I# sc3_s3eK } in
    ((__scc {gen main:Main !}
      case GHC.Prim.==# sc4_s3eL sc3_s3eK of wild_X3F {
        GHC.Bool.False ->
          (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
             case sc5_s3eM of w_X34x { (ww_s32X, ww1_s334) ->
             case ww_s32X
             of ww2_X34F
             { Data.Array.Base.UArray ww3_s32Z ww4_s330 ww5_s331 ww6_s332 ->
             case ww1_s334
             of ww7_X34X
             { Data.Array.Base.UArray ww8_s336 ww9_s337 ww10_s338 ww11_s339 ->
             case __scc {next main:Main}
                  case sc2_s3eJ of wild1_a2Bw { GHC.Word.W32# y#_a2By ->
                  GHC.Word.W32#
                    (GHC.Prim.remWord#
                       (GHC.Prim.narrow32Word#
                          (GHC.Prim.plusWord#
                             (GHC.Prim.narrow32Word# (GHC.Prim.timesWord# __word 3877 y#_a2By))
                             __word 29573))
                       __word 139968)
                  }
             of w1_X35g { GHC.Word.W32# ww12_s33e ->
             case $w$spick_r3k8 ww6_s332 ww11_s339 ww12_s33e
             of ww13_s33i { __DEFAULT ->
             case GHC.Prim.writeWord8OffAddr#
                    @ GHC.Prim.RealWorld sc1_s3eI sc4_s3eL ww13_s33i eta_a2vm
             of s21_a2wV { __DEFAULT ->
             $s$wa_r3mi
               s21_a2wV
               sc1_s3eI
               ww12_s33e
               sc3_s3eK
               (GHC.Prim.+# sc4_s3eL 1)
               1
               ww11_s339
               ww10_s338
               ww9_s337
               ww8_s336
               ww6_s332
               ww5_s331
               ww4_s330
               ww3_s32Z
             }
             }
             }
             }
             }
             })
          `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                  :: GHC.Prim.State# GHC.Prim.RealWorld
                     -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                           (GHC.Word.Word32, GHC.Types.Int) #)
                       ~
                     GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int));
        GHC.Bool.True ->
          (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
             case GHC.Prim.writeWord8OffAddr#
                    @ GHC.Prim.RealWorld sc1_s3eI sc4_s3eL __word 10 eta_a2vm
             of s21_a2wV { __DEFAULT ->
             (# s21_a2wV, (sc2_s3eJ, m_s39b) #)
             })
          `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                  :: GHC.Prim.State# GHC.Prim.RealWorld
                     -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                           (GHC.Word.Word32, GHC.Types.Int) #)
                       ~
                     GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
      })
     `cast` ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int)
             :: GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int)
                  ~
                GHC.Prim.State# GHC.Prim.RealWorld
                -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                      (GHC.Word.Word32, GHC.Types.Int) #)))
      sc_s3eH

$wa1_r3mo :: (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
              Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32)
             -> GHC.Prim.Int#
             -> GHC.Prim.Int#
             -> GHC.Prim.Int#
             -> GHC.Word.Word32
             -> GHC.Prim.Addr#
             -> GHC.Prim.State# GHC.Prim.RealWorld
             -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                   (GHC.Word.Word32, GHC.Types.Int) #)
[GlobalId]
[Arity 7
 NoCafRefs
 Str: DmdType LLLLLLL]
$wa1_r3mo =
  \ (w_s33r :: (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
                Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32))
    (ww_s33u :: GHC.Prim.Int#)
    (ww1_s33y :: GHC.Prim.Int#)
    (ww2_s33C :: GHC.Prim.Int#)
    (w1_s33E :: GHC.Word.Word32)
    (ww3_s33H :: GHC.Prim.Addr#)
    (w2_s33J :: GHC.Prim.State# GHC.Prim.RealWorld) ->
    let {
      m_s39b :: GHC.Types.Int
      []
      m_s39b = GHC.Types.I# ww2_s33C } in
    ((__scc {gen main:Main !}
      case ww_s33u of wild_B1 {
        __DEFAULT ->
          case GHC.Prim.==# ww1_s33y ww2_s33C of wild1_X3F {
            GHC.Bool.False ->
              (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                 case w_s33r of w3_X34x { (ww4_s32X, ww5_s334) ->
                 case ww4_s32X
                 of ww6_X34F
                 { Data.Array.Base.UArray ww7_s32Z ww8_s330 ww9_s331 ww10_s332 ->
                 case ww5_s334
                 of ww11_X34X
                 { Data.Array.Base.UArray ww12_s336 ww13_s337 ww14_s338 ww15_s339 ->
                 case __scc {next main:Main}
                      case w1_s33E of wild11_a2Bw { GHC.Word.W32# y#_a2By ->
                      GHC.Word.W32#
                        (GHC.Prim.remWord#
                           (GHC.Prim.narrow32Word#
                              (GHC.Prim.plusWord#
                                 (GHC.Prim.narrow32Word# (GHC.Prim.timesWord# __word 3877 y#_a2By))
                                 __word 29573))
                           __word 139968)
                      }
                 of w4_X35g { GHC.Word.W32# ww16_s33e ->
                 case $w$spick_r3k8 ww10_s332 ww15_s339 ww16_s33e
                 of ww17_s33i { __DEFAULT ->
                 case GHC.Prim.writeWord8OffAddr#
                        @ GHC.Prim.RealWorld ww3_s33H ww1_s33y ww17_s33i eta_a2vm
                 of s21_a2wV { __DEFAULT ->
                 $s$wa_r3mi
                   s21_a2wV
                   ww3_s33H
                   ww16_s33e
                   ww2_s33C
                   (GHC.Prim.+# ww1_s33y 1)
                   (GHC.Prim.+# wild_B1 1)
                   ww15_s339
                   ww14_s338
                   ww13_s337
                   ww12_s336
                   ww10_s332
                   ww9_s331
                   ww8_s330
                   ww7_s32Z
                 }
                 }
                 }
                 }
                 }
                 })
              `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                      :: GHC.Prim.State# GHC.Prim.RealWorld
                         -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                               (GHC.Word.Word32, GHC.Types.Int) #)
                           ~
                         GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int));
            GHC.Bool.True ->
              (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                 case GHC.Prim.writeWord8OffAddr#
                        @ GHC.Prim.RealWorld ww3_s33H ww1_s33y __word 10 eta_a2vm
                 of s21_a2wV { __DEFAULT ->
                 (# s21_a2wV,
                    (w1_s33E,
                     case wild_B1 of wild2_X4o {
                       __DEFAULT -> GHC.Types.I# (GHC.Prim.+# ww2_s33C 1); 0 -> m_s39b
                     }) #)
                 })
              `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                      :: GHC.Prim.State# GHC.Prim.RealWorld
                         -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                               (GHC.Word.Word32, GHC.Types.Int) #)
                           ~
                         GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
          };
        60 ->
          (\ (eta_a2vm :: GHC.Prim.State# GHC.Prim.RealWorld) ->
             case GHC.Prim.writeWord8OffAddr#
                    @ GHC.Prim.RealWorld ww3_s33H ww1_s33y __word 10 eta_a2vm
             of s21_a2wV { __DEFAULT ->
             $s$wa2_r3mm
               s21_a2wV
               ww3_s33H
               w1_s33E
               (GHC.Prim.+# ww2_s33C 1)
               (GHC.Prim.+# ww1_s33y 1)
               w_s33r
             })
          `cast` (sym ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int))
                  :: GHC.Prim.State# GHC.Prim.RealWorld
                     -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                           (GHC.Word.Word32, GHC.Types.Int) #)
                       ~
                     GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int))
      })
     `cast` ((GHC.IOBase.:CoIO) (GHC.Word.Word32, GHC.Types.Int)
             :: GHC.IOBase.IO (GHC.Word.Word32, GHC.Types.Int)
                  ~
                GHC.Prim.State# GHC.Prim.RealWorld
                -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                      (GHC.Word.Word32, GHC.Types.Int) #)))
      w2_s33J

a2_r3mq :: (Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32,
            Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32)
           -> GHC.Types.Int
           -> GHC.Types.Int
           -> GHC.Types.Int
           -> GHC.Word.Word32
           -> GHC.Ptr.Ptr GHC.Word.Word8
           -> GHC.Prim.State# GHC.Prim.RealWorld
           -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                 (GHC.Word.Word32, GHC.Types.Int) #)
[GlobalId]
[Arity 7
 NoCafRefs
 Str: DmdType LU(L)U(L)U(L)LU(L)L]
a2_r3mq =
  __inline_me (\ (w_s33r :: (Data.Array.Base.UArray
                               GHC.Types.Int GHC.Word.Word32,
                             Data.Array.Base.UArray GHC.Types.Int GHC.Word.Word32))
                 (w1_s33s :: GHC.Types.Int)
                 (w2_s33w :: GHC.Types.Int)
                 (w3_s33A :: GHC.Types.Int)
                 (w4_s33E :: GHC.Word.Word32)
                 (w5_s33F :: GHC.Ptr.Ptr GHC.Word.Word8)
                 (w6_s33J :: GHC.Prim.State# GHC.Prim.RealWorld) ->
                 case w1_s33s of w7_X35h { GHC.Types.I# ww_s33u ->
                 case w2_s33w of w8_X35q { GHC.Types.I# ww1_s33y ->
                 case w3_s33A of w9_X35z { GHC.Types.I# ww2_s33C ->
                 case w5_s33F of w10_X35J { GHC.Ptr.Ptr ww3_s33H ->
                 $wa1_r3mo w_s33r ww_s33u ww1_s33y ww2_s33C w4_s33E ww3_s33H w6_s33J
                 }
                 }
                 }
                 })
Edited Mar 09, 2019 by Simon Peyton Jones
Assignee
Assign to
8.0.1
Milestone
8.0.1 (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: ghc/ghc#3458