Skip to content

GHC Panics with "colorGraph: trivially colorable nodes didn't color!" on PPC

I was finally able to build GHC 8.0.2rc2 (or rather, c5f375c5 + a minor buildsys fix) on AIX/PPC; most packages seem to work as they did with GHC 8.0.1, however, unordered-containers now panics with:

$ cabal get unordered-containers && cd unordered-containers-0.2.7.1/
$ cabal new-build -j1
Resolving dependencies...
In order, the following will be built (use -v for more details):
 - unordered-containers-0.2.7.1 (lib) (first run)
Configuring component lib from unordered-containers-0.2.7.1...
Preprocessing library unordered-containers-0.2.7.1...
[1 of 8] Compiling Data.HashMap.UnsafeShift ( Data/HashMap/UnsafeShift.hs, /home/hvr/unordered-containers-0.2.7.1/dist-newstyle/build/ppc-aix/ghc-8.0.1.20161223/unordered-containers-0.2.7.1/build/Data/HashMap/UnsafeShift.o )
[2 of 8] Compiling Data.HashMap.Unsafe ( Data/HashMap/Unsafe.hs, /home/hvr/unordered-containers-0.2.7.1/dist-newstyle/build/ppc-aix/ghc-8.0.1.20161223/unordered-containers-0.2.7.1/build/Data/HashMap/Unsafe.o )
[3 of 8] Compiling Data.HashMap.PopCount ( Data/HashMap/PopCount.hs, /home/hvr/unordered-containers-0.2.7.1/dist-newstyle/build/ppc-aix/ghc-8.0.1.20161223/unordered-containers-0.2.7.1/build/Data/HashMap/PopCount.o )
[4 of 8] Compiling Data.HashMap.Array ( Data/HashMap/Array.hs, /home/hvr/unordered-containers-0.2.7.1/dist-newstyle/build/ppc-aix/ghc-8.0.1.20161223/unordered-containers-0.2.7.1/build/Data/HashMap/Array.o )
[5 of 8] Compiling Data.HashMap.Base ( Data/HashMap/Base.hs, /home/hvr/unordered-containers-0.2.7.1/dist-newstyle/build/ppc-aix/ghc-8.0.1.20161223/unordered-containers-0.2.7.1/build/Data/HashMap/Base.o )
ghc: panic! (the 'impossible' happened)
  (GHC version 8.0.1.20161223 for powerpc-ibm-aix):
        colorGraph: trivially colorable nodes didn't color!
  ksTriv    = [%vHi_HCRu, %vHi_HCRA, %vI_nGN7, %vI_nGNh, %vI_sCRp,
               %vI_sCRr, %vHi_HCRt, %vHi_HGNi, %vHi_HGNj, %vI_nGN3, %vI_nGN4,
               %vI_nGN5, %vI_nGN6, %vI_nGN8, %vI_nGN9, %vI_nGNa, %vI_nGNb,
               %vI_nGNc, %vI_nGNd, %vI_nGNe, %vI_nGNf, %vI_nGNi, %vI_nGNj,
               %vI_nGNk, %vI_nGNl, %vI_nGNm, %vI_nGNn, %vI_nGNo, %vI_nGNp,
               %vI_nGNq, %vI_nGNr, %vI_nGNs, %vI_nGNt, %vI_sCRH, %vI_sCRM]
  ksNoTriv  = [%vI_sCRr]
  colors    = [L0 :-> [R3 :-> %r3, R4 :-> %r4, R5 :-> %r5,
                       R6 :-> %r6, R7 :-> %r7, R8 :-> %r8, R9 :-> %r9, Ra :-> %r10,
                       Rb :-> %r11, Rc :-> %r12, Rn :-> %r23, Rq :-> %r26, Rs :-> %r28,
                       Rt :-> %r29, Rv :-> %r31],
               L2 :-> [Rw :-> %r32, Rx :-> %r33, Ry :-> %r34, Rz :-> %r35,
                       RA :-> %r36, RB :-> %r37, RC :-> %r38, RD :-> %r39, RE :-> %r40,
                       RF :-> %r41, RG :-> %r42, RH :-> %r43, RI :-> %r44, RJ :-> %r45,
                       RQ :-> %r52, RR :-> %r53, RS :-> %r54, RT :-> %r55, RU :-> %r56,
                       RV :-> %r57, RW :-> %r58, RX :-> %r59, RY :-> %r60, RZ :-> %r61,
                       R10 :-> %r62, R11 :-> %r63]]
  graph G {
  node [label="%vHi_HCRt :: I\n(%r3)" style=filled fillcolor="white"] "%vHi_HCRt";
  node [label="%vHi_HCRu :: I\n-%r3 -%r4 -%r5 -%r6 -%r7 -%r8 -%r9 -%r10 -%r11 -%r12 -%r32 -%r33 -%r34 -%r35 -%r36 -%r37 -%r38 -%r39 -%r40 -%r41 -%r42 -%r43 -%r44 -%r45 +%r3\n(%r23)" style=filled fillcolor="white"] "%vHi_HCRu";
  node [label="%vHi_HCRA :: I\n-%r3 -%r4 -%r5 -%r6 -%r7 -%r8 -%r9 -%r10 -%r11 -%r12 -%r32 -%r33 -%r34 -%r35 -%r36 -%r37 -%r38 -%r39 -%r40 -%r41 -%r42 -%r43 -%r44 -%r45 +%r5\n(%r26)" style=filled fillcolor="white"] "%vHi_HCRA";
  node [label="%vHi_HGNi :: I\n+%r3\n(%r3)" style=filled fillcolor="white"] "%vHi_HGNi";
  node [label="%vHi_HGNj :: I\n-%r3 -%r4 +%r5\n(%r5)" style=filled fillcolor="white"] "%vHi_HGNj";
  node [label="%vI_nGN3 :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGN3";
  node [label="%vI_nGN4 :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGN4";
  node [label="%vI_nGN5 :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGN5";
  node [label="%vI_nGN6 :: I\n(%r4)" style=filled fillcolor="white"] "%vI_nGN6";
  node [label="%vI_nGN7 :: I\n-%r3 -%r4 -%r5 -%r6 -%r7 -%r8 -%r9 -%r10 -%r11 -%r12 -%r32 -%r33 -%r34 -%r35 -%r36 -%r37 -%r38 -%r39 -%r40 -%r41 -%r42 -%r43 -%r44 -%r45 +%r4\n(%r28)" style=filled fillcolor="white"] "%vI_nGN7";
  node [label="%vI_nGN8 :: I\n(%r5)" style=filled fillcolor="white"] "%vI_nGN8";
  node [label="%vI_nGN9 :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGN9";
  node [label="%vI_nGNa :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNa";
  node [label="%vI_nGNb :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNb";
  node [label="%vI_nGNc :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNc";
  node [label="%vI_nGNd :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNd";
  node [label="%vI_nGNe :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNe";
  node [label="%vI_nGNf :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNf";
  node [label="%vI_nGNh :: I\n-%r3 -%r4 -%r5 -%r6 -%r7 -%r8 -%r9 -%r10 -%r11 -%r12 -%r32 -%r33 -%r34 -%r35 -%r36 -%r37 -%r38 -%r39 -%r40 -%r41 -%r42 -%r43 -%r44 -%r45 +%r6\n(%r29)" style=filled fillcolor="white"] "%vI_nGNh";
  node [label="%vI_nGNi :: I\n-%r3 +%r4\n(%r4)" style=filled fillcolor="white"] "%vI_nGNi";
  node [label="%vI_nGNj :: I\n-%r3 -%r4 -%r5 +%r6\n(%r6)" style=filled fillcolor="white"] "%vI_nGNj";
  node [label="%vI_nGNk :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNk";
  node [label="%vI_nGNl :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNl";
  node [label="%vI_nGNm :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNm";
  node [label="%vI_nGNn :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNn";
  node [label="%vI_nGNo :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNo";
  node [label="%vI_nGNp :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNp";
  node [label="%vI_nGNq :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNq";
  node [label="%vI_nGNr :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNr";
  node [label="%vI_nGNs :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNs";
  node [label="%vI_nGNt :: I\n(%r3)" style=filled fillcolor="white"] "%vI_nGNt";
  node [label="%vI_sCRo :: I\n-%r3 -%r4 -%r5 -%r6 -%r7 -%r8 -%r9 -%r10 -%r11 -%r12 -%r32 -%r33 -%r34 -%r35 -%r36 -%r37 -%r38 -%r39 -%r40 -%r41 -%r42 -%r43 -%r44 -%r45\n(spill?)" style=filled fillcolor=white] "%vI_sCRo";
  node [label="%vI_sCRp :: I\n-%r3 -%r4 -%r5 -%r6 -%r7 -%r8 -%r9 -%r10 -%r11 -%r12 -%r32 -%r33 -%r34 -%r35 -%r36 -%r37 -%r38 -%r39 -%r40 -%r41 -%r42 -%r43 -%r44 -%r45\n(%r31)" style=filled fillcolor="white"] "%vI_sCRp";
  node [label="%vI_sCRr :: I\n-%r3 -%r4 -%r5 -%r6 -%r7 -%r8 -%r9 -%r10 -%r11 -%r12 -%r32 -%r33 -%r34 -%r35 -%r36 -%r37 -%r38 -%r39 -%r40 -%r41 -%r42 -%r43 -%r44 -%r45\n(spill?)" style=filled fillcolor=white] "%vI_sCRr";
  node [label="%vI_sCRH :: I\n+%r3\n(%r3)" style=filled fillcolor="white"] "%vI_sCRH";
  node [label="%vI_sCRM :: I\n+%r3\n(%r3)" style=filled fillcolor="white"] "%vI_sCRM";
  "%vHi_HCRt" -- "%vHi_HCRu";
  "%vHi_HCRt" -- "%vI_nGN6";
  "%vHi_HCRt" -- "%vI_nGN7";
  "%vHi_HCRt" -- "%vI_nGN8";
  "%vHi_HCRu" -- "%vHi_HCRA";
  "%vHi_HCRu" -- "%vHi_HGNi";
  "%vHi_HCRu" -- "%vHi_HGNj";
  "%vHi_HCRu" -- "%vI_nGN6";
  "%vHi_HCRu" -- "%vI_nGN7";
  "%vHi_HCRu" -- "%vI_nGN8";
  "%vHi_HCRu" -- "%vI_nGNh";
  "%vHi_HCRu" -- "%vI_nGNi";
  "%vHi_HCRu" -- "%vI_nGNj";
  "%vHi_HCRu" -- "%vI_sCRo";
  "%vHi_HCRu" -- "%vI_sCRp";
  "%vHi_HCRu" -- "%vI_sCRr";
  "%vHi_HCRu" -- "%vI_sCRH";
  "%vHi_HCRA" -- "%vHi_HGNi";
  "%vHi_HCRA" -- "%vHi_HGNj";
  "%vHi_HCRA" -- "%vI_nGN7";
  "%vHi_HCRA" -- "%vI_nGNh";
  "%vHi_HCRA" -- "%vI_nGNi";
  "%vHi_HCRA" -- "%vI_nGNj";
  "%vHi_HCRA" -- "%vI_sCRo";
  "%vHi_HCRA" -- "%vI_sCRp";
  "%vHi_HCRA" -- "%vI_sCRr";
  "%vHi_HCRA" -- "%vI_sCRH";
  "%vHi_HGNi" -- "%vI_nGN7";
  "%vHi_HGNi" -- "%vI_nGNh";
  "%vHi_HGNi" -- "%vI_nGNi";
  "%vHi_HGNi" -- "%vI_sCRo";
  "%vHi_HGNi" -- "%vI_sCRp";
  "%vHi_HGNi" -- "%vI_sCRr";
  "%vHi_HGNj" -- "%vI_nGN7";
  "%vHi_HGNj" -- "%vI_nGNh";
  "%vHi_HGNj" -- "%vI_nGNj";
  "%vHi_HGNj" -- "%vI_sCRo";
  "%vHi_HGNj" -- "%vI_sCRp";
  "%vHi_HGNj" -- "%vI_sCRr";
  "%vI_nGN6" -- "%vI_nGN7";
  "%vI_nGN6" -- "%vI_nGN8";
  "%vI_nGN7" -- "%vI_nGN8";
  "%vI_nGN7" -- "%vI_nGNh";
  "%vI_nGN7" -- "%vI_nGNi";
  "%vI_nGN7" -- "%vI_nGNj";
  "%vI_nGN7" -- "%vI_sCRo";
  "%vI_nGN7" -- "%vI_sCRp";
  "%vI_nGN7" -- "%vI_sCRr";
  "%vI_nGN7" -- "%vI_sCRH";
  "%vI_nGNh" -- "%vI_nGNi";
  "%vI_nGNh" -- "%vI_nGNj";
  "%vI_nGNh" -- "%vI_sCRo";
  "%vI_nGNh" -- "%vI_sCRp";
  "%vI_nGNh" -- "%vI_sCRr";
  "%vI_nGNh" -- "%vI_sCRH";
  "%vI_nGNi" -- "%vI_sCRo";
  "%vI_nGNi" -- "%vI_sCRp";
  "%vI_nGNi" -- "%vI_sCRr";
  "%vI_nGNj" -- "%vI_sCRo";
  "%vI_nGNj" -- "%vI_sCRp";
  "%vI_nGNj" -- "%vI_sCRr";
  "%vI_nGNo" -- "%vI_sCRo";
  "%vI_nGNo" -- "%vI_sCRp";
  "%vI_nGNo" -- "%vI_sCRr";
  "%vI_nGNp" -- "%vI_sCRo";
  "%vI_nGNp" -- "%vI_sCRp";
  "%vI_nGNp" -- "%vI_sCRr";
  "%vI_sCRo" -- "%vI_sCRp";
  "%vI_sCRo" -- "%vI_sCRr";
  "%vI_sCRo" -- "%vI_sCRH";
  "%vI_sCRo" -- "%vI_sCRM";
  "%vI_sCRp" -- "%vI_sCRr";
  "%vI_sCRp" -- "%vI_sCRH";
  "%vI_sCRp" -- "%vI_sCRM";
  "%vI_sCRr" -- "%vI_sCRH";
  "%vI_sCRr" -- "%vI_sCRM";
  }
   

Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
Trac metadata
Trac field Value
Version 8.0.2-rc2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC ptrommler
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information