Skip to content
  • Thomas Miedema's avatar
    Refactor: delete most of the module FastTypes · 2f29ebbb
    Thomas Miedema authored and Ben Gamari's avatar Ben Gamari committed
    This reverses some of the work done in #1405, and goes back to the
    assumption that the bootstrap compiler understands GHC-haskell.
    
    In particular:
      * use MagicHash instead of _ILIT and _CLIT
      * pattern matching on I# if possible, instead of using iUnbox
        unnecessarily
      * use Int#/Char#/Addr# instead of the following type synonyms:
        - type FastInt   = Int#
        - type FastChar  = Char#
        - type FastPtr a = Addr#
      * inline the following functions:
        - iBox           = I#
        - cBox           = C#
        - fastChr        = chr#
        - fastOrd        = ord#
        - eqFastChar     = eqChar#
        - shiftLFastInt  = uncheckedIShiftL#
        - shiftR_FastInt = uncheckedIShiftRL#
        - shiftRLFastInt = uncheckedIShiftRL#
      * delete the following unused functions:
        - minFastInt
        - maxFastInt
        - uncheckedIShiftRA#
        - castFastPtr
        - panicDocFastInt and pprPanicFastInt
      * rename panicFastInt back to panic#
    
    These functions remain, since they actually do something:
      * iUnbox
      * bitAndFastInt
      * bitOrFastInt
    
    Test Plan: validate
    
    Reviewers: austin, bgamari
    
    Subscribers: rwbarton
    
    Differential Revision: https://phabricator.haskell.org/D1141
    
    GHC Trac Issues: #1405
    2f29ebbb