[GHC] #7814: panic in PPC NCG
GHC
cvs-ghc at haskell.org
Mon Apr 8 13:18:28 CEST 2013
#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
More information about the ghc-tickets
mailing list