packages feed

accelerate-llvm-1.4.0.0: accelerate-llvm.cabal

cabal-version:          2.2

name:                   accelerate-llvm
version:                1.4.0.0
tested-with:            GHC >= 9.4
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
    <https://hackage.haskell.org/package/accelerate accelerate> package. As a
    user of Accelerate, you do not need to use this package; use
    @accelerate-llvm-native@ or @accelerate-llvm-ptx@ instead.
    .
    [/Dependencies/]
    .
    Haskell dependencies are available from Hackage. The following external
    dependencies are also required:
    .
    * <https://clang.llvm.org/ clang> (not used to compile C code, but to compile generated LLVM IR via a mostly LLVM-version-independent interface)
    * <https://sourceware.org/libffi/ libFFI> (if using <https://hackage.haskell.org/package/accelerate-llvm-native accelerate-llvm-native>)
    * <https://developer.nvidia.com/cuda-downloads CUDA> (if using <https://hackage.haskell.org/package/accelerate-llvm-ptx accelerate-llvm-ptx>)
    .
    For installation instructions, see the <https://github.com/AccelerateHS/accelerate-llvm#readme README>.
    .
    This package includes (and exposes) a forked copy of
    <https://hackage.haskell.org/package/llvm-pretty llvm-pretty> due to some
    breaking changes needed to make accelerate-llvm work. Upstreaming these
    changes is planned. This code (under
    @Data.Array.Accelerate.LLVM.Internal.LLVMPretty@) is __not__ public API and
    may disappear or change at any time.

license:                BSD-3-Clause
license-file:           LICENSE
author:                 Trevor L. McDonell
maintainer:             Trevor L. McDonell <trevor.mcdonell@gmail.com>
bug-reports:            https://github.com/AccelerateHS/accelerate/issues
category:               Accelerate, Compilers/Interpreters, Concurrency, Data, Parallelism

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


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

Library
  exposed-modules:
    -- Accelerate-LLVM middle-end
    Data.Array.Accelerate.LLVM.AST
    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.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.Profile
    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.Extra
    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.Target.ClangInfo

    -- LLVM code generation
    LLVM.AST.Type.Constant
    LLVM.AST.Type.Downcast
    LLVM.AST.Type.Function
    LLVM.AST.Type.GetElementPtr
    LLVM.AST.Type.Global
    LLVM.AST.Type.InlineAssembly
    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

    -- Extras
    Data.Array.Accelerate.TH.Compat
    Data.ByteString.Short.Char8
    Data.ByteString.Short.Extra

  other-modules:
    Paths_accelerate_llvm

  autogen-modules:
    Paths_accelerate_llvm

  build-depends:
          base                          >= 4.10 && < 5
        , accelerate                    == 1.4.*
        , bytestring                    >= 0.10.4
        , constraints                   >= 0.9
        , containers                    >= 0.5 && < 0.9
        , data-default-class            >= 0.0.1
        , deepseq                       >= 1.3
        , directory                     >= 1.2.3
        , dlist                         >= 0.6
        , exceptions                    >= 0.6
        , filepath                      >= 1.0
        , formatting                    >= 7.0
        , hashable                      >= 1.1
        -- , llvm-hs                       >= 4.1 && < 16
        -- , llvm-hs-pure                  >= 4.1 && < 16
        -- , llvm-pretty                   >= 0.12
        , mtl                           >= 2.0
        , primitive                     >= 0.6.4
        , process
        , template-haskell
        , text                          >= 1.2
        , unordered-containers          >= 0.2
        , vector                        >= 0.10

  -- Expose the modules from the (forked and edited) llvm-pretty here under a
  -- namespace prefix. We need these modules in accelerate-llvm-native and
  -- accelerate-llvm-ptx, so we must expose them publically, unfortunately.
  build-depends: llvm-pretty-accfork
  reexported-modules:
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.AST,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Labels,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Labels.TH,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Lens,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Parser,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.PP,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.DebugUtils,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Triple,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Triple.AST,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Triple.Parse,
    Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Triple.Print
  mixins:
    llvm-pretty-accfork
      (Text.LLVM              as Data.Array.Accelerate.LLVM.Internal.LLVMPretty,
       Text.LLVM.AST          as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.AST,
       Text.LLVM.Labels       as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Labels,
       Text.LLVM.Labels.TH    as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Labels.TH,
       Text.LLVM.Lens         as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Lens,
       Text.LLVM.Parser       as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Parser,
       Text.LLVM.PP           as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.PP,
       Text.LLVM.DebugUtils   as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.DebugUtils,
       Text.LLVM.Triple       as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Triple,
       Text.LLVM.Triple.AST   as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Triple.AST,
       Text.LLVM.Triple.Parse as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Triple.Parse,
       Text.LLVM.Triple.Print as Data.Array.Accelerate.LLVM.Internal.LLVMPretty.Triple.Print)

  hs-source-dirs:
        src

  default-language:
        Haskell2010

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

-- Abridged from llvm-pretty.cabal
library llvm-pretty-accfork
  default-language: Haskell2010
  ghc-options: -Wall

  hs-source-dirs:      llvm-pretty/src
  exposed-modules:     Text.LLVM
                       Text.LLVM.AST
                       Text.LLVM.Labels
                       Text.LLVM.Labels.TH
                       Text.LLVM.Lens
                       Text.LLVM.Parser
                       Text.LLVM.PP
                       Text.LLVM.DebugUtils
                       Text.LLVM.Triple
                       Text.LLVM.Triple.AST
                       Text.LLVM.Triple.Parse
                       Text.LLVM.Triple.Print
  other-modules:       Text.LLVM.Triple.Parse.ARM
                       Text.LLVM.Triple.Parse.LookupTable
                       Text.LLVM.Util

  build-depends:       base             >= 4.11 && < 5,
                       containers       >= 0.4,
                       parsec           >= 3,
                       pretty           >= 1.0.1,
                       monadLib         >= 3.6.1,
                       microlens        >= 0.4,
                       microlens-th     >= 0.4,
                       syb              >= 0.7,
                       template-haskell >= 2.7,
                       th-abstraction   >= 0.3.1 && <0.8

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

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

-- vim: nospell