llvm-general-3.4.5.0: General purpose LLVM bindings

Safe HaskellNone
LanguageHaskell98

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.

Synopsis

Documentation

lookupTarget Source

Arguments

:: 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 CPUFeature Source

e.g. an instruction set extension

Constructors

CPUFeature String 

withTargetOptions :: (TargetOptions -> IO a) -> IO a Source

bracket creation and destruction of a TargetOptions object

peekTargetOptions :: TargetOptions -> IO Options Source

get all target options

pokeTargetOptions :: Options -> TargetOptions -> IO () Source

set all target options

withTargetMachine Source

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) -> ExceptT String IO a Source

Bracket creation and destruction of a TargetMachine configured for the host

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 (Set CPUFeature) Source

a space-separated list of LLVM feature names supported by the host CPU

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.

initializeAllTargets :: IO () Source

Initialize all targets so they can be found by lookupTarget

getLibraryFunctionName :: TargetLibraryInfo -> LibraryFunction -> IO String Source

Get a the current name to be emitted for a LibraryFunction

setLibraryFunctionAvailableWithName Source

Arguments

:: 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

Arguments

:: String

triple

-> (TargetLibraryInfo -> IO a) 
-> IO a 

look up information about the library functions available on a given platform