ghc-7.6.3: The GHC API

Safe HaskellNone

Bitmap

Synopsis

Documentation

type Bitmap = [StgWord]Source

A bitmap represented by a sequence of StgWords on the target architecture. These are used for bitmaps in info tables and other generated code which need to be emitted as sequences of StgWords.

mkBitmap :: [Bool] -> BitmapSource

Make a bitmap from a sequence of bits

intsToBitmap :: Int -> [Int] -> BitmapSource

Make a bitmap where the slots specified are the ones in the bitmap. eg. [0,1,3], size 4 ==> 0xb.

The list of Ints must be already sorted.

intsToReverseBitmap :: Int -> [Int] -> BitmapSource

Make a bitmap where the slots specified are the zeros in the bitmap. eg. [0,1,3], size 4 ==> 0x4 (we leave any bits outside the size as zero, just to make the bitmap easier to read).

The list of Ints must be already sorted and duplicate-free.

mAX_SMALL_BITMAP_SIZE :: IntSource

Magic number, must agree with BITMAP_BITS_SHIFT in InfoTables.h. Some kinds of bitmap pack a size/bitmap into a single word if possible, or fall back to an external pointer when the bitmap is too large. This value represents the largest size of bitmap that can be packed into a single word.

seqBitmap :: Bitmap -> a -> aSource