[GHC] #8326: Place heap checks common in case alternatives before the case

GHC ghc-devs at haskell.org
Mon Sep 29 07:55:11 UTC 2014


#8326: Place heap checks common in case alternatives before the case
-------------------------------------+-------------------------------------
              Reporter:  jstolarek   |            Owner:
                  Type:  task        |           Status:  new
              Priority:  normal      |        Milestone:
             Component:  Compiler    |          Version:  7.7
            Resolution:              |         Keywords:
      Operating System:              |     Architecture:  Unknown/Multiple
  Unknown/Multiple                   |       Difficulty:  Unknown
       Type of failure:              |       Blocked By:
  None/Unknown                       |  Related Tickets:  #1498
             Test Case:              |
              Blocking:  8317        |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by jstolarek):

 Replying to [comment:8 dfeuer]:
 > it seems that in the wild (all over the library source), `isTrue#` is
 typically used as a function for converting from `Int#`, produced by a
 comparison operator, to `Bool`, rather than as a validity test for `True`.
 I have yet to see any explanation of why that is appropriate.
 Right, I see what you mean. So the only way the `isTrue#` and `isFalse#`
 functions are "safe" is because they promise to do what their names imply.
 You've focused on `isTrue#`, which indeed is identical to `tagToEnum#` but
 this is definitely not the case with `isFalse#`.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8326#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list