[GHC] #11533: Stack check not optimized out even if it could be
GHC
ghc-devs at haskell.org
Wed Feb 3 16:29:58 UTC 2016
#11533: Stack check not optimized out even if it could be
-------------------------------------+-------------------------------------
Reporter: jscholl | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.3
(CodeGen) |
Keywords: cmm | Operating System: Unknown/Multiple
Architecture: | Type of failure: Runtime
Unknown/Multiple | performance bug
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
CmmLayoutStack tries to remove a stack check if a function uses no stack
space. It knows that Sp < SpLim is always false, but not that Sp >= SpLim
is always true. However, the latter can arise when GHC flips the
comparison (which it does sometimes).
An example would be the worker function generated for {{{go}}}:
{{{
countDown :: Int -> Int
countDown = go 0
where
go acc n | n > 0 = go (acc + 1) (n - 1)
| otherwise = acc + n
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11533>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list