llvm-general 3.5.1.0 → 3.5.1.1
raw patch · 2 files changed
+51/−35 lines, 2 filesdep ~llvm-generaldep ~transformerssetup-changedPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: llvm-general, transformers
API changes (from Hackage documentation)
- LLVM.General.CodeGenOpt: instance Data Level
- LLVM.General.CodeGenOpt: instance Eq Level
- LLVM.General.CodeGenOpt: instance Ord Level
- LLVM.General.CodeGenOpt: instance Read Level
- LLVM.General.CodeGenOpt: instance Show Level
- LLVM.General.CodeGenOpt: instance Typeable Level
- LLVM.General.CodeModel: instance Data Model
- LLVM.General.CodeModel: instance Eq Model
- LLVM.General.CodeModel: instance Read Model
- LLVM.General.CodeModel: instance Show Model
- LLVM.General.CodeModel: instance Typeable Model
- LLVM.General.Diagnostic: columnNumber :: Diagnostic -> Int
- LLVM.General.Diagnostic: diagnosticKind :: Diagnostic -> DiagnosticKind
- LLVM.General.Diagnostic: filename :: Diagnostic -> String
- LLVM.General.Diagnostic: instance Data DiagnosticKind
- LLVM.General.Diagnostic: instance Eq Diagnostic
- LLVM.General.Diagnostic: instance Eq DiagnosticKind
- LLVM.General.Diagnostic: instance Ord Diagnostic
- LLVM.General.Diagnostic: instance Ord DiagnosticKind
- LLVM.General.Diagnostic: instance Read Diagnostic
- LLVM.General.Diagnostic: instance Read DiagnosticKind
- LLVM.General.Diagnostic: instance Show Diagnostic
- LLVM.General.Diagnostic: instance Show DiagnosticKind
- LLVM.General.Diagnostic: instance Typeable DiagnosticKind
- LLVM.General.Diagnostic: lineContents :: Diagnostic -> String
- LLVM.General.Diagnostic: lineNumber :: Diagnostic -> Int
- LLVM.General.Diagnostic: message :: Diagnostic -> String
- LLVM.General.PassManager: dataLayout :: PassSetSpec -> Maybe DataLayout
- LLVM.General.PassManager: loopVectorize :: PassSetSpec -> Maybe Bool
- LLVM.General.PassManager: optLevel :: PassSetSpec -> Maybe Word
- LLVM.General.PassManager: simplifyLibCalls :: PassSetSpec -> Maybe Bool
- LLVM.General.PassManager: sizeLevel :: PassSetSpec -> Maybe Word
- LLVM.General.PassManager: superwordLevelParallelismVectorize :: PassSetSpec -> Maybe Bool
- LLVM.General.PassManager: targetLibraryInfo :: PassSetSpec -> Maybe TargetLibraryInfo
- LLVM.General.PassManager: targetMachine :: PassSetSpec -> Maybe TargetMachine
- LLVM.General.PassManager: transforms :: PassSetSpec -> [Pass]
- LLVM.General.PassManager: unitAtATime :: PassSetSpec -> Maybe Bool
- LLVM.General.PassManager: useInlinerWithThreshold :: PassSetSpec -> Maybe Word
- LLVM.General.Relocation: instance Data Model
- LLVM.General.Relocation: instance Eq Model
- LLVM.General.Relocation: instance Read Model
- LLVM.General.Relocation: instance Show Model
- LLVM.General.Relocation: instance Typeable Model
- LLVM.General.Target.Options: allowFloatingPointOperationFusion :: Options -> FloatingPointOperationFusionMode
- LLVM.General.Target.Options: compressDebugSections :: Options -> Bool
- LLVM.General.Target.Options: disableIntegratedAssembler :: Options -> Bool
- LLVM.General.Target.Options: disableTailCalls :: Options -> Bool
- LLVM.General.Target.Options: enableFastInstructionSelection :: Options -> Bool
- LLVM.General.Target.Options: floatABIType :: Options -> FloatABI
- LLVM.General.Target.Options: guaranteedTailCallOptimization :: Options -> Bool
- LLVM.General.Target.Options: honorSignDependentRoundingFloatingPointMathOption :: Options -> Bool
- LLVM.General.Target.Options: instance Bounded FloatABI
- LLVM.General.Target.Options: instance Bounded FloatingPointOperationFusionMode
- LLVM.General.Target.Options: instance Data FloatABI
- LLVM.General.Target.Options: instance Data FloatingPointOperationFusionMode
- LLVM.General.Target.Options: instance Enum FloatABI
- LLVM.General.Target.Options: instance Enum FloatingPointOperationFusionMode
- LLVM.General.Target.Options: instance Eq FloatABI
- LLVM.General.Target.Options: instance Eq FloatingPointOperationFusionMode
- LLVM.General.Target.Options: instance Eq Options
- LLVM.General.Target.Options: instance Ord FloatABI
- LLVM.General.Target.Options: instance Ord FloatingPointOperationFusionMode
- LLVM.General.Target.Options: instance Ord Options
- LLVM.General.Target.Options: instance Read FloatABI
- LLVM.General.Target.Options: instance Read FloatingPointOperationFusionMode
- LLVM.General.Target.Options: instance Read Options
- LLVM.General.Target.Options: instance Show FloatABI
- LLVM.General.Target.Options: instance Show FloatingPointOperationFusionMode
- LLVM.General.Target.Options: instance Show Options
- LLVM.General.Target.Options: instance Typeable FloatABI
- LLVM.General.Target.Options: instance Typeable FloatingPointOperationFusionMode
- LLVM.General.Target.Options: jITEmitDebugInfo :: Options -> Bool
- LLVM.General.Target.Options: jITEmitDebugInfoToDisk :: Options -> Bool
- LLVM.General.Target.Options: lessPreciseFloatingPointMultiplyAddOption :: Options -> Bool
- LLVM.General.Target.Options: noFramePointerElimination :: Options -> Bool
- LLVM.General.Target.Options: noInfinitiesFloatingPointMath :: Options -> Bool
- LLVM.General.Target.Options: noNaNsFloatingPointMath :: Options -> Bool
- LLVM.General.Target.Options: noZerosInBSS :: Options -> Bool
- LLVM.General.Target.Options: positionIndependentExecutable :: Options -> Bool
- LLVM.General.Target.Options: printMachineCode :: Options -> Bool
- LLVM.General.Target.Options: stackAlignmentOverride :: Options -> Word32
- LLVM.General.Target.Options: trapFunctionName :: Options -> String
- LLVM.General.Target.Options: trapUnreachable :: Options -> Bool
- LLVM.General.Target.Options: unsafeFloatingPointMath :: Options -> Bool
- LLVM.General.Target.Options: useInitArray :: Options -> Bool
- LLVM.General.Target.Options: useSoftFloat :: Options -> Bool
- LLVM.General.Transforms: alignedOnly :: Pass -> Bool
- LLVM.General.Transforms: allowPartial :: Pass -> Maybe Bool
- LLVM.General.Transforms: alwaysVectorize :: Pass -> Bool
- LLVM.General.Transforms: arrayElementThreshold :: Pass -> Maybe Word
- LLVM.General.Transforms: count :: Pass -> Maybe Word
- LLVM.General.Transforms: directory :: Pass -> Maybe FilePath
- LLVM.General.Transforms: emitData :: Pass -> Bool
- LLVM.General.Transforms: emitNotes :: Pass -> Bool
- LLVM.General.Transforms: exportList :: Pass -> [String]
- LLVM.General.Transforms: fastDependencyAnalysis :: Pass -> Bool
- LLVM.General.Transforms: fileName :: Pass -> Maybe FilePath
- LLVM.General.Transforms: functionInliningThreshold :: Pass -> Word
- LLVM.General.Transforms: functionNamesInData :: Pass -> Bool
- LLVM.General.Transforms: hideDebugIntrinsics :: Pass -> Bool
- LLVM.General.Transforms: hideDebugMetadata :: Pass -> Bool
- LLVM.General.Transforms: insertLifetime :: Pass -> Bool
- LLVM.General.Transforms: instance Data GCOVVersion
- LLVM.General.Transforms: instance Data Pass
- LLVM.General.Transforms: instance Eq GCOVVersion
- LLVM.General.Transforms: instance Eq Pass
- LLVM.General.Transforms: instance Ord GCOVVersion
- LLVM.General.Transforms: instance Ord Pass
- LLVM.General.Transforms: instance Read GCOVVersion
- LLVM.General.Transforms: instance Read Pass
- LLVM.General.Transforms: instance Show GCOVVersion
- LLVM.General.Transforms: instance Show Pass
- LLVM.General.Transforms: instance Typeable GCOVVersion
- LLVM.General.Transforms: instance Typeable Pass
- LLVM.General.Transforms: loopUnrollThreshold :: Pass -> Maybe Word
- LLVM.General.Transforms: maxCandidatePairsForCycleCheck :: Pass -> Word
- LLVM.General.Transforms: maxInstructions :: Pass -> Word
- LLVM.General.Transforms: maxIterations :: Pass -> Word
- LLVM.General.Transforms: noLoads :: Pass -> Bool
- LLVM.General.Transforms: noMemoryOperationBoost :: Pass -> Bool
- LLVM.General.Transforms: noRedZone :: Pass -> Bool
- LLVM.General.Transforms: noUnrolling :: Pass -> Bool
- LLVM.General.Transforms: oldScalarReplacementOfAggregatesThreshold :: Pass -> Maybe Word
- LLVM.General.Transforms: onlyDebugInfo :: Pass -> Bool
- LLVM.General.Transforms: optimizeForSize :: Pass -> Bool
- LLVM.General.Transforms: powerOfTwoLengthsOnly :: Pass -> Bool
- LLVM.General.Transforms: requiredChainDepth :: Pass -> Word
- LLVM.General.Transforms: requiresDominatorTree :: Pass -> Bool
- LLVM.General.Transforms: scalarLoadThreshold :: Pass -> Maybe Word
- LLVM.General.Transforms: searchLimit :: Pass -> Word
- LLVM.General.Transforms: splatBreaksChain :: Pass -> Bool
- LLVM.General.Transforms: structMemberThreshold :: Pass -> Maybe Word
- LLVM.General.Transforms: trackOrigins :: Pass -> Bool
- LLVM.General.Transforms: useCfgChecksum :: Pass -> Bool
- LLVM.General.Transforms: useDominatorTree :: Pass -> Bool
- LLVM.General.Transforms: vectorBits :: Pass -> Word
- LLVM.General.Transforms: vectorizeBools :: Pass -> Bool
- LLVM.General.Transforms: vectorizeCasts :: Pass -> Bool
- LLVM.General.Transforms: vectorizeCmp :: Pass -> Bool
- LLVM.General.Transforms: vectorizeFloats :: Pass -> Bool
- LLVM.General.Transforms: vectorizeFusedMultiplyAdd :: Pass -> Bool
- LLVM.General.Transforms: vectorizeGetElementPtr :: Pass -> Bool
- LLVM.General.Transforms: vectorizeInts :: Pass -> Bool
- LLVM.General.Transforms: vectorizeMath :: Pass -> Bool
- LLVM.General.Transforms: vectorizeMemoryOperations :: Pass -> Bool
- LLVM.General.Transforms: vectorizePointers :: Pass -> Bool
- LLVM.General.Transforms: vectorizeSelect :: Pass -> Bool
- LLVM.General.Transforms: version :: Pass -> GCOVVersion
+ LLVM.General.CodeGenOpt: instance Data.Data.Data LLVM.General.CodeGenOpt.Level
+ LLVM.General.CodeGenOpt: instance GHC.Classes.Eq LLVM.General.CodeGenOpt.Level
+ LLVM.General.CodeGenOpt: instance GHC.Classes.Ord LLVM.General.CodeGenOpt.Level
+ LLVM.General.CodeGenOpt: instance GHC.Read.Read LLVM.General.CodeGenOpt.Level
+ LLVM.General.CodeGenOpt: instance GHC.Show.Show LLVM.General.CodeGenOpt.Level
+ LLVM.General.CodeModel: instance Data.Data.Data LLVM.General.CodeModel.Model
+ LLVM.General.CodeModel: instance GHC.Classes.Eq LLVM.General.CodeModel.Model
+ LLVM.General.CodeModel: instance GHC.Read.Read LLVM.General.CodeModel.Model
+ LLVM.General.CodeModel: instance GHC.Show.Show LLVM.General.CodeModel.Model
+ LLVM.General.Diagnostic: [columnNumber] :: Diagnostic -> Int
+ LLVM.General.Diagnostic: [diagnosticKind] :: Diagnostic -> DiagnosticKind
+ LLVM.General.Diagnostic: [filename] :: Diagnostic -> String
+ LLVM.General.Diagnostic: [lineContents] :: Diagnostic -> String
+ LLVM.General.Diagnostic: [lineNumber] :: Diagnostic -> Int
+ LLVM.General.Diagnostic: [message] :: Diagnostic -> String
+ LLVM.General.Diagnostic: instance Data.Data.Data LLVM.General.Diagnostic.DiagnosticKind
+ LLVM.General.Diagnostic: instance GHC.Classes.Eq LLVM.General.Diagnostic.Diagnostic
+ LLVM.General.Diagnostic: instance GHC.Classes.Eq LLVM.General.Diagnostic.DiagnosticKind
+ LLVM.General.Diagnostic: instance GHC.Classes.Ord LLVM.General.Diagnostic.Diagnostic
+ LLVM.General.Diagnostic: instance GHC.Classes.Ord LLVM.General.Diagnostic.DiagnosticKind
+ LLVM.General.Diagnostic: instance GHC.Read.Read LLVM.General.Diagnostic.Diagnostic
+ LLVM.General.Diagnostic: instance GHC.Read.Read LLVM.General.Diagnostic.DiagnosticKind
+ LLVM.General.Diagnostic: instance GHC.Show.Show LLVM.General.Diagnostic.Diagnostic
+ LLVM.General.Diagnostic: instance GHC.Show.Show LLVM.General.Diagnostic.DiagnosticKind
+ LLVM.General.PassManager: [dataLayout] :: PassSetSpec -> Maybe DataLayout
+ LLVM.General.PassManager: [loopVectorize] :: PassSetSpec -> Maybe Bool
+ LLVM.General.PassManager: [optLevel] :: PassSetSpec -> Maybe Word
+ LLVM.General.PassManager: [simplifyLibCalls] :: PassSetSpec -> Maybe Bool
+ LLVM.General.PassManager: [sizeLevel] :: PassSetSpec -> Maybe Word
+ LLVM.General.PassManager: [superwordLevelParallelismVectorize] :: PassSetSpec -> Maybe Bool
+ LLVM.General.PassManager: [targetLibraryInfo] :: PassSetSpec -> Maybe TargetLibraryInfo
+ LLVM.General.PassManager: [targetMachine] :: PassSetSpec -> Maybe TargetMachine
+ LLVM.General.PassManager: [transforms] :: PassSetSpec -> [Pass]
+ LLVM.General.PassManager: [unitAtATime] :: PassSetSpec -> Maybe Bool
+ LLVM.General.PassManager: [useInlinerWithThreshold] :: PassSetSpec -> Maybe Word
+ LLVM.General.Relocation: instance Data.Data.Data LLVM.General.Relocation.Model
+ LLVM.General.Relocation: instance GHC.Classes.Eq LLVM.General.Relocation.Model
+ LLVM.General.Relocation: instance GHC.Read.Read LLVM.General.Relocation.Model
+ LLVM.General.Relocation: instance GHC.Show.Show LLVM.General.Relocation.Model
+ LLVM.General.Target.Options: [allowFloatingPointOperationFusion] :: Options -> FloatingPointOperationFusionMode
+ LLVM.General.Target.Options: [compressDebugSections] :: Options -> Bool
+ LLVM.General.Target.Options: [disableIntegratedAssembler] :: Options -> Bool
+ LLVM.General.Target.Options: [disableTailCalls] :: Options -> Bool
+ LLVM.General.Target.Options: [enableFastInstructionSelection] :: Options -> Bool
+ LLVM.General.Target.Options: [floatABIType] :: Options -> FloatABI
+ LLVM.General.Target.Options: [guaranteedTailCallOptimization] :: Options -> Bool
+ LLVM.General.Target.Options: [honorSignDependentRoundingFloatingPointMathOption] :: Options -> Bool
+ LLVM.General.Target.Options: [jITEmitDebugInfoToDisk] :: Options -> Bool
+ LLVM.General.Target.Options: [jITEmitDebugInfo] :: Options -> Bool
+ LLVM.General.Target.Options: [lessPreciseFloatingPointMultiplyAddOption] :: Options -> Bool
+ LLVM.General.Target.Options: [noFramePointerElimination] :: Options -> Bool
+ LLVM.General.Target.Options: [noInfinitiesFloatingPointMath] :: Options -> Bool
+ LLVM.General.Target.Options: [noNaNsFloatingPointMath] :: Options -> Bool
+ LLVM.General.Target.Options: [noZerosInBSS] :: Options -> Bool
+ LLVM.General.Target.Options: [positionIndependentExecutable] :: Options -> Bool
+ LLVM.General.Target.Options: [printMachineCode] :: Options -> Bool
+ LLVM.General.Target.Options: [stackAlignmentOverride] :: Options -> Word32
+ LLVM.General.Target.Options: [trapFunctionName] :: Options -> String
+ LLVM.General.Target.Options: [trapUnreachable] :: Options -> Bool
+ LLVM.General.Target.Options: [unsafeFloatingPointMath] :: Options -> Bool
+ LLVM.General.Target.Options: [useInitArray] :: Options -> Bool
+ LLVM.General.Target.Options: [useSoftFloat] :: Options -> Bool
+ LLVM.General.Target.Options: instance Data.Data.Data LLVM.General.Target.Options.FloatABI
+ LLVM.General.Target.Options: instance Data.Data.Data LLVM.General.Target.Options.FloatingPointOperationFusionMode
+ LLVM.General.Target.Options: instance GHC.Classes.Eq LLVM.General.Target.Options.FloatABI
+ LLVM.General.Target.Options: instance GHC.Classes.Eq LLVM.General.Target.Options.FloatingPointOperationFusionMode
+ LLVM.General.Target.Options: instance GHC.Classes.Eq LLVM.General.Target.Options.Options
+ LLVM.General.Target.Options: instance GHC.Classes.Ord LLVM.General.Target.Options.FloatABI
+ LLVM.General.Target.Options: instance GHC.Classes.Ord LLVM.General.Target.Options.FloatingPointOperationFusionMode
+ LLVM.General.Target.Options: instance GHC.Classes.Ord LLVM.General.Target.Options.Options
+ LLVM.General.Target.Options: instance GHC.Enum.Bounded LLVM.General.Target.Options.FloatABI
+ LLVM.General.Target.Options: instance GHC.Enum.Bounded LLVM.General.Target.Options.FloatingPointOperationFusionMode
+ LLVM.General.Target.Options: instance GHC.Enum.Enum LLVM.General.Target.Options.FloatABI
+ LLVM.General.Target.Options: instance GHC.Enum.Enum LLVM.General.Target.Options.FloatingPointOperationFusionMode
+ LLVM.General.Target.Options: instance GHC.Read.Read LLVM.General.Target.Options.FloatABI
+ LLVM.General.Target.Options: instance GHC.Read.Read LLVM.General.Target.Options.FloatingPointOperationFusionMode
+ LLVM.General.Target.Options: instance GHC.Read.Read LLVM.General.Target.Options.Options
+ LLVM.General.Target.Options: instance GHC.Show.Show LLVM.General.Target.Options.FloatABI
+ LLVM.General.Target.Options: instance GHC.Show.Show LLVM.General.Target.Options.FloatingPointOperationFusionMode
+ LLVM.General.Target.Options: instance GHC.Show.Show LLVM.General.Target.Options.Options
+ LLVM.General.Transforms: [alignedOnly] :: Pass -> Bool
+ LLVM.General.Transforms: [allowPartial] :: Pass -> Maybe Bool
+ LLVM.General.Transforms: [alwaysVectorize] :: Pass -> Bool
+ LLVM.General.Transforms: [arrayElementThreshold] :: Pass -> Maybe Word
+ LLVM.General.Transforms: [count] :: Pass -> Maybe Word
+ LLVM.General.Transforms: [directory] :: Pass -> Maybe FilePath
+ LLVM.General.Transforms: [emitData] :: Pass -> Bool
+ LLVM.General.Transforms: [emitNotes] :: Pass -> Bool
+ LLVM.General.Transforms: [exportList] :: Pass -> [String]
+ LLVM.General.Transforms: [fastDependencyAnalysis] :: Pass -> Bool
+ LLVM.General.Transforms: [fileName] :: Pass -> Maybe FilePath
+ LLVM.General.Transforms: [functionInliningThreshold] :: Pass -> Word
+ LLVM.General.Transforms: [functionNamesInData] :: Pass -> Bool
+ LLVM.General.Transforms: [hideDebugIntrinsics] :: Pass -> Bool
+ LLVM.General.Transforms: [hideDebugMetadata] :: Pass -> Bool
+ LLVM.General.Transforms: [insertLifetime] :: Pass -> Bool
+ LLVM.General.Transforms: [loopUnrollThreshold] :: Pass -> Maybe Word
+ LLVM.General.Transforms: [maxCandidatePairsForCycleCheck] :: Pass -> Word
+ LLVM.General.Transforms: [maxInstructions] :: Pass -> Word
+ LLVM.General.Transforms: [maxIterations] :: Pass -> Word
+ LLVM.General.Transforms: [noLoads] :: Pass -> Bool
+ LLVM.General.Transforms: [noMemoryOperationBoost] :: Pass -> Bool
+ LLVM.General.Transforms: [noRedZone] :: Pass -> Bool
+ LLVM.General.Transforms: [noUnrolling] :: Pass -> Bool
+ LLVM.General.Transforms: [oldScalarReplacementOfAggregatesThreshold] :: Pass -> Maybe Word
+ LLVM.General.Transforms: [onlyDebugInfo] :: Pass -> Bool
+ LLVM.General.Transforms: [optimizeForSize] :: Pass -> Bool
+ LLVM.General.Transforms: [powerOfTwoLengthsOnly] :: Pass -> Bool
+ LLVM.General.Transforms: [requiredChainDepth] :: Pass -> Word
+ LLVM.General.Transforms: [requiresDominatorTree] :: Pass -> Bool
+ LLVM.General.Transforms: [scalarLoadThreshold] :: Pass -> Maybe Word
+ LLVM.General.Transforms: [searchLimit] :: Pass -> Word
+ LLVM.General.Transforms: [splatBreaksChain] :: Pass -> Bool
+ LLVM.General.Transforms: [structMemberThreshold] :: Pass -> Maybe Word
+ LLVM.General.Transforms: [trackOrigins] :: Pass -> Bool
+ LLVM.General.Transforms: [useCfgChecksum] :: Pass -> Bool
+ LLVM.General.Transforms: [useDominatorTree] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorBits] :: Pass -> Word
+ LLVM.General.Transforms: [vectorizeBools] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizeCasts] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizeCmp] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizeFloats] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizeFusedMultiplyAdd] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizeGetElementPtr] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizeInts] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizeMath] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizeMemoryOperations] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizePointers] :: Pass -> Bool
+ LLVM.General.Transforms: [vectorizeSelect] :: Pass -> Bool
+ LLVM.General.Transforms: [version] :: Pass -> GCOVVersion
+ LLVM.General.Transforms: instance Data.Data.Data LLVM.General.Transforms.GCOVVersion
+ LLVM.General.Transforms: instance Data.Data.Data LLVM.General.Transforms.Pass
+ LLVM.General.Transforms: instance GHC.Classes.Eq LLVM.General.Transforms.GCOVVersion
+ LLVM.General.Transforms: instance GHC.Classes.Eq LLVM.General.Transforms.Pass
+ LLVM.General.Transforms: instance GHC.Classes.Ord LLVM.General.Transforms.GCOVVersion
+ LLVM.General.Transforms: instance GHC.Classes.Ord LLVM.General.Transforms.Pass
+ LLVM.General.Transforms: instance GHC.Read.Read LLVM.General.Transforms.GCOVVersion
+ LLVM.General.Transforms: instance GHC.Read.Read LLVM.General.Transforms.Pass
+ LLVM.General.Transforms: instance GHC.Show.Show LLVM.General.Transforms.GCOVVersion
+ LLVM.General.Transforms: instance GHC.Show.Show LLVM.General.Transforms.Pass
Files
- Setup.hs +42/−28
- llvm-general.cabal +9/−7
Setup.hs view
@@ -8,6 +8,7 @@ import Data.Monoid import Data.Char import Distribution.Simple+import Distribution.Simple.PreProcess import Distribution.Simple.Program import Distribution.Simple.Setup hiding (Flag) import Distribution.Simple.LocalBuildInfo@@ -63,6 +64,7 @@ f packageDescription localBuildInfo userHooks testFlags hook args packageDescription localBuildInfo userHooks testFlags +llvmProgram :: Program llvmProgram = (simpleProgram "llvm-config") { programFindLocation = programSearch (programFindLocation . simpleProgram), programFindVersion = @@ -74,44 +76,49 @@ \v p -> findProgramVersion "--version" (svnToTag . trim) v p } -main = do- let (ldLibraryPathVar, ldLibraryPathSep) = +getLLVMConfig :: ConfigFlags -> IO (String -> IO String)+getLLVMConfig configFlags = do+ let verbosity = fromFlag $ configVerbosity configFlags+ (program, _, _) <- requireProgramVersion verbosity llvmProgram+ (withinVersion llvmVersion)+ (configPrograms configFlags)+ return $ getProgramOutput verbosity program . return++addToLdLibraryPath :: String -> IO ()+addToLdLibraryPath path = do+ let (ldLibraryPathVar, ldLibraryPathSep) = case buildOS of OSX -> ("DYLD_LIBRARY_PATH",":") _ -> ("LD_LIBRARY_PATH",":")- addToLdLibraryPath s = do- v <- try $ getEnv ldLibraryPathVar :: IO (Either SomeException String)- setEnv ldLibraryPathVar (s ++ either (const "") (ldLibraryPathSep ++) v)- getLLVMConfig configFlags = do- let verbosity = fromFlag $ configVerbosity configFlags- (program, _, _) <- requireProgramVersion verbosity llvmProgram- (withinVersion llvmVersion)- (configPrograms configFlags)- let llvmConfig :: [String] -> IO String- llvmConfig = getProgramOutput verbosity program- return llvmConfig- addLLVMToLdLibraryPath configFlags = do- llvmConfig <- getLLVMConfig configFlags- [libDir] <- liftM lines $ llvmConfig ["--libdir"]- addToLdLibraryPath libDir- - defaultMainWithHooks simpleUserHooks {+ v <- try $ getEnv ldLibraryPathVar :: IO (Either SomeException String)+ setEnv ldLibraryPathVar (path ++ either (const "") (ldLibraryPathSep ++) v)++addLLVMToLdLibraryPath :: ConfigFlags -> IO ()+addLLVMToLdLibraryPath configFlags = do+ llvmConfig <- getLLVMConfig configFlags+ [libDir] <- liftM lines $ llvmConfig "--libdir"+ addToLdLibraryPath libDir+ +main = do+ let origUserHooks = simpleUserHooks+ + defaultMainWithHooks origUserHooks { hookedPrograms = [ llvmProgram ], confHook = \(genericPackageDescription, hookedBuildInfo) configFlags -> do llvmConfig <- getLLVMConfig configFlags llvmCppFlags <- do- l <- llvmConfig ["--cppflags"]+ l <- llvmConfig "--cppflags" return $ (filter ("-D" `isPrefixOf`) $ words l) \\ (map ("-D"++) uncheckedHsFFIDefines)- includeDirs <- liftM lines $ llvmConfig ["--includedir"]- libDirs@[libDir] <- liftM lines $ llvmConfig ["--libdir"]- [llvmVersion] <- liftM lines $ llvmConfig ["--version"]+ includeDirs <- liftM lines $ llvmConfig "--includedir"+ libDirs@[libDir] <- liftM lines $ llvmConfig "--libdir"+ [llvmVersion] <- liftM lines $ llvmConfig "--version" let sharedLib = case llvmVersion of "3.2" -> "LLVM-3.2svn" x -> "LLVM-" ++ x- staticLibs <- liftM (map (fromJust . stripPrefix "-l") . words) $ llvmConfig ["--libs"]- systemLibs <- liftM (map (fromJust . stripPrefix "-l") . words) $ llvmConfig ["--system-libs"]+ staticLibs <- liftM (map (fromJust . stripPrefix "-l") . words) $ llvmConfig "--libs"+ systemLibs <- liftM (map (fromJust . stripPrefix "-l") . words) $ llvmConfig "--system-libs" let genericPackageDescription' = genericPackageDescription { condLibrary = do@@ -136,10 +143,17 @@ addLLVMToLdLibraryPath configFlags' confHook simpleUserHooks (genericPackageDescription', hookedBuildInfo) configFlags', + hookedPreProcessors =+ let origHookedPreprocessors = hookedPreProcessors origUserHooks+ newHsc buildInfo localBuildInfo =+ maybe ppHsc2hs id (lookup "hsc" origHookedPreprocessors) buildInfo' localBuildInfo+ where buildInfo' = buildInfo { ccOptions = ccOptions buildInfo \\ ["-std=c++11"] }+ in [("hsc", newHsc)] ++ origHookedPreprocessors,+ buildHook = \packageDescription localBuildInfo userHooks buildFlags -> do- addLLVMToLdLibraryPath (configFlags localBuildInfo)- buildHook simpleUserHooks packageDescription localBuildInfo userHooks buildFlags,+ addLLVMToLdLibraryPath (configFlags localBuildInfo)+ buildHook origUserHooks packageDescription localBuildInfo userHooks buildFlags, testHook = preHookOld (\_ localBuildInfo _ _ -> addLLVMToLdLibraryPath (configFlags localBuildInfo))- (testHook simpleUserHooks)+ (testHook origUserHooks) }
llvm-general.cabal view
@@ -1,10 +1,12 @@ name: llvm-general-version: 3.5.1.0+version: 3.5.1.1 license: BSD3 license-file: LICENSE author: Benjamin S.Scarlet <fgthb0@greynode.net> maintainer: Benjamin S. Scarlet <fgthb0@greynode.net> copyright: (c) 2013 Benjamin S. Scarlet and Google Inc.+homepage: http://github.com/bscarlet/llvm-general/+bug-reports: http://github.com/bscarlet/llvm-general/issues build-type: Custom stability: experimental cabal-version: >= 1.8@@ -12,9 +14,9 @@ synopsis: General purpose LLVM bindings description: llvm-general 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.+ 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. extra-source-files: src/LLVM/General/Internal/FFI/Analysis.h src/LLVM/General/Internal/FFI/Attribute.h@@ -41,7 +43,7 @@ type: git location: git://github.com/bscarlet/llvm-general.git branch: llvm-3.5- tag: v3.5.1.0+ tag: v3.5.1.1 flag shared-llvm description: link against llvm shared rather than static library@@ -59,7 +61,7 @@ base >= 4.6 && < 5, utf8-string >= 0.3.7, bytestring >= 0.9.1.10,- transformers >= 0.3.0.0,+ transformers >= 0.3.0.0 && < 0.5, transformers-compat, mtl >= 2.1.3, template-haskell >= 2.5.0.0,@@ -211,7 +213,7 @@ HUnit >= 1.2.4.2, test-framework-quickcheck2 >= 0.3.0.1, QuickCheck >= 2.5.1.1,- llvm-general == 3.5.1.0,+ llvm-general == 3.5.1.1, llvm-general-pure == 3.5.0.0, containers >= 0.4.2.1, mtl >= 2.1,