[GHC] #10187: Panic: RegAlloc.Liveness.computeLivenss; SCCs aren't in reverse dependent order; bad blockId c8xHd

GHC ghc-devs at haskell.org
Tue Mar 24 01:08:30 UTC 2015


#10187: Panic: RegAlloc.Liveness.computeLivenss; SCCs aren't in reverse dependent
order; bad blockId c8xHd
-----------------------------------+---------------------------------------
              Reporter:  mietek    |             Owner:
                  Type:  bug       |            Status:  new
              Priority:  normal    |         Milestone:
             Component:  Compiler  |           Version:  7.8.4
              Keywords:            |  Operating System:  Linux
          Architecture:  x86       |   Type of failure:  Compile-time crash
             Test Case:            |        Blocked By:
              Blocking:            |   Related Tickets:  #9541, #9031
Differential Revisions:            |
-----------------------------------+---------------------------------------
 I’ve found another instance of the elusive
 `RegAlloc.Liveness.computeLivenss` bug, by attempting to bootstrap
 ''cabal-install'' 1.20.0.6 with GHC 7.8.4 on 32-bit CentOS 6, released on
 27/05/2013 (available on
 [https://aws.amazon.com/marketplace/pp/B00A6KZBC6/ Amazon EC2]).

 Unfortunately, I’m unable to reproduce the bug on a subsequent attempt.
 Cosmic rays?

 {{{
 Configuring text-1.1.0.1...
 Building text-1.1.0.1...
 Preprocessing library text-1.1.0.1...
 [ 1 of 43] Compiling Data.Text.Internal.Read ( Data/Text/Internal/Read.hs,
 dist/build/Data/Text/Internal/Read.o )
 [ 2 of 43] Compiling Data.Text.Internal.Encoding.Utf32 (
 Data/Text/Internal/Encoding/Utf32.hs,
 dist/build/Data/Text/Internal/Encoding/Utf32.o )
 [ 3 of 43] Compiling Data.Text.Internal.Fusion.Size (
 Data/Text/Internal/Fusion/Size.hs,
 dist/build/Data/Text/Internal/Fusion/Size.o )
 [ 4 of 43] Compiling Data.Text.Internal.Builder.RealFloat.Functions (
 Data/Text/Internal/Builder/RealFloat/Functions.hs,
 dist/build/Data/Text/Internal/Builder/RealFloat/Functions.o )
 [ 5 of 43] Compiling Data.Text.Internal.Builder.Int.Digits (
 Data/Text/Internal/Builder/Int/Digits.hs,
 dist/build/Data/Text/Internal/Builder/Int/Digits.o )
 [ 6 of 43] Compiling Data.Text.Internal.Fusion.Types (
 Data/Text/Internal/Fusion/Types.hs,
 dist/build/Data/Text/Internal/Fusion/Types.o )
 [ 7 of 43] Compiling Data.Text.Internal.Fusion.CaseMapping (
 Data/Text/Internal/Fusion/CaseMapping.hs,
 dist/build/Data/Text/Internal/Fusion/CaseMapping.o )
 [ 8 of 43] Compiling Data.Text.Encoding.Error (
 Data/Text/Encoding/Error.hs, dist/build/Data/Text/Encoding/Error.o )
 [ 9 of 43] Compiling Data.Text.Internal.Unsafe.Shift (
 Data/Text/Internal/Unsafe/Shift.hs,
 dist/build/Data/Text/Internal/Unsafe/Shift.o )
 [10 of 43] Compiling Data.Text.Internal.Encoding.Utf16 (
 Data/Text/Internal/Encoding/Utf16.hs,
 dist/build/Data/Text/Internal/Encoding/Utf16.o )
 [11 of 43] Compiling Data.Text.Internal.Functions (
 Data/Text/Internal/Functions.hs, dist/build/Data/Text/Internal/Functions.o
 )
 [12 of 43] Compiling Data.Text.Internal.Unsafe (
 Data/Text/Internal/Unsafe.hs, dist/build/Data/Text/Internal/Unsafe.o )
 [13 of 43] Compiling Data.Text.Internal.Fusion.Common (
 Data/Text/Internal/Fusion/Common.hs,
 dist/build/Data/Text/Internal/Fusion/Common.o )
 [14 of 43] Compiling Data.Text.Array  ( Data/Text/Array.hs,
 dist/build/Data/Text/Array.o )
 [15 of 43] Compiling Data.Text.Internal.Unsafe.Char (
 Data/Text/Internal/Unsafe/Char.hs,
 dist/build/Data/Text/Internal/Unsafe/Char.o )
 [16 of 43] Compiling Data.Text.Internal ( Data/Text/Internal.hs,
 dist/build/Data/Text/Internal.o )
 [17 of 43] Compiling Data.Text.Unsafe ( Data/Text/Unsafe.hs,
 dist/build/Data/Text/Unsafe.o )
 [18 of 43] Compiling Data.Text.Internal.Private (
 Data/Text/Internal/Private.hs, dist/build/Data/Text/Internal/Private.o )
 [19 of 43] Compiling Data.Text.Internal.Fusion (
 Data/Text/Internal/Fusion.hs, dist/build/Data/Text/Internal/Fusion.o )
 [20 of 43] Compiling Data.Text.Internal.Encoding.Fusion.Common (
 Data/Text/Internal/Encoding/Fusion/Common.hs,
 dist/build/Data/Text/Internal/Encoding/Fusion/Common.o )
 [21 of 43] Compiling Data.Text.Internal.Encoding.Utf8 (
 Data/Text/Internal/Encoding/Utf8.hs,
 dist/build/Data/Text/Internal/Encoding/Utf8.o )
 [22 of 43] Compiling Data.Text.Internal.Encoding.Fusion (
 Data/Text/Internal/Encoding/Fusion.hs,
 dist/build/Data/Text/Internal/Encoding/Fusion.o )
 [23 of 43] Compiling Data.Text.Internal.Lazy.Encoding.Fusion (
 Data/Text/Internal/Lazy/Encoding/Fusion.hs,
 dist/build/Data/Text/Internal/Lazy/Encoding/Fusion.o )
 [24 of 43] Compiling Data.Text.Internal.Search (
 Data/Text/Internal/Search.hs, dist/build/Data/Text/Internal/Search.o )
 [25 of 43] Compiling Data.Text        ( Data/Text.hs,
 dist/build/Data/Text.o )
 [26 of 43] Compiling Data.Text.Encoding ( Data/Text/Encoding.hs,
 dist/build/Data/Text/Encoding.o )
 [27 of 43] Compiling Data.Text.Foreign ( Data/Text/Foreign.hs,
 dist/build/Data/Text/Foreign.o )
 [28 of 43] Compiling Data.Text.Internal.IO ( Data/Text/Internal/IO.hs,
 dist/build/Data/Text/Internal/IO.o )
 [29 of 43] Compiling Data.Text.IO     ( Data/Text/IO.hs,
 dist/build/Data/Text/IO.o )
 [30 of 43] Compiling Data.Text.Internal.Lazy ( Data/Text/Internal/Lazy.hs,
 dist/build/Data/Text/Internal/Lazy.o )
 [31 of 43] Compiling Data.Text.Internal.Lazy.Fusion (
 Data/Text/Internal/Lazy/Fusion.hs,
 dist/build/Data/Text/Internal/Lazy/Fusion.o )
 [32 of 43] Compiling Data.Text.Internal.Lazy.Search (
 Data/Text/Internal/Lazy/Search.hs,
 dist/build/Data/Text/Internal/Lazy/Search.o )
 [33 of 43] Compiling Data.Text.Lazy.Internal ( Data/Text/Lazy/Internal.hs,
 dist/build/Data/Text/Lazy/Internal.o )
 [34 of 43] Compiling Data.Text.Lazy   ( Data/Text/Lazy.hs,
 dist/build/Data/Text/Lazy.o )
 [35 of 43] Compiling Data.Text.Internal.Builder (
 Data/Text/Internal/Builder.hs, dist/build/Data/Text/Internal/Builder.o )
 [36 of 43] Compiling Data.Text.Lazy.Builder ( Data/Text/Lazy/Builder.hs,
 dist/build/Data/Text/Lazy/Builder.o )
 [37 of 43] Compiling Data.Text.Internal.Builder.Functions (
 Data/Text/Internal/Builder/Functions.hs,
 dist/build/Data/Text/Internal/Builder/Functions.o )
 [38 of 43] Compiling Data.Text.Lazy.Builder.Int (
 Data/Text/Lazy/Builder/Int.hs, dist/build/Data/Text/Lazy/Builder/Int.o )
 [39 of 43] Compiling Data.Text.Lazy.IO ( Data/Text/Lazy/IO.hs,
 dist/build/Data/Text/Lazy/IO.o )
 [40 of 43] Compiling Data.Text.Lazy.Read ( Data/Text/Lazy/Read.hs,
 dist/build/Data/Text/Lazy/Read.o )
 [41 of 43] Compiling Data.Text.Lazy.Builder.RealFloat (
 Data/Text/Lazy/Builder/RealFloat.hs,
 dist/build/Data/Text/Lazy/Builder/RealFloat.o )
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.8.4 for i386-unknown-linux):
         RegAlloc.Liveness.computeLivenss
     SCCs aren't in reverse dependent order
     bad blockId c8xHd
     [NONREC
         c8xHG:  jmp *-4(%ebx),
      NONREC
         c8xHF:
                 movl $12,828(%ebx)
                 jmp *stg_gc_unpt_r1 at got(%vI_n8Wmo),
      NONREC
         c8xHE:
                 movl %vI_n8Wmo,%vI_n8WmH
                 addl $sat_s8qTs{v}_info at gotoff,%vI_n8WmH
                 movl %vI_n8WmH,-8(%edi)
                 movl 4(%ebp),%vI_n8WmI
                 movl %vI_n8WmI,-4(%edi)
                 movl 16(%ebp),%vI_n8WmJ
                 movl %vI_n8WmJ,(%edi)
                 leal -7(%edi),%esi
                 addl $20,%ebp
                 jmp *(%ebp),
      NONREC
         c8xHz:
                 movl $48,828(%ebx)
                 movl %vI_n8Wmo,%vI_n8WmF
                 addl $block{v c8xEh}_info at gotoff,%vI_n8WmF
                 movl %vI_n8WmF,(%ebp)
                 movl %vI_s8qTz,%esi
                 movl %vI_s8qTx,4(%ebp)
                 jmp *stg_gc_unbx_r1 at got(%vI_n8Wmo),
      NONREC
         c8xHq:
                 movl %vI_c8xEw,%esi
                 incl 8(%ebp)
                 addl $8,%ebp
                 jmp *stg_ap_n_fast at got(%vI_n8Wmo),
      NONREC
         c8xHp:
                 movl %vI_c8xEw,%esi
                 addl $8,%ebp
                 jmp *stg_ap_n_fast at got(%vI_n8Wmo),
      NONREC
         c8xHi:  jmp *(%esi),
      NONREC
         c8xGZ:
                 call 1f
             1:  popl    %vI_n8Wmo
                 addl    $_GLOBAL_OFFSET_TABLE_+(.-1b), %vI_n8Wmo
                 movl 4(%ebp),%vI_c8xEw
                 movl %esi,%vI_n8Wmw
                 andl $3,%vI_n8Wmw
                 cmpl $2,%vI_n8Wmw
                 jae _c8xHp
                 jmp _c8xHq,
      NONREC
         c8xHy:
                 movl %vI_n8Wmo,%vI_n8Wmy
                 addl $lvl65{v s8qTB}_info at gotoff,%vI_n8Wmy
                 movl %vI_n8Wmy,-44(%edi)
                 movl %vI_s8qTz,-36(%edi)
                 movl %vI_n8Wmo,%vI_n8WmA
                 addl $a28{v s8qTD}_info at gotoff,%vI_n8WmA
                 movl %vI_n8WmA,-32(%edi)
                 movl %vI_s8qTd,-28(%edi)
                 movl %vI_s8qTh,-24(%edi)
                 movl %vI_s8qTk,-20(%edi)
                 movl %vI_s8qTx,-16(%edi)
                 leal -44(%edi),%vI_c8xEn
                 movl %vI_c8xEn,-12(%edi)
                 movl %vI_s8qRK,-8(%edi)
                 movl %vI_s8qTj,-4(%edi)
                 movl %vI_s8qTz,(%edi)
                 movl %vI_n8Wmo,%vI_n8WmC
                 addl $block{v c8xGZ}_info at gotoff,%vI_n8WmC
                 movl %vI_n8WmC,16(%ebp)
                 movl %vI_c8xEn,%esi
                 leal -30(%edi),%vI_n8WmD
                 movl %vI_n8WmD,20(%ebp)
                 addl $16,%ebp
                 testl $3,%esi
                 jne _c8xGZ
                 jmp _c8xHi,
      NONREC
         c8xGX:
                 addl $12,%edi
                 cmpl 804(%ebx),%edi
                 ja _c8xHF
                 jmp _c8xHE,
      NONREC
         c8xEi:
                 addl $48,%edi
                 cmpl 804(%ebx),%edi
                 ja _c8xHz
                 jmp _c8xHy,
      NONREC
         c8xHe:
                 movl %esi,%vI_s8qTx
                 movl $65533,%vI_s8qTz
                 jmp _c8xEi,
      NONREC
         c8xEh:
                 call 1f
             1:  popl    %vI_n8Wmo
                 addl    $_GLOBAL_OFFSET_TABLE_+(.-1b), %vI_n8Wmo
                 movl 20(%ebp),%vI_s8qRK
                 movl 12(%ebp),%vI_s8qTd
                 movl 16(%ebp),%vI_s8qTh
                 movl 24(%ebp),%vI_s8qTj
                 movl 8(%ebp),%vI_s8qTk
                 movl 4(%ebp),%vI_s8qTx
                 movl %esi,%vI_s8qTz
                 jmp _c8xEi,
      NONREC
         c8xEb:  jmp *(%esi),
      NONREC
         c8xEa:
                 call 1f
             1:  popl    %vI_n8Wmo
                 addl    $_GLOBAL_OFFSET_TABLE_+(.-1b), %vI_n8Wmo
                 movl 20(%ebp),%vI_s8qRK
                 movl 12(%ebp),%vI_s8qTd
                 movl 16(%ebp),%vI_s8qTh
                 movl 24(%ebp),%vI_s8qTj
                 movl 8(%ebp),%vI_s8qTk
                 movl 4(%ebp),%vI_s8qTw
                 movl %vI_s8qTw,%vI_n8Wms
                 andl $2095104,%vI_n8Wms
                 cmpl $55296,%vI_n8Wms
                 jne _c8xHd
                 jmp _c8xHe,
      NONREC
         c8xE6:  jmp *(%esi),
      NONREC
         c8xE5:
                 call 1f
             1:  popl    %vI_n8Wmo
                 addl    $_GLOBAL_OFFSET_TABLE_+(.-1b), %vI_n8Wmo
                 movl %vI_n8Wmo,%vI_n8Wmq
                 addl $block{v c8xEa}_info at gotoff,%vI_n8Wmq
                 movl %vI_n8Wmq,(%ebp)
                 movl 3(%esi),%vI_s8qTw
                 movl 4(%ebp),%esi
                 movl %vI_s8qTw,4(%ebp)
                 testl $3,%esi
                 jne _c8xEa
                 jmp _c8xEb,
      NONREC
         c8xGW:
                 movl %vI_n8Wmo,%vI_n8Wmu
                 addl $block{v c8xE5}_info at gotoff,%vI_n8Wmu
                 movl %vI_n8Wmu,-8(%ebp)
                 movl %esi,%vI_s8qTk
                 movl 6(%esi),%vI_s8qTu
                 movl 2(%esi),%esi
                 movl %vI_s8qTu,-4(%ebp)
                 movl %vI_s8qTk,(%ebp)
                 addl $-8,%ebp
                 testl $3,%esi
                 jne _c8xE5
                 jmp _c8xE6,
      NONREC
         c8xDC:  jmp *(%esi),
      NONREC
         c8xDB:
                 call 1f
             1:  popl    %vI_n8Wmo
                 addl    $_GLOBAL_OFFSET_TABLE_+(.-1b), %vI_n8Wmo
                 movl %esi,%vI_n8Wmn
                 andl $3,%vI_n8Wmn
                 cmpl $2,%vI_n8Wmn
                 jae _c8xGW
                 jmp _c8xGX,
      NONREC
         c8xHH:
                 movl %vI_n8Wmo,%vI_n8WmL
                 addl $block{v c8xDB}_info at gotoff,%vI_n8WmL
                 movl %vI_n8WmL,-12(%ebp)
                 movl %esi,%vI_s8qTh
                 movl 2(%esi),%vI_s8qTd
                 movl 6(%esi),%vI_s8qRK
                 movl (%ebp),%esi
                 movl %vI_s8qTd,-8(%ebp)
                 movl %vI_s8qTh,-4(%ebp)
                 movl %vI_s8qRK,(%ebp)
                 addl $-12,%ebp
                 testl $3,%esi
                 jne _c8xDB
                 jmp _c8xDC,
      NONREC
         c8xGY:
                 call 1f
             1:  popl    %vI_n8Wmo
                 addl    $_GLOBAL_OFFSET_TABLE_+(.-1b), %vI_n8Wmo
                 leal -20(%ebp),%vI_n8Wml
                 cmpl 796(%ebx),%vI_n8Wml
                 jb _c8xHG
                 jmp _c8xHH]
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10187>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list