
#7814: panic in PPC NCG --------------------------------+------------------------------------------- Reporter: heisenbug | Owner: heisenbug Type: bug | Status: new Priority: normal | Component: Compiler Version: 7.7 | Keywords: Os: Unknown/Multiple | Architecture: powerpc Failure: Building GHC failed | Blockedby: Blocking: | Related: --------------------------------+------------------------------------------- Comment(by heisenbug): Replying to [comment:10 ggreif@…]: That patch fixes liveness: {{{ ==================== Liveness annotations added ==================== stg_sel_0_upd_entry() // [R1] { [(cb, stg_sel_0_upd_info: const 0; const 1507328;), (ce, block_ce_info: const 0; const 2097152;)] # firstId = Just cb # liveVRegsOnEntry = Just [(cb, []), (ce, []), (cj, [(cc, %vI_cc)]), (cl, [(cc, %vI_cc), (nv, %vI_nv)]), (cn, [(cf, %vI_cf), (nv, %vI_nv)]), (co, [(cf, %vI_cf), (nv, %vI_nv)])] # liveSlotsOnEntry = fromList [] } ... }}} But now we get in trouble when certain object files get too large: {{{ $ "inplace/bin/ghc-stage1" -hisuf hi -osuf o -hcsuf hc -static -H64m -O0 -fasm -package-name time-1.4.0.2 -hide-all-packages -i -ilibraries/time/. -ilibraries/time/dist-install/build -ilibraries/time /dist-install/build/autogen -Ilibraries/time/dist-install/build -Ilibraries/time/dist-install/build/autogen -Ilibraries/time/include -optP-DLANGUAGE_Rank2Types -optP-DLANGUAGE_DeriveDataTypeable -optP- DLANGUAGE_StandaloneDeriving -optP-include -optPlibraries/time/dist- install/build/autogen/cabal_macros.h -package base-4.7.0.0 -package deepseq-1.3.0.2 -package old-locale-1.0.0.5 -Wall -XHaskell2010 -XRank2Types -XDeriveDataTypeable -XStandaloneDeriving -XCPP -O -fasm -no-user-package-db -rtsopts -odir libraries/time/dist-install/build -hidir libraries/time/dist-install/build -stubdir libraries/time/dist- install/build -dynamic-too -c libraries/time/./Data/Time/Format.hs -o libraries/time/dist-install/build/Data/Time/Format.o -dyno libraries/time /dist-install/build/Data/Time/Format.dyn_o /tmp/ghc3030_0/ghc3030_1.s: Assembler messages: /tmp/ghc3030_0/ghc3030_1.s:51471:0: Error: operand out of range (0x0000adf8 is not between 0xffff8000 and 0x00007fff) ... and many more like the above ... }}} The referenced label is `Lnw0w` {{{ .Lctem: bcl 20,31,1f 1: mflr 31 lwz 30, .Lnw0w-(1b)(31) }}} Maybe we can salvage the situation by placing its definition {{{ .text .align 2 .Lnw0w: .long .LCTOC1-(1b)+0 }}} further up? I.e., being more conservative with approximating label differences? -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7814#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler