BSD-3-Clause licensed by Anthony Cowley, Stephen Diehl, Moritz Kiefer, Benjamin S. Scarlet
Maintained by Anthony Cowley, Stephen Diehl, Moritz Kiefer
This version can be pinned in stack with:llvm-hs-4.2.0@sha256:b9e150b7a0a0f6bb2f1571c9e8ed44b0f0c9b0b97beefdde33131d6b61d04bcb,8458

Module documentation for 4.2.0

  • LLVM
    • LLVM.Analysis
    • LLVM.CodeGenOpt
    • LLVM.CodeModel
    • LLVM.CommandLine
    • LLVM.Context
    • LLVM.Diagnostic
    • LLVM.Exception
    • LLVM.ExecutionEngine
    • LLVM.Internal
      • LLVM.Internal.Analysis
      • LLVM.Internal.Atomicity
      • LLVM.Internal.Attribute
      • LLVM.Internal.BasicBlock
      • LLVM.Internal.CallingConvention
      • LLVM.Internal.Coding
      • LLVM.Internal.CommandLine
      • LLVM.Internal.Constant
      • LLVM.Internal.Context
      • LLVM.Internal.DataLayout
      • LLVM.Internal.DecodeAST
      • LLVM.Internal.Diagnostic
      • LLVM.Internal.EncodeAST
      • LLVM.Internal.ExecutionEngine
      • LLVM.Internal.FFI
        • LLVM.Internal.FFI.Analysis
        • LLVM.Internal.FFI.Assembly
        • LLVM.Internal.FFI.Attribute
        • LLVM.Internal.FFI.BasicBlock
        • LLVM.Internal.FFI.BinaryOperator
        • LLVM.Internal.FFI.Bitcode
        • LLVM.Internal.FFI.Builder
        • LLVM.Internal.FFI.ByteRangeCallback
        • LLVM.Internal.FFI.Cleanup
        • LLVM.Internal.FFI.CommandLine
        • LLVM.Internal.FFI.Constant
        • LLVM.Internal.FFI.Context
        • LLVM.Internal.FFI.DataLayout
        • LLVM.Internal.FFI.ExecutionEngine
        • LLVM.Internal.FFI.Function
        • LLVM.Internal.FFI.GlobalAlias
        • LLVM.Internal.FFI.GlobalValue
        • LLVM.Internal.FFI.GlobalVariable
        • LLVM.Internal.FFI.InlineAssembly
        • LLVM.Internal.FFI.Instruction
        • LLVM.Internal.FFI.InstructionDefs
        • LLVM.Internal.FFI.Iterate
        • LLVM.Internal.FFI.LLVMCTypes
        • LLVM.Internal.FFI.MemoryBuffer
        • LLVM.Internal.FFI.Metadata
        • LLVM.Internal.FFI.Module
        • LLVM.Internal.FFI.OrcJIT
          • LLVM.Internal.FFI.OrcJIT.CompileLayer
          • LLVM.Internal.FFI.OrcJIT.CompileOnDemandLayer
          • LLVM.Internal.FFI.OrcJIT.IRCompileLayer
          • LLVM.Internal.FFI.OrcJIT.IRTransformLayer
        • LLVM.Internal.FFI.PassManager
        • LLVM.Internal.FFI.PtrHierarchy
        • LLVM.Internal.FFI.RawOStream
        • LLVM.Internal.FFI.SMDiagnostic
        • LLVM.Internal.FFI.ShortByteString
        • LLVM.Internal.FFI.Target
        • LLVM.Internal.FFI.Threading
        • LLVM.Internal.FFI.Transforms
        • LLVM.Internal.FFI.Type
        • LLVM.Internal.FFI.User
        • LLVM.Internal.FFI.Value
      • LLVM.Internal.FastMathFlags
      • LLVM.Internal.FloatingPointPredicate
      • LLVM.Internal.Function
      • LLVM.Internal.Global
      • LLVM.Internal.InlineAssembly
      • LLVM.Internal.Instruction
      • LLVM.Internal.InstructionDefs
      • LLVM.Internal.IntegerPredicate
      • LLVM.Internal.LibraryFunction
      • LLVM.Internal.MemoryBuffer
      • LLVM.Internal.Metadata
      • LLVM.Internal.Module
      • LLVM.Internal.Operand
      • LLVM.Internal.OrcJIT
        • LLVM.Internal.OrcJIT.CompileLayer
        • LLVM.Internal.OrcJIT.CompileOnDemandLayer
        • LLVM.Internal.OrcJIT.IRCompileLayer
        • LLVM.Internal.OrcJIT.IRTransformLayer
      • LLVM.Internal.PassManager
      • LLVM.Internal.RMWOperation
      • LLVM.Internal.RawOStream
      • LLVM.Internal.String
      • LLVM.Internal.TailCallKind
      • LLVM.Internal.Target
      • LLVM.Internal.Threading
      • LLVM.Internal.Type
      • LLVM.Internal.Value
    • LLVM.Module
    • LLVM.OrcJIT
    • LLVM.PassManager
    • LLVM.Relocation
    • LLVM.Target
      • LLVM.Target.LibraryFunction
      • LLVM.Target.Options
    • LLVM.Threading
    • LLVM.Transforms

llvm-hs is a set of Haskell bindings for LLVM http://llvm.org/. Unlike other current Haskell bindings, it uses an ADT to represent LLVM IR (http://llvm.org/docs/LangRef.html), and so offers two advantages: it handles almost all of the stateful complexities of using the LLVM API to build IR; and it supports moving IR not only from Haskell into LLVM C++ objects, but the other direction - from LLVM C++ into Haskell.

Changes

4.2.0 (2017-06-20)

  • Revamp OrcJIT API
    • The user facing API is now exposed using LLVM.OrcJIT.
    • All user facing functions have been documented.
    • In addition the bracket-style API, there are now new* and dispose* functions making it easier to ingegrate OrcJIT in custom monad transformer stacks.
    • There is a new CompileLayer typeclass which abstracts over the various compile layers in OrcJIT.
  • Support QuickCheck 2.10

4.1.0 (2017-05-17)

  • Switch most of the API from String to ByteString.
  • Switch from ExceptT to using exceptions. See LLVM.Exception for an overview of the exceptions potentially thrown.

4.0.1

  • Fix linking of system libraries

4.0.0 (initial release, changes in comparison to llvm-general)

  • Move modules from LLVM.General* to LLVM.*
  • Support for LLVM 4.0
  • Improved support for LLVM’s exception handling instructions
  • -fshared-llvm is now supported on windows (thanks to @RyanGLScott)
  • Default to -fshared-llvm
  • Expose LLVM.Internal.* modules.