Skip to content

ghc panic: RegAlloc.Liveness.computeLivenss

I have some code where ghc consistently panics with

  RegAlloc.Liveness.computeLivenss
    SCCs aren't in reverse dependent order
    bad blockId c1kek

The only reference I can find to that block in the dumped output is here:

     REC
        c1kej:
              movq $block{v c1keo}_info,(%rbp)
              movsd 7(%rbx),%vSSE_s1ivM
              movsd 15(%rbx),%vSSE_s1ivN
              movq 96(%rbp),%rbx
              movsd %vSSE_s1ivN,88(%rbp)
              movsd %vSSE_s1ivM,96(%rbp)
              testq $7,%rbx
              jne _c1keo
              jmp _c1kep
        c1kpo:
              movq $block{v c1kej}_info,(%rbp)
              movq %vI_s1it5,%rbx
              movq $0,120(%rbp)
              testq $7,%rbx
              jne _c1kej
              jmp _c1kek,

There doesn't appear to be any reference to c1kpo either.

Unfortunately I don't yet have a test case I can provide; I'll keep working on that. Building with -dcore-lint and -dcmm-lint don't show any extra errors.

This is with ghc-7.8.2 using NCG.

Trac metadata
Trac field Value
Version 7.8.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information