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