packages feed

accelerate-1.4.0.0: src/Data/Array/Accelerate/Trafo/Config.hs

{-# OPTIONS_HADDOCK hide #-}
-- |
-- Module      : Data.Array.Accelerate.Trafo.Config
-- Copyright   : [2008..2020] The Accelerate Team
-- License     : BSD3
--
-- Maintainer  : Trevor L. McDonell <trevor.mcdonell@gmail.com>
-- Stability   : experimental
-- Portability : non-portable (GHC extensions)
--

module Data.Array.Accelerate.Trafo.Config (

  Config(..),
  Flag(..),
  defaultOptions,

) where

import Data.BitSet
import Data.Array.Accelerate.Debug.Internal.Flags                   as F

import Data.Word
import System.IO.Unsafe
import Foreign.Storable


data Config = Config
  { options                 :: {-# UNPACK #-} !(BitSet Word32 Flag)
  }
  deriving Show

{-# NOINLINE defaultOptions #-}
defaultOptions :: Config
defaultOptions = unsafePerformIO $!
  Config <$> BitSet <$> peek F.__cmd_line_flags