llvm-general-pure 3.4.2.0 → 3.4.2.1
raw patch · 13 files changed
+43/−32 lines, 13 filesdep ~llvm-general-pure
Dependency ranges changed: llvm-general-pure
Files
- llvm-general-pure.cabal +3/−3
- src/LLVM/General/AST.hs +4/−2
- src/LLVM/General/AST/AddrSpace.hs +2/−1
- src/LLVM/General/AST/Attribute.hs +3/−2
- src/LLVM/General/AST/Constant.hs +2/−1
- src/LLVM/General/AST/DataLayout.hs +5/−4
- src/LLVM/General/AST/Float.hs +2/−1
- src/LLVM/General/AST/Global.hs +4/−3
- src/LLVM/General/AST/InlineAssembly.hs +1/−1
- src/LLVM/General/AST/Instruction.hs +5/−5
- src/LLVM/General/AST/Name.hs +2/−1
- src/LLVM/General/AST/Operand.hs +5/−4
- src/LLVM/General/AST/Type.hs +5/−4
llvm-general-pure.cabal view
@@ -1,5 +1,5 @@ name: llvm-general-pure-version: 3.4.2.0+version: 3.4.2.1 license: BSD3 license-file: LICENSE author: Benjamin S.Scarlet <fgthb0@greynode.net>@@ -15,7 +15,7 @@ It includes an ADT to represent LLVM IR (<http://llvm.org/docs/LangRef.html>). The llvm-general package builds on this one with FFI bindings to LLVM, but llvm-general-pure does not require LLVM to be available. .- For haddock, see <http://bscarlet.github.io/llvm-general/3.4.2.0/doc/html/llvm-general-pure/index.html>.+ For haddock, see <http://bscarlet.github.io/llvm-general/3.4.2.1/doc/html/llvm-general-pure/index.html>. source-repository head type: git@@ -74,7 +74,7 @@ HUnit >= 1.2.4.2, test-framework-quickcheck2 >= 0.3.0.1, QuickCheck >= 2.5.1.1,- llvm-general-pure == 3.4.2.0,+ llvm-general-pure == 3.4.2.1, containers >= 0.4.2.1, mtl >= 2.0.1.0 hs-source-dirs: test
src/LLVM/General/AST.hs view
@@ -16,6 +16,8 @@ module LLVM.General.AST.Type ) where +import Data.Data+ import LLVM.General.AST.Name import LLVM.General.AST.Type import LLVM.General.AST.Global@@ -30,7 +32,7 @@ | MetadataNodeDefinition MetadataNodeID [Maybe Operand] | NamedMetadataDefinition String [MetadataNodeID] | ModuleInlineAssembly String- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data) -- | <http://llvm.org/docs/LangRef.html#modulestructure> data Module = @@ -41,7 +43,7 @@ moduleTargetTriple :: Maybe String, moduleDefinitions :: [Definition] } - deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data) -- | helper for making 'Module's defaultModule =
src/LLVM/General/AST/AddrSpace.hs view
@@ -1,8 +1,9 @@ -- | Pointers exist in Address Spaces module LLVM.General.AST.AddrSpace where +import Data.Data import Data.Word -- | See <http://llvm.org/docs/LangRef.html#pointer-type> data AddrSpace = AddrSpace Word32- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data)
src/LLVM/General/AST/Attribute.hs view
@@ -1,6 +1,7 @@ -- | Module to allow importing 'Attribute' distinctly qualified. module LLVM.General.AST.Attribute where +import Data.Data import Data.Word -- | <http://llvm.org/docs/LangRef.html#parameter-attributes>@@ -13,7 +14,7 @@ | ByVal | NoCapture | Nest- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data) -- | <http://llvm.org/docs/LangRef.html#function-attributes> data FunctionAttribute@@ -35,4 +36,4 @@ | ReturnsTwice | UWTable | NonLazyBind- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data)
src/LLVM/General/AST/Constant.hs view
@@ -1,6 +1,7 @@ -- | A representation of LLVM constants module LLVM.General.AST.Constant where +import Data.Data import Data.Word (Word32) import Data.Bits ((.|.), (.&.), complement, testBit, shiftL) @@ -205,7 +206,7 @@ element :: Constant, indices' :: [Word32] }- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | Since LLVM types don't include signedness, there's ambiguity in interpreting
src/LLVM/General/AST/DataLayout.hs view
@@ -1,6 +1,7 @@ -- | <http://llvm.org/docs/LangRef.html#data-layout> module LLVM.General.AST.DataLayout where +import Data.Data import Data.Word import Data.Map (Map)@@ -11,14 +12,14 @@ -- | Little Endian is the one true way :-). Sadly, we must support the infidels. data Endianness = LittleEndian | BigEndian- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | An AlignmentInfo describes how a given type must and would best be aligned data AlignmentInfo = AlignmentInfo { abiAlignment :: Word32, preferredAlignment :: Maybe Word32 }- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | A type of type for which 'AlignmentInfo' may be specified data AlignType@@ -27,7 +28,7 @@ | FloatAlign | AggregateAlign | StackAlign- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | a description of the various data layout properties which may be used during -- optimization@@ -38,7 +39,7 @@ typeLayouts :: Map (AlignType, Word32) AlignmentInfo, nativeSizes :: Maybe (Set Word32) }- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | a 'DataLayout' which specifies nothing defaultDataLayout = DataLayout {
src/LLVM/General/AST/Float.hs view
@@ -3,6 +3,7 @@ module LLVM.General.AST.Float where import Prelude as P+import Data.Data import Data.Word (Word16, Word64) -- | A type summing up the various float types.@@ -15,5 +16,5 @@ | Quadruple Word64 Word64 | X86_FP80 Word16 Word64 | PPC_FP128 Word64 Word64- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data)
src/LLVM/General/AST/Global.hs view
@@ -1,6 +1,7 @@ -- | 'Global's - top-level values in 'Module's - and supporting structures. module LLVM.General.AST.Global where +import Data.Data import Data.Word import LLVM.General.AST.Name@@ -52,17 +53,17 @@ garbageCollectorName :: Maybe String, basicBlocks :: [BasicBlock] }- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data) -- | 'Parameter's for 'Function's data Parameter = Parameter Type Name [A.ParameterAttribute]- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data) -- | <http://llvm.org/doxygen/classllvm_1_1BasicBlock.html> -- LLVM code in a function is a sequence of 'BasicBlock's each with a label, -- some instructions, and a terminator. data BasicBlock = BasicBlock Name [Named Instruction] (Named Terminator)- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data) -- | helper for making 'GlobalVariable's globalVariableDefaults :: Global
src/LLVM/General/AST/InlineAssembly.hs view
@@ -24,4 +24,4 @@ alignStack :: Bool, dialect :: Dialect }- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data)
src/LLVM/General/AST/Instruction.hs view
@@ -63,7 +63,7 @@ | Unreachable { metadata' :: InstructionMetadata }- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data) -- | <http://llvm.org/docs/LangRef.html#atomic-memory-ordering-constraints> -- <http://llvm.org/docs/Atomics.html>@@ -81,13 +81,13 @@ crossThread :: Bool, -- ^ <http://llvm.org/docs/LangRef.html#singlethread> memoryOrdering :: MemoryOrdering }- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | For the redoubtably complex 'LandingPad' instruction data LandingPadClause = Catch Constant | Filter Constant- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | non-terminator instructions: -- <http://llvm.org/docs/LangRef.html#binaryops>@@ -381,11 +381,11 @@ clauses :: [LandingPadClause], metadata :: InstructionMetadata }- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data) -- | Instances of instructions may be given a name, allowing their results to be referenced as 'Operand's. -- Sometimes instructions - e.g. a call to a function returning void - don't need names. data Named a = Name := a | Do a- deriving (Eq, Read, Show)+ deriving (Eq, Read, Show, Typeable, Data)
src/LLVM/General/AST/Name.hs view
@@ -1,6 +1,7 @@ -- | Names as used in LLVM IR module LLVM.General.AST.Name where +import Data.Data import Data.Word {- |@@ -27,5 +28,5 @@ data Name = Name String -- ^ a string name | UnName Word -- ^ a number for a nameless thing- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data)
src/LLVM/General/AST/Operand.hs view
@@ -1,6 +1,7 @@ -- | A type to represent operands to LLVM 'LLVM.General.AST.Instruction.Instruction's module LLVM.General.AST.Operand where- ++import Data.Data import Data.Word import LLVM.General.AST.Name@@ -11,13 +12,13 @@ -- Note this is different from "named metadata", which are represented with -- 'LLVM.General.AST.NamedMetadataDefinition'. newtype MetadataNodeID = MetadataNodeID Word- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | <http://llvm.org/docs/LangRef.html#metadata> data MetadataNode = MetadataNode [Maybe Operand] | MetadataNodeReference MetadataNodeID- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | An 'Operand' is roughly that which is an argument to an 'LLVM.General.AST.Instruction.Instruction' data Operand @@ -27,7 +28,7 @@ | ConstantOperand Constant | MetadataStringOperand String | MetadataNodeOperand MetadataNode- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | The 'LLVM.General.AST.Instruction.Call' instruction is special: the callee can be inline assembly type CallableOperand = Either InlineAssembly Operand
src/LLVM/General/AST/Type.hs view
@@ -1,11 +1,12 @@ -- | A representation of an LLVM type module LLVM.General.AST.Type where +import Data.Data+import Data.Word (Word32, Word64)+ import LLVM.General.AST.AddrSpace import LLVM.General.AST.Name -import Data.Word (Word32, Word64)- -- | LLVM supports some special formats floating point format. This type is to distinguish those format. -- I believe it's treated as a format for "a" float, as opposed to a vector of two floats, because -- its intended usage is to represent a single number with a combined significand.@@ -13,7 +14,7 @@ = IEEE | DoubleExtended | PairOfFloats- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data) -- | <http://llvm.org/docs/LangRef.html#type-system> data Type@@ -37,4 +38,4 @@ | NamedTypeReference Name -- | <http://llvm.org/docs/LangRef.html#metadata-type> | MetadataType -- only to be used as a parameter type for a few intrinsics- deriving (Eq, Ord, Read, Show)+ deriving (Eq, Ord, Read, Show, Typeable, Data)