[GHC] #11444: 8.0 rc1 panics in applyTypeToArgs
GHC
ghc-devs at haskell.org
Fri Apr 15 21:29:54 UTC 2016
#11444: 8.0 rc1 panics in applyTypeToArgs
-------------------------------------+-------------------------------------
Reporter: osa1 | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1-rc1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
Omer, any thoughts about comment:5?
On comment:2
* Assume for now that `reallyUnsafePtrEquality# @ a_a1Ts x_X1wq y_X1ws` is
''not'' ok-for-speculation. Then the transformation you show above should
not happen. Look at this code in `Simplify`:
{{{
-- 2b. Turn the case into a let, if
-- a) it binds only the case-binder
-- b) unlifted case: the scrutinee is ok-for-speculation
-- lifted case: the scrutinee is in HNF (or will later be
demanded)
| all_dead_bndrs
, if is_unlifted
then exprOkForSpeculation scrut -- See Note [Case elimination:
unlifted case]
else exprIsHNF scrut -- See Note [Case elimination: lifted
case]
|| scrut_is_demanded_var scrut
= do { tick (CaseElim case_bndr)
; env' <- simplNonRecX env case_bndr scrut
; simplExprF env' rhs cont }
}}}
We are in the unlifted case, and `exprOkForSpeculation` is false, so
this case should not fire. But I think it is firing. Why?
Can you check that this really is happening (e.g. there is a `CaseElim` on
this case binder)? And figure out why?
Can you make a small test case so I can see?
Separately, it's true that `exprOkForSpeculation` is being conservative;
see this comment in `CoreUtils.app_ok`
{{{
| otherwise
-> primop_ok op -- A bit conservative: we don't
really need
&& all (expr_ok primop_ok) args -- to care about lazy arguments,
but this is easy
}}}
Let me know if you need more help.
Simon
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11444#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list