packages feed

accelerate-llvm-1.2.0.1: accelerate-llvm.cabal

name:                   accelerate-llvm
version:                1.2.0.1
cabal-version:          >= 1.10
tested-with:            GHC >= 8.0
build-type:             Simple

synopsis:               Accelerate backend component generating LLVM IR
description:
    This library implements direct LLVM IR generation for the /Accelerate/
    language. For further information, refer to the main
    <http://hackage.haskell.org/package/accelerate accelerate> package.
    .
    [/Dependencies/]
    .
    Haskell dependencies are available from Hackage. The following external
    libraries are alse required:
    .
      * <http://llvm.org LLVM>
    .
      * <http://sourceware.org/libffi/ libFFI> (if using <http://hackage.haskell.org/package/accelerate-llvm-native accelerate-llvm-native>)
    .
      * <https://developer.nvidia.com/cuda-downloads CUDA> (if using <http://hackage.haskell.org/package/accelerate-llvm-ptx accelerate-llvm-ptx>)
    .
    [/Installing LLVM/]
    .
    /Homebrew/
    .
    Example using Homebrew on macOS:
    .
    > brew install llvm-hs/llvm/llvm-8
    .
    /Debian & Ubuntu/
    .
    For Debian/Ubuntu based Linux distributions, the LLVM.org website provides
    binary distribution packages. Check <http://apt.llvm.org apt.llvm.org> for
    instructions for adding the correct package database for your OS version,
    and then:
    .
    > apt-get install llvm-8-dev
    .
    /Building from source/
    .
    If your OS does not have an appropriate LLVM distribution available, you can
    also build from source. Detailed build instructions are available on
    <http://releases.llvm.org/8.0.0/docs/CMake.html LLVM.org>. Make sure to
    include the cmake build options
    @-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON@ so that the @libLLVM@
    shared library will be built.
    .
    If using the @accelerate-llvm-ptx@ backend, also ensure that the
    @LLVM_TARGETS_TO_BUILD@ option includes the @NVPTX@ target (if not
    specified, all targets are built).
    .
    [/Installing accelerate-llvm/]
    .
    To use @accelerate-llvm@ it is important that the @llvm-hs@ package is
    installed against the @libLLVM@ shared library, rather than statically
    linked, so that we can use LLVM from GHCi and Template Haskell. This is the
    default configuration, but you can also enforce this explicitly by adding
    the following to your @stack.yaml@ file:
    .
    > flags:
    >   llvm-hs:
    >     shared-llvm: true
    .
    Or by specifying the @shared-llvm@ flag to cabal:
    .
    > cabal install llvm-hs -fshared-llvm
    .

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

extra-source-files:
    CHANGELOG.md
    README.md


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

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.AST
    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.Compile.Cache
    Data.Array.Accelerate.LLVM.Embed
    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.Link
    Data.Array.Accelerate.LLVM.Link.Cache
    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

    -- Extras
    Data.ByteString.Short.Char8
    Data.ByteString.Short.Extra
    Data.Range

  other-modules:
    Paths_accelerate_llvm

  build-depends:
          base                          >= 4.7 && < 4.13
        , abstract-deque                >= 0.3
        , accelerate                    == 1.2.*
        , bytestring                    >= 0.10.4
        , containers                    >= 0.5
        , data-default-class            >= 0.0.1
        , deepseq                       >= 1.3
        , directory                     >= 1.0
        , dlist                         >= 0.6
        , exceptions                    >= 0.6
        , filepath                      >= 1.0
        , llvm-hs                       >= 4.1 && < 8.1
        , llvm-hs-pure                  >= 4.1 && < 8.1
        , mtl                           >= 2.0
        , mwc-random                    >= 0.13
        , primitive                     >= 0.6
        , template-haskell
        , unordered-containers          >= 0.2
        , vector                        >= 0.10

  hs-source-dirs:
        src

  default-language:
        Haskell2010

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

  ghc-prof-options:
        -caf-all
        -auto-all

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

  if flag(chase-lev)
    cpp-options:
        -DCHASELEV_DEQUE

    build-depends:
          chaselev-deque                >= 0.5

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

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

-- vim: nospell