Safe Haskell | None |
---|---|
Language | Haskell98 |
- newtype Target = Target (Ptr Target)
- newtype CPUFeature = CPUFeature String
- lookupTarget :: Maybe String -> String -> ExceptT String IO (Target, String)
- newtype TargetOptions = TargetOptions (Ptr TargetOptions)
- withTargetOptions :: (TargetOptions -> IO a) -> IO a
- pokeTargetOptions :: Options -> TargetOptions -> IO ()
- peekTargetOptions :: TargetOptions -> IO Options
- newtype TargetMachine = TargetMachine (Ptr TargetMachine)
- withTargetMachine :: Target -> String -> String -> Map CPUFeature Bool -> TargetOptions -> Model -> Model -> Level -> (TargetMachine -> IO a) -> IO a
- newtype TargetLowering = TargetLowering (Ptr TargetLowering)
- getTargetLowering :: TargetMachine -> IO TargetLowering
- initializeNativeTarget :: IO ()
- getTargetMachineTriple :: TargetMachine -> IO String
- getDefaultTargetTriple :: IO String
- getProcessTargetTriple :: IO String
- getHostCPUName :: IO String
- getHostCPUFeatures :: IO (Map CPUFeature Bool)
- getTargetMachineDataLayout :: TargetMachine -> IO DataLayout
- initializeAllTargets :: IO ()
- withHostTargetMachine :: (TargetMachine -> IO a) -> ExceptT String IO a
- newtype TargetLibraryInfo = TargetLibraryInfo (Ptr TargetLibraryInfo)
- getLibraryFunction :: TargetLibraryInfo -> String -> IO (Maybe LibraryFunction)
- getLibraryFunctionName :: TargetLibraryInfo -> LibraryFunction -> IO String
- setLibraryFunctionAvailableWithName :: TargetLibraryInfo -> LibraryFunction -> String -> IO ()
- withTargetLibraryInfo :: String -> (TargetLibraryInfo -> IO a) -> IO a
Documentation
newtype CPUFeature Source #
e.g. an instruction set extension
:: Maybe String | arch |
-> String | "triple" - e.g. x86_64-unknown-linux-gnu |
-> ExceptT String IO (Target, String) |
Find a Target
given an architecture and/or a "triple".
| http://llvm.org/doxygen/structllvm_1_1TargetRegistry.html#a3105b45e546c9cc3cf78d0f2ec18ad89
| Be sure to run either initializeAllTargets
or initializeNativeTarget
before expecting this to succeed, depending on what target(s) you want to use.
newtype TargetOptions Source #
withTargetOptions :: (TargetOptions -> IO a) -> IO a Source #
bracket creation and destruction of a TargetOptions
object
pokeTargetOptions :: Options -> TargetOptions -> IO () Source #
set all target options
peekTargetOptions :: TargetOptions -> IO Options Source #
get all target options
newtype TargetMachine Source #
:: Target | |
-> String | triple |
-> String | cpu |
-> Map CPUFeature Bool | features |
-> TargetOptions | |
-> Model | |
-> Model | |
-> Level | |
-> (TargetMachine -> IO a) | |
-> IO a |
bracket creation and destruction of a TargetMachine
newtype TargetLowering Source #
getTargetLowering :: TargetMachine -> IO TargetLowering Source #
get the TargetLowering
of a TargetMachine
initializeNativeTarget :: IO () Source #
Initialize the native target. This function is called automatically in these Haskell bindings
when creating an ExecutionEngine
which will require it, and so it should
not be necessary to call it separately.
getTargetMachineTriple :: TargetMachine -> IO String Source #
the target triple corresponding to the target machine
getDefaultTargetTriple :: IO String Source #
the default target triple that LLVM has been configured to produce code for
getProcessTargetTriple :: IO String Source #
a target triple suitable for loading code into the current process
getHostCPUName :: IO String Source #
the LLVM name for the host CPU
getHostCPUFeatures :: IO (Map CPUFeature Bool) Source #
a space-separated list of LLVM feature names supported by the host CPU
getTargetMachineDataLayout :: TargetMachine -> IO DataLayout Source #
DataLayout
to use for the given TargetMachine
initializeAllTargets :: IO () Source #
Initialize all targets so they can be found by lookupTarget
withHostTargetMachine :: (TargetMachine -> IO a) -> ExceptT String IO a Source #
Bracket creation and destruction of a TargetMachine
configured for the host
newtype TargetLibraryInfo Source #
getLibraryFunction :: TargetLibraryInfo -> String -> IO (Maybe LibraryFunction) Source #
Look up a LibraryFunction
by its standard name
getLibraryFunctionName :: TargetLibraryInfo -> LibraryFunction -> IO String Source #
Get a the current name to be emitted for a LibraryFunction
setLibraryFunctionAvailableWithName Source #
:: TargetLibraryInfo | |
-> LibraryFunction | |
-> String | The function name to be emitted |
-> IO () |
Set the name of the function on the target platform that corresponds to funcName
withTargetLibraryInfo Source #
:: String | triple |
-> (TargetLibraryInfo -> IO a) | |
-> IO a |
look up information about the library functions available on a given platform
Orphan instances
Monad m0 => DecodeM m0 Model RelocModel Source # | |
Monad m0 => DecodeM m0 Model CodeModel Source # | |
Monad m0 => DecodeM m0 Level CodeGenOptLevel Source # | |
Monad m0 => DecodeM m0 FloatABI FloatABIType Source # | |
Monad m0 => DecodeM m0 FloatingPointOperationFusionMode FPOpFusionMode Source # | |
Monad m0 => EncodeM m0 Model RelocModel Source # | |
Monad m0 => EncodeM m0 Model CodeModel Source # | |
Monad m0 => EncodeM m0 Level CodeGenOptLevel Source # | |
Monad m0 => EncodeM m0 FloatABI FloatABIType Source # | |
Monad m0 => EncodeM m0 FloatingPointOperationFusionMode FPOpFusionMode Source # | |