Refactor: delete most of the module FastTypes

Authored by thomie.

Description

Refactor: delete most of the module FastTypes

This reverses some of the work done in Trac #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: Trac #1405

Details

Committed
bgamariAug 21 2015, 8:44 AM
Differential Revision
D1141: Refactor: delete most of the module FastTypes
Parents
rGHC3452473b4bb1: Delete FastBool
Branches
Unknown
Tags
Unknown
Build Status
Buildable 5318
Build 5628: GHC Continuous Integration (amd64/Linux)