Safe Haskell | None |
---|
LLVM.General.Target
Description
A Target describes that for which code may be intended. Targets are used both during actual | lowering of LLVM IR to machine code and by some optimization passes which use the target to | judge costs.
- lookupTarget :: Maybe String -> String -> ErrorT String IO (Target, String)
- data TargetOptions
- data TargetMachine
- newtype CPUFeature = CPUFeature String
- withTargetOptions :: (TargetOptions -> IO a) -> IO a
- peekTargetOptions :: TargetOptions -> IO Options
- pokeTargetOptions :: Options -> TargetOptions -> IO ()
- withTargetMachine :: Target -> String -> String -> Set CPUFeature -> TargetOptions -> Model -> Model -> Level -> (TargetMachine -> IO a) -> IO a
- withDefaultTargetMachine :: (TargetMachine -> IO a) -> ErrorT String IO a
- getTargetLowering :: TargetMachine -> IO TargetLowering
- getDefaultTargetTriple :: IO String
- getProcessTargetTriple :: IO String
- getHostCPUName :: IO String
- getHostCPUFeatures :: IO (Set CPUFeature)
- getTargetMachineDataLayout :: TargetMachine -> IO DataLayout
- initializeNativeTarget :: IO ()
- initializeAllTargets :: IO ()
Documentation
Arguments
:: Maybe String | arch |
-> String | "triple" - e.g. x86_64-unknown-linux-gnu |
-> ErrorT 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.
withTargetOptions :: (TargetOptions -> IO a) -> IO a
bracket creation and destruction of a TargetOptions
object
peekTargetOptions :: TargetOptions -> IO Options
get all target options
pokeTargetOptions :: Options -> TargetOptions -> IO ()
set all target options
Arguments
:: Target | |
-> String | triple |
-> String | cpu |
-> Set CPUFeature | features |
-> TargetOptions | |
-> Model | |
-> Model | |
-> Level | |
-> (TargetMachine -> IO a) | |
-> IO a |
bracket creation and destruction of a TargetMachine
withDefaultTargetMachine :: (TargetMachine -> IO a) -> ErrorT String IO a
Bracket creation and destruction of a TargetMachine configured for the host
getTargetLowering :: TargetMachine -> IO TargetLowering
get the TargetLowering
of a TargetMachine
getDefaultTargetTriple :: IO String
the default target triple that LLVM has been configured to produce code for
getProcessTargetTriple :: IO String
a target triple suitable for loading code into the current process
the LLVM name for the host CPU
getHostCPUFeatures :: IO (Set CPUFeature)
a space-separated list of LLVM feature names supported by the host CPU
getTargetMachineDataLayout :: TargetMachine -> IO DataLayout
DataLayout
to use for the given TargetMachine
initializeNativeTarget :: IO ()
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.
initializeAllTargets :: IO ()
Initialize all targets so they can be found by lookupTarget