bundle panic

Simon Peyton-Jones simonpj at microsoft.com
Fri Nov 22 10:15:27 UTC 2013


I fixed this.

commit 3f0d4530a716b6db3c20b63825b56597e08b0d5e
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Fri Nov 22 10:12:55 2013 +0000

    When removing unreachable code, remove unreachable info tables too
    
    This bug only shows up when you are using proc-point splitting.
    What was happening was:
      * We generate a proc-point for the stack check
      * And an info table
      * We eliminate the stack check because it's redundant
      * And the dangling info table caused a panic in
        CmmBuildInfoTables.bundle

| -----Original Message-----
| From: Simon Marlow [mailto:marlowsd at gmail.com]
| Sent: 17 November 2013 09:57
| To: Simon Peyton-Jones; ghc-devs at haskell.org
| Subject: Re: bundle panic
| 
| On 16/11/13 00:16, Simon Peyton-Jones wrote:
| > I've looked into this myself.  I don't think it's actually anything
| > wrong in gmp-wrappers.  It's because CmmBuildInfoTables expects all
| the
| > info tables in the (CmmProc info_tbls lbl g) to be defined in the
| graph g.
| >
| > But Jan's new optimisation to the stack overflow check (Note [Always
| > false stack check] in CmmLayoutStack) ends up dropping a conditional
| > branch, so a call to gc is eliminated, and hence a proc point is
| > eliminated, and we end up with an unused thing in info_tbls, which
| > confuses CmmBuildInfoTables
| 
| > Sigh. I don't know why this only happens on Windows.  I'm looking into
| a fix
| 
| Perhaps this is a problem that only shows up with proc points, which is
| why you wouldn't see it on x86_64/Linux.  Let me know if you get stuck
| and I'll try to look into it.
| 
| FYI eliminating always-false stack checks is not new, it was temporarily
| broken by:
| 
| commit 94125c97e49987e91fa54da6c86bc6d17417f5cf
| Author: Jan Stolarek <jan.stolarek at p.lodz.pl>
| Date:   Wed Oct 16 09:45:56 2013 +0200
| 
|      Generate (old + 0) instead of Sp in stack checks
| 
| and then fixed up by:
| 
| commit 1cf0c8ad321d1d358cbec46d35be02566faf2d00
| Author: Jan Stolarek <jan.stolarek at p.lodz.pl>
| Date:   Thu Oct 17 23:17:06 2013 +0200
| 
|      Optimise stack checks that are always false
| 
| Cheers,
| Simon
| 
| 
| >
| >
| > Simon
| >
| > *From:*Simon Peyton-Jones
| > *Sent:* 15 November 2013 22:18
| > *To:* ghc-devs at haskell.org
| > *Subject:* bundle panic
| >
| > Windows build is failing again in a new way.  It was fine a couple of
| > days ago. Does this ring any bells?
| >
| > ghc-stage1.exe: panic! (the 'impossible' happened)
| >
| >    (GHC version 7.7.20131107 for i386-unknown-mingw32):
| >
| >       bundle
| >
| > Simon
| >
| > "inplace/bin/ghc-stage1.exe" -static  -H32m -O -Werror -Wall -H64m
| > -O0    -package-name integer-gmp-0.5.1.0 -hide-all-packages -i
| > -ilibraries/integer-gmp/. -ilibraries/integer-gmp/dist-install/build
| > -ilibraries/integer-gmp/dist-install/build/autogen
| > -Ilibraries/integer-gmp/dist-install/build
| > -Ilibraries/integer-gmp/dist-install/build/autogen
| > -Ilibraries/integer-gmp/.    -optP-include
| > -optPlibraries/integer-gmp/dist-install/build/autogen/cabal_macros.h
| > -package ghc-prim-0.3.1.0 -Wall -package-name integer-gmp -
| XHaskell2010
| > -dcore-lint  -no-user-package-db -rtsopts
| > -Ilibraries/integer-gmp/mkGmpDerivedConstants/dist     -c
| > libraries/integer-gmp/cbits/gmp-wrappers.cmm -o
| > libraries/integer-gmp/dist-install/build/cbits/gmp-wrappers.o
| >
| > ghc-stage1.exe: panic! (the 'impossible' happened)
| >
| >    (GHC version 7.7.20131107 for i386-unknown-mingw32):
| >
| >       bundle
| >
| >      c8 integer_cmm_importIntegerFromByteArrayzh [(c8,
| >
| >                                                    label: block{v
| c8}_info
| >
| >                                                    rep:StackRep
| [False,
| > True, True, True]),
| >
| >                                                   (cg,
| >
| >                                                    label: block{v
| cg}_info
| >
| >                                                    rep:StackRep
| [False,
| > True, True, True])]
| >
| > Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
| >
| > HEAD (master)$
| >
| >
| >
| > _______________________________________________
| > ghc-devs mailing list
| > ghc-devs at haskell.org
| > http://www.haskell.org/mailman/listinfo/ghc-devs
| >



More information about the ghc-devs mailing list