packages feed

accelerate-llvm-1.0.0.0: accelerate-llvm.cabal

name:                   accelerate-llvm
version:                1.0.0.0
cabal-version:          >= 1.10
tested-with:            GHC == 7.8.*
build-type:             Simple

synopsis:               Accelerate backend generating LLVM
description:
    This library implements direct LLVM IR generation for the /Accelerate/
    language. For further information, refer to the main /Accelerate/ package:
    <http://hackage.haskell.org/package/accelerate>

license:                BSD3
license-file:           LICENSE
author:                 Trevor L. McDonell
maintainer:             Trevor L. McDonell <tmcdonell@cse.unsw.edu.au>
bug-reports:            https://github.com/AccelerateHS/accelerate/issues
category:               Compilers/Interpreters, Concurrency, Data, Parallelism


-- Configuration flags
-- -------------------

Flag debug
  Default:              True
  Description:
    Enable debug tracing message flags. Note that 'debug' must be enabled in the
    base 'accelerate' package as well. See the 'accelerate' package for usage
    and available options.

Flag bounds-checks
  Default:              True
  Description:          Enable bounds checking

Flag unsafe-checks
  Default:              True
  Description:          Enable bounds checking in unsafe operations

Flag internal-checks
  Default:              True
  Description:          Enable internal consistency checks

Flag chase-lev
  Default:              True
  Description:          Use a Chase-Lev deque for work stealing


-- Build configuration
-- -------------------

Library
  exposed-modules:
    -- Accelerate-LLVM middle-end
    Data.Array.Accelerate.LLVM.Analysis.Match
    Data.Array.Accelerate.LLVM.Array.Data
    Data.Array.Accelerate.LLVM.CodeGen
    Data.Array.Accelerate.LLVM.CodeGen.Arithmetic
    Data.Array.Accelerate.LLVM.CodeGen.Array
    Data.Array.Accelerate.LLVM.CodeGen.Base
    Data.Array.Accelerate.LLVM.CodeGen.Constant
    Data.Array.Accelerate.LLVM.CodeGen.Downcast
    Data.Array.Accelerate.LLVM.CodeGen.Environment
    Data.Array.Accelerate.LLVM.CodeGen.Exp
    Data.Array.Accelerate.LLVM.CodeGen.IR
    Data.Array.Accelerate.LLVM.CodeGen.Intrinsic
    Data.Array.Accelerate.LLVM.CodeGen.Loop
    Data.Array.Accelerate.LLVM.CodeGen.Module
    Data.Array.Accelerate.LLVM.CodeGen.Monad
    Data.Array.Accelerate.LLVM.CodeGen.Permute
    Data.Array.Accelerate.LLVM.CodeGen.Ptr
    Data.Array.Accelerate.LLVM.CodeGen.Skeleton
    Data.Array.Accelerate.LLVM.CodeGen.Stencil
    Data.Array.Accelerate.LLVM.CodeGen.Sugar
    Data.Array.Accelerate.LLVM.CodeGen.Type
    Data.Array.Accelerate.LLVM.Compile
    Data.Array.Accelerate.LLVM.Execute
    Data.Array.Accelerate.LLVM.Execute.Async
    Data.Array.Accelerate.LLVM.Execute.Environment
    Data.Array.Accelerate.LLVM.Execute.Marshal
    Data.Array.Accelerate.LLVM.Foreign
    Data.Array.Accelerate.LLVM.State
    Data.Array.Accelerate.LLVM.Target
    Data.Array.Accelerate.LLVM.Util

    -- LLVM code generation
    LLVM.AST.Type.AddrSpace
    LLVM.AST.Type.Constant
    LLVM.AST.Type.Flags
    LLVM.AST.Type.Global
    LLVM.AST.Type.Instruction
    LLVM.AST.Type.Instruction.Atomic
    LLVM.AST.Type.Instruction.Compare
    LLVM.AST.Type.Instruction.RMW
    LLVM.AST.Type.Instruction.Volatile
    LLVM.AST.Type.Metadata
    LLVM.AST.Type.Name
    LLVM.AST.Type.Operand
    LLVM.AST.Type.Representation
    LLVM.AST.Type.Terminator

    -- Scheduler
    Control.Parallel.Meta
    Control.Parallel.Meta.Worker
    Control.Parallel.Meta.Resource.Backoff
    Control.Parallel.Meta.Resource.Single
    Control.Parallel.Meta.Resource.SMP
    Control.Parallel.Meta.Trans.LBS
    Data.Range.Range

  build-depends:
          base                          >= 4.7 && < 4.10
        , abstract-deque                >= 0.3
        , accelerate                    == 1.0.*
        , containers                    >= 0.5 && < 0.6
        , data-default-class            >= 0.0.1
        , dlist                         >= 0.6
        , exceptions                    >= 0.6
        , fclabels                      >= 2.0
        , llvm-hs                       >= 3.9
        , llvm-hs-pure                  >= 3.9
        , mtl                           >= 2.0
        , mwc-random                    >= 0.13
        , unordered-containers          >= 0.2
        , vector                        >= 0.10

  default-language:
    Haskell2010

  ghc-options:                  -O2 -Wall -fwarn-tabs

  if impl(ghc >= 8.0)
    ghc-options:                -Wmissed-specialisations

  if flag(chase-lev)
    cpp-options:                -DCHASELEV_DEQUE
    build-depends:              chaselev-deque >= 0.5

  if flag(debug)
    cpp-options:                -DACCELERATE_DEBUG

  if flag(bounds-checks)
    cpp-options:                -DACCELERATE_BOUNDS_CHECKS

  if flag(unsafe-checks)
    cpp-options:                -DACCELERATE_UNSAFE_CHECKS

  if flag(internal-checks)
    cpp-options:                -DACCELERATE_INTERNAL_CHECKS


source-repository head
  type:                 git
  location:             https://github.com/AccelerateHS/accelerate-llvm.git

source-repository this
  type:                 git
  tag:                  1.0.0.0
  location:             https://github.com/AccelerateHS/accelerate-llvm.git

-- vim: nospell