[GHC] #9303: O2: (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp
#9303: O2: (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp ----------------------------------+--------------------------------------- Reporter: slyfox | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (NCG) | Version: 7.8.3 Keywords: | Operating System: Unknown/Multiple Architecture: x86_64 (amd64) | Type of failure: Compile-time crash Difficulty: Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | ----------------------------------+--------------------------------------- {{{ ghc --make -O2 M.hs [1 of 1] Compiling M ( M.hs, M.o ) ghc: panic! (the 'impossible' happened) (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug }}} As in #9155 bug was caught on '''wx''' package in the same module. I didn't try to trim it down to minimal sample. No external modules required. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9303> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#9303: O2: (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp ---------------------------------------+---------------------------------- Reporter: slyfox | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (NCG) | Version: 7.8.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: x86_64 (amd64) Type of failure: Compile-time crash | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: ---------------------------------------+---------------------------------- Comment (by slyfox): The same for -HEAD: {{{ (GHC version 7.9.20140710 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s12v }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9303#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#9303: O2: (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp ---------------------------------------+---------------------------------- Reporter: slyfox | Owner: simonmar Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (NCG) | Version: 7.8.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: x86_64 (amd64) Type of failure: Compile-time crash | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: ---------------------------------------+---------------------------------- Changes (by simonpj): * owner: => simonmar Comment: This looks like #9155 again, but Simon M fixed it, and the fix was merged. Simon M will look again. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9303#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#9303: O2: (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp ---------------------------------------+---------------------------------- Reporter: slyfox | Owner: simonmar Type: bug | Status: new Priority: highest | Milestone: 7.8.4 Component: Compiler (NCG) | Version: 7.8.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: x86_64 (amd64) Type of failure: Compile-time crash | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: ---------------------------------------+---------------------------------- Changes (by simonmar): * priority: normal => highest * milestone: => 7.8.4 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9303#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#9303: O2: (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp -------------------------------------+------------------------------------- Reporter: slyfox | Owner: simonmar Type: bug | Status: new Priority: highest | Milestone: 7.8.4 Component: Compiler | Version: 7.8.3 (NCG) | Keywords: Resolution: | Operating System: Unknown/Multiple Differential Revisions: | Type of failure: Compile-time Architecture: x86_64 | crash (amd64) | Test Case: Difficulty: Unknown | Blocking: Blocked By: | Related Tickets: | -------------------------------------+------------------------------------- Comment (by slyfox): Managed to squeeze M-mini into even shorter example: {{{ -- a.hs module M (f) where f :: Int -> Int f i = go [ 1, 0 ] where go :: [Int] -> Int go [] = undefined go [1] = undefined go (x:xs) | x == i = 2 | otherwise = go xs }}} profiled -HEAD can even show stack trace: {{{ [sf] /tmp:~/dev/git/ghc/inplace/bin/ghc-stage2 --make -O2 a.hs [1 of 1] Compiling M ( a.hs, a.o ) ghc-stage2: panic! (the 'impossible' happened) (GHC version 7.9.20140712 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_sNc Stack trace: AsmCodeGen.RegAlloc (compiler/nativeGen/AsmCodeGen.lhs:(521,27)-(523,55)) AsmCodeGen.cmmNativeGen (compiler/nativeGen/AsmCodeGen.lhs:379:47-95) CodeOutput.NativeCodeGen (compiler/main/CodeOutput.lhs:153:18-69) CodeOutput.OutputAsm (compiler/main/CodeOutput.lhs:(151,37)-(153,69)) HscMain.codeOutput (compiler/main/HscMain.hs:(1180,16)-(1181,50)) GhcMake.upsweep_mod.compile_it (compiler/main/GhcMake.hs:(1186,13)-(1188,66)) GhcMake.upsweep_mod (compiler/main/GhcMake.hs:(1135,1)-(1280,49)) GhcMake.upsweep.upsweep' (compiler/main/GhcMake.hs:(1068,3)-(1124,64)) GhcMake.upsweep (compiler/main/GhcMake.hs:(1063,1)-(1124,64)) GhcMake.load (compiler/main/GhcMake.hs:(150,1)-(369,38)) GHC.defaultCleanupHandler (compiler/main/GHC.hs:(384,1)-(390,11)) GHC.runGhc (compiler/main/GHC.hs:(414,1)-(419,7)) Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9303#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#9303: O2: (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp -------------------------------------+------------------------------------- Reporter: slyfox | Owner: simonmar Type: bug | Status: new Priority: highest | Milestone: 7.8.4 Component: Compiler | Version: 7.8.3 (NCG) | Keywords: Resolution: | Architecture: x86_64 (amd64) Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: Compile- | Related Tickets: time crash | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by Simon Marlow <marlowsd@…>): In [changeset:"da70f9ef49a545707dc32db9662441b9c8845fba/ghc"]: {{{ #!CommitTicketReference repository="ghc" revision="da70f9ef49a545707dc32db9662441b9c8845fba" Allow multiple entry points when allocating recursive groups (#9303) Summary: In this example we ended up with some code that was only reachable via an info table, because a branch had been optimised away by the native code generator. The register allocator then got confused because it was only considering the first block of the proc to be an entry point, when actually any of the info tables are entry points. Test Plan: validate Reviewers: simonpj, austin Subscribers: simonmar, relrod, carter Differential Revision: https://phabricator.haskell.org/D88 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9303#comment:5> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#9303: O2: (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp -------------------------------------+------------------------------------- Reporter: slyfox | Owner: simonmar Type: bug | Status: merge Priority: highest | Milestone: 7.8.4 Component: Compiler | Version: 7.8.3 (NCG) | Keywords: Resolution: | Architecture: x86_64 (amd64) Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: Compile- | Related Tickets: time crash | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Changes (by simonmar): * status: new => merge -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9303#comment:6> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#9303: O2: (GHC version 7.8.3 for x86_64-unknown-linux): allocateRegsAndSpill: Cannot read from uninitialized register %vI_s1Mp -------------------------------------+------------------------------------- Reporter: slyfox | Owner: simonmar Type: bug | Status: closed Priority: highest | Milestone: 7.8.4 Component: Compiler | Version: 7.8.3 (NCG) | Keywords: Resolution: fixed | Architecture: x86_64 (amd64) Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: Compile- | Related Tickets: time crash | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Changes (by thoughtpolice): * status: merge => closed * resolution: => fixed Comment: Merged. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9303#comment:7> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC