[commit: ghc] master: Add more primops for atomic ops on byte arrays (d8abf85)

Johan Tibell johan.tibell at gmail.com
Wed Jun 25 05:37:13 UTC 2014


I don't understand the error (are we out of registers in the register
allocator? what can we do about that?). Simon could you please explain.

As for the continuos builds, can't we have them email the list upon
breakages?


On Wed, Jun 25, 2014 at 7:26 AM, Mateusz Kowalczyk <fuuzetsu at fuuzetsu.co.uk>
wrote:

> On 06/24/2014 07:47 PM, git at git.haskell.org wrote:
> > Repository : ssh://git@git.haskell.org/ghc
> >
> > On branch  : master
> > Link       :
> http://ghc.haskell.org/trac/ghc/changeset/d8abf85f8ca176854e9d5d0b12371c4bc402aac3/ghc
> >
> >> ---------------------------------------------------------------
> >
> > commit d8abf85f8ca176854e9d5d0b12371c4bc402aac3
> > Author: Johan Tibell <johan.tibell at gmail.com>
> > Date:   Mon Jun 9 11:43:21 2014 +0200
> >
> >     Add more primops for atomic ops on byte arrays
> >
> >     Summary:
> >     Add more primops for atomic ops on byte arrays
> >
> >     Adds the following primops:
> >
> >      * atomicReadIntArray#
> >      * atomicWriteIntArray#
> >      * fetchSubIntArray#
> >      * fetchOrIntArray#
> >      * fetchXorIntArray#
> >      * fetchAndIntArray#
> >
> >     Makes these pre-existing out-of-line primops inline:
> >
> >      * fetchAddIntArray#
> >      * casIntArray#
> >
> >
> >> ---------------------------------------------------------------
> >
> > d8abf85f8ca176854e9d5d0b12371c4bc402aac3
> >  compiler/cmm/CmmMachOp.hs                          |  19 ++
> >  compiler/cmm/CmmSink.hs                            |   4 +
> >  compiler/cmm/PprC.hs                               |   4 +
> >  compiler/codeGen/StgCmmPrim.hs                     |  94 +++++++
> >  compiler/llvmGen/Llvm/AbsSyn.hs                    |   7 +
> >  compiler/llvmGen/Llvm/PpLlvm.hs                    |  18 +-
> >  compiler/llvmGen/LlvmCodeGen/CodeGen.hs            |  71 ++++--
> >  compiler/nativeGen/CPrim.hs                        |  50 +++-
> >  compiler/nativeGen/PPC/CodeGen.hs                  |   4 +
> >  compiler/nativeGen/SPARC/CodeGen.hs                |   4 +
> >  compiler/nativeGen/X86/CodeGen.hs                  |  92 +++++++
> >  compiler/nativeGen/X86/Instr.hs                    |  38 ++-
> >  compiler/nativeGen/X86/Ppr.hs                      |   8 +
> >  compiler/prelude/primops.txt.pp                    |  76 +++++-
> >  includes/stg/MiscClosures.h                        |   1 -
> >  libraries/ghc-prim/cbits/atomic.c                  | 280
> +++++++++++++++++++++
> >  libraries/ghc-prim/ghc-prim.cabal                  |   1 +
> >  rts/Linker.c                                       |   1 -
> >  rts/PrimOps.cmm                                    |  12 -
> >  testsuite/tests/concurrent/should_run/.gitignore   |   1 +
> >  .../tests/concurrent/should_run/AtomicPrimops.hs   | 245
> ++++++++++++++++++
> >  .../concurrent/should_run/AtomicPrimops.stdout     |   7 +
> >  testsuite/tests/concurrent/should_run/all.T        |   1 +
> >  23 files changed, 984 insertions(+), 54 deletions(-)
> >
> > Diff suppressed because of size. To see it, use:
> >
> >     git diff-tree --root --patch-with-stat --no-color
> --find-copies-harder --ignore-space-at-eol --cc
> d8abf85f8ca176854e9d5d0b12371c4bc402aac3
> > _______________________________________________
> > ghc-commits mailing list
> > ghc-commits at haskell.org
> > http://www.haskell.org/mailman/listinfo/ghc-commits
> >
>
> I think the above killed compilation on 32-bit boxes. See the
> usually-green boxes turn red at [1], specifically
> validator1-linux-x86-head, freebsd-i386-head and solaris-x86-head. The
> error looks like:
>
> "inplace/bin/ghc-stage1" -hisuf hi -osuf  o -hcsuf hc -static  -H32m -O
>    -package-name ghc-prim-0.3.1.0 -hide-all-packages -i
> -ilibraries/ghc-prim/. -ilibraries/ghc-prim/dist-install/build
> -ilibraries/ghc-prim/dist-install/build/autogen
> -Ilibraries/ghc-prim/dist-install/build
> -Ilibraries/ghc-prim/dist-install/build/autogen -Ilibraries/ghc-prim/.
>   -optP-include
> -optPlibraries/ghc-prim/dist-install/build/autogen/cabal_macros.h
> -package rts-1.0 -package-name ghc-prim -XHaskell2010 -O2
> -no-user-package-db -rtsopts      -odir
> libraries/ghc-prim/dist-install/build -hidir
> libraries/ghc-prim/dist-install/build -stubdir
> libraries/ghc-prim/dist-install/build -split-objs -dynamic-too -c
> libraries/ghc-prim/dist-install/build/GHC/PrimopWrappers.hs -o
> libraries/ghc-prim/dist-install/build/GHC/PrimopWrappers.o -dyno
> libraries/ghc-prim/dist-install/build/GHC/PrimopWrappers.dyn_o
> ghc-stage1: panic! (the 'impossible' happened)
>   (GHC version 7.9.20140624 for i386-unknown-linux):
>         RegAllocLinear.allocRegsAndSpill: no spill candidates
>     allocating vreg:  VirtualRegI n1Q6
>     assignment:       [(c1PV,InMem 2),(n1Q5,InBoth (RealRegSingle 3)
> 0),(n1Q6,InMem 1),(n1Q7,InMem 3),(n1Q9,InReg (RealRegSingle 2))]
>     freeRegs:         FreeRegs 4282318848
>     initFreeRegs:     FreeRegs 4282318861
> Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
> make[1]: ***
> [libraries/ghc-prim/dist-install/build/GHC/PrimopWrappers.o] Error 1
>
> It'd be great if the devs would look at [1] every day or so.
>
> [1]: http://haskell.inf.elte.hu/builders/
>
> --
> Mateusz K.
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140625/700338b9/attachment.html>


More information about the ghc-devs mailing list