diff options
Diffstat (limited to 'compiler/llvmGen/Llvm.hs')
-rw-r--r-- | compiler/llvmGen/Llvm.hs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/compiler/llvmGen/Llvm.hs b/compiler/llvmGen/Llvm.hs new file mode 100644 index 0000000000..7a322bd86f --- /dev/null +++ b/compiler/llvmGen/Llvm.hs @@ -0,0 +1,52 @@ +-- ---------------------------------------------------------------------------- +-- | This module supplies bindings to generate Llvm IR from Haskell +-- (<http://www.llvm.org/docs/LangRef.html>). +-- +-- Note: this module is developed in a demand driven way. It is no complete +-- LLVM binding library in Haskell, but enough to generate code for GHC. +-- +-- This code is derived from code taken from the Essential Haskell Compiler +-- (EHC) project (<http://www.cs.uu.nl/wiki/Ehc/WebHome>). +-- + +module Llvm ( + + -- * Modules, Functions and Blocks + LlvmModule(..), + + LlvmFunction(..), LlvmFunctionDecl(..), + LlvmFunctions, LlvmFunctionDecls, + LlvmStatement(..), LlvmExpression(..), + LlvmBlocks, LlvmBlock(..), LlvmBlockId, + + -- * Call Handling + LlvmCallConvention(..), LlvmCallType(..), LlvmParameterListType(..), + LlvmLinkageType(..), LlvmFuncAttr(..), + + -- * Operations and Comparisons + LlvmCmpOp(..), LlvmMachOp(..), LlvmCastOp(..), + + -- * Variables and Type System + LlvmVar(..), LlvmStatic(..), LlvmLit(..), LlvmType(..), + LMGlobal, LMString, LMConstant, + + -- ** Some basic types + i64, i32, i16, i8, i1, llvmWord, llvmWordPtr, + + -- ** Operations on the type system. + isGlobal, getLitType, getLit, getName, getPlainName, getVarType, + getStatType, getGlobalVar, getGlobalType, pVarLower, pLift, pLower, + isInt, isFloat, isPointer, llvmWidthInBits, + + -- * Pretty Printing + ppLlvmModule, ppLlvmComments, ppLlvmComment, ppLlvmConstants, + ppLlvmConstant, ppLlvmGlobals, ppLlvmGlobal, ppLlvmFunctionDecls, + ppLlvmFunctionDecl, ppLlvmFunctions, ppLlvmFunction, ppLlvmType, + ppLlvmTypes, llvmSDoc + + ) where + +import Llvm.AbsSyn +import Llvm.PpLlvm +import Llvm.Types + |