LLVM  8.0.1
Typedefs | Enumerations | Functions
TargetMachine.h File Reference
#include "llvm-c/Target.h"
#include "llvm-c/Types.h"
Include dependency graph for TargetMachine.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef struct LLVMOpaqueTargetMachine * LLVMTargetMachineRef
 
typedef struct LLVMTarget * LLVMTargetRef
 

Enumerations

enum  LLVMCodeGenOptLevel { LLVMCodeGenLevelNone, LLVMCodeGenLevelLess, LLVMCodeGenLevelDefault, LLVMCodeGenLevelAggressive }
 
enum  LLVMRelocMode {
  LLVMRelocDefault, LLVMRelocStatic, LLVMRelocPIC, LLVMRelocDynamicNoPic,
  LLVMRelocROPI, LLVMRelocRWPI, LLVMRelocROPI_RWPI
}
 
enum  LLVMCodeModel {
  LLVMCodeModelDefault, LLVMCodeModelJITDefault, LLVMCodeModelTiny, LLVMCodeModelSmall,
  LLVMCodeModelKernel, LLVMCodeModelMedium, LLVMCodeModelLarge
}
 
enum  LLVMCodeGenFileType { LLVMAssemblyFile, LLVMObjectFile }
 

Functions

LLVMTargetRef LLVMGetFirstTarget (void)
 Returns the first llvm::Target in the registered targets list. More...
 
LLVMTargetRef LLVMGetNextTarget (LLVMTargetRef T)
 Returns the next llvm::Target given a previous one (or null if there's none) More...
 
LLVMTargetRef LLVMGetTargetFromName (const char *Name)
 Finds the target corresponding to the given name and stores it in T. More...
 
LLVMBool LLVMGetTargetFromTriple (const char *Triple, LLVMTargetRef *T, char **ErrorMessage)
 Finds the target corresponding to the given triple and stores it in T. More...
 
const charLLVMGetTargetName (LLVMTargetRef T)
 Returns the name of a target. More...
 
const charLLVMGetTargetDescription (LLVMTargetRef T)
 Returns the description of a target. More...
 
LLVMBool LLVMTargetHasJIT (LLVMTargetRef T)
 Returns if the target has a JIT. More...
 
LLVMBool LLVMTargetHasTargetMachine (LLVMTargetRef T)
 Returns if the target has a TargetMachine associated. More...
 
LLVMBool LLVMTargetHasAsmBackend (LLVMTargetRef T)
 Returns if the target as an ASM backend (required for emitting output) More...
 
LLVMTargetMachineRef LLVMCreateTargetMachine (LLVMTargetRef T, const char *Triple, const char *CPU, const char *Features, LLVMCodeGenOptLevel Level, LLVMRelocMode Reloc, LLVMCodeModel CodeModel)
 Creates a new llvm::TargetMachine. More...
 
void LLVMDisposeTargetMachine (LLVMTargetMachineRef T)
 Dispose the LLVMTargetMachineRef instance generated by LLVMCreateTargetMachine. More...
 
LLVMTargetRef LLVMGetTargetMachineTarget (LLVMTargetMachineRef T)
 Returns the Target used in a TargetMachine. More...
 
charLLVMGetTargetMachineTriple (LLVMTargetMachineRef T)
 Returns the triple used creating this target machine. More...
 
charLLVMGetTargetMachineCPU (LLVMTargetMachineRef T)
 Returns the cpu used creating this target machine. More...
 
charLLVMGetTargetMachineFeatureString (LLVMTargetMachineRef T)
 Returns the feature string used creating this target machine. More...
 
LLVMTargetDataRef LLVMCreateTargetDataLayout (LLVMTargetMachineRef T)
 Create a DataLayout based on the targetMachine. More...
 
void LLVMSetTargetMachineAsmVerbosity (LLVMTargetMachineRef T, LLVMBool VerboseAsm)
 Set the target machine's ASM verbosity. More...
 
LLVMBool LLVMTargetMachineEmitToFile (LLVMTargetMachineRef T, LLVMModuleRef M, char *Filename, LLVMCodeGenFileType codegen, char **ErrorMessage)
 Emits an asm or object file for the given module to the filename. More...
 
LLVMBool LLVMTargetMachineEmitToMemoryBuffer (LLVMTargetMachineRef T, LLVMModuleRef M, LLVMCodeGenFileType codegen, char **ErrorMessage, LLVMMemoryBufferRef *OutMemBuf)
 Compile the LLVM IR stored in M and store the result in OutMemBuf. More...
 
charLLVMGetDefaultTargetTriple (void)
 Get a triple for the host machine as a string. More...
 
charLLVMNormalizeTargetTriple (const char *triple)
 Normalize a target triple. More...
 
charLLVMGetHostCPUName (void)
 Get the host CPU as a string. More...
 
charLLVMGetHostCPUFeatures (void)
 Get the host CPU's features as a string. More...
 
void LLVMAddAnalysisPasses (LLVMTargetMachineRef T, LLVMPassManagerRef PM)
 Adds the target-specific analysis passes to the pass manager. More...
 

Typedef Documentation

◆ LLVMTargetMachineRef

typedef struct LLVMOpaqueTargetMachine* LLVMTargetMachineRef

Definition at line 28 of file TargetMachine.h.

◆ LLVMTargetRef

typedef struct LLVMTarget* LLVMTargetRef

Definition at line 29 of file TargetMachine.h.

Enumeration Type Documentation

◆ LLVMCodeGenFileType

Enumerator
LLVMAssemblyFile 
LLVMObjectFile 

Definition at line 58 of file TargetMachine.h.

◆ LLVMCodeGenOptLevel

Enumerator
LLVMCodeGenLevelNone 
LLVMCodeGenLevelLess 
LLVMCodeGenLevelDefault 
LLVMCodeGenLevelAggressive 

Definition at line 31 of file TargetMachine.h.

◆ LLVMCodeModel

Enumerator
LLVMCodeModelDefault 
LLVMCodeModelJITDefault 
LLVMCodeModelTiny 
LLVMCodeModelSmall 
LLVMCodeModelKernel 
LLVMCodeModelMedium 
LLVMCodeModelLarge 

Definition at line 48 of file TargetMachine.h.

◆ LLVMRelocMode

Enumerator
LLVMRelocDefault 
LLVMRelocStatic 
LLVMRelocPIC 
LLVMRelocDynamicNoPic 
LLVMRelocROPI 
LLVMRelocRWPI 
LLVMRelocROPI_RWPI 

Definition at line 38 of file TargetMachine.h.

Function Documentation

◆ LLVMAddAnalysisPasses()

void LLVMAddAnalysisPasses ( LLVMTargetMachineRef  T,
LLVMPassManagerRef  PM 
)

Adds the target-specific analysis passes to the pass manager.

Definition at line 269 of file TargetMachineC.cpp.

References llvm::createTargetTransformInfoWrapperPass(), and llvm::unwrap().

◆ LLVMCreateTargetDataLayout()

LLVMTargetDataRef LLVMCreateTargetDataLayout ( LLVMTargetMachineRef  T)

Create a DataLayout based on the targetMachine.

Definition at line 182 of file TargetMachineC.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMCreateTargetMachine()

LLVMTargetMachineRef LLVMCreateTargetMachine ( LLVMTargetRef  T,
const char Triple,
const char CPU,
const char Features,
LLVMCodeGenOptLevel  Level,
LLVMRelocMode  Reloc,
LLVMCodeModel  CodeModel 
)

◆ LLVMDisposeTargetMachine()

void LLVMDisposeTargetMachine ( LLVMTargetMachineRef  T)

Dispose the LLVMTargetMachineRef instance generated by LLVMCreateTargetMachine.

Definition at line 155 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMGetDefaultTargetTriple()

char* LLVMGetDefaultTargetTriple ( void  )

Get a triple for the host machine as a string.

The result needs to be disposed with LLVMDisposeMessage.

Definition at line 246 of file TargetMachineC.cpp.

References llvm::c_str(), and llvm::sys::getDefaultTargetTriple().

◆ LLVMGetFirstTarget()

LLVMTargetRef LLVMGetFirstTarget ( void  )

Returns the first llvm::Target in the registered targets list.

Definition at line 48 of file TargetMachineC.cpp.

References llvm::sys::path::begin(), llvm::sys::path::end(), llvm::TargetRegistry::targets(), and llvm::wrap().

◆ LLVMGetHostCPUFeatures()

char* LLVMGetHostCPUFeatures ( void  )

Get the host CPU's features as a string.

The result needs to be disposed with LLVMDisposeMessage.

Definition at line 258 of file TargetMachineC.cpp.

References llvm::SubtargetFeatures::AddFeature(), F(), Features, llvm::sys::getHostCPUFeatures(), and llvm::SubtargetFeatures::getString().

◆ LLVMGetHostCPUName()

char* LLVMGetHostCPUName ( void  )

Get the host CPU as a string.

The result needs to be disposed with LLVMDisposeMessage.

Definition at line 254 of file TargetMachineC.cpp.

References llvm::sys::getHostCPUName().

◆ LLVMGetNextTarget()

LLVMTargetRef LLVMGetNextTarget ( LLVMTargetRef  T)

Returns the next llvm::Target given a previous one (or null if there's none)

Definition at line 56 of file TargetMachineC.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMGetTargetDescription()

const char* LLVMGetTargetDescription ( LLVMTargetRef  T)

Returns the description of a target.

See llvm::Target::getDescription

Definition at line 87 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMGetTargetFromName()

LLVMTargetRef LLVMGetTargetFromName ( const char Name)

Finds the target corresponding to the given name and stores it in T.

Returns 0 on success.

Definition at line 60 of file TargetMachineC.cpp.

References llvm::find_if(), llvm::Target::getName(), I, Name, llvm::TargetRegistry::targets(), and llvm::wrap().

◆ LLVMGetTargetFromTriple()

LLVMBool LLVMGetTargetFromTriple ( const char Triple,
LLVMTargetRef T,
char **  ErrorMessage 
)

Finds the target corresponding to the given triple and stores it in T.

Returns 0 on success. Optionally returns any error in ErrorMessage. Use LLVMDisposeMessage to dispose the message.

Definition at line 67 of file TargetMachineC.cpp.

References llvm::TargetRegistry::lookupTarget(), and llvm::wrap().

◆ LLVMGetTargetMachineCPU()

char* LLVMGetTargetMachineCPU ( LLVMTargetMachineRef  T)

Returns the cpu used creating this target machine.

See llvm::TargetMachine::getCPU. The result needs to be disposed with LLVMDisposeMessage.

Definition at line 167 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMGetTargetMachineFeatureString()

char* LLVMGetTargetMachineFeatureString ( LLVMTargetMachineRef  T)

Returns the feature string used creating this target machine.

See llvm::TargetMachine::getFeatureString. The result needs to be disposed with LLVMDisposeMessage.

Definition at line 172 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMGetTargetMachineTarget()

LLVMTargetRef LLVMGetTargetMachineTarget ( LLVMTargetMachineRef  T)

Returns the Target used in a TargetMachine.

Definition at line 157 of file TargetMachineC.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMGetTargetMachineTriple()

char* LLVMGetTargetMachineTriple ( LLVMTargetMachineRef  T)

Returns the triple used creating this target machine.

See llvm::TargetMachine::getTriple. The result needs to be disposed with LLVMDisposeMessage.

Definition at line 162 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMGetTargetName()

const char* LLVMGetTargetName ( LLVMTargetRef  T)

Returns the name of a target.

See llvm::Target::getName

Definition at line 83 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMNormalizeTargetTriple()

char* LLVMNormalizeTargetTriple ( const char triple)

Normalize a target triple.

The result needs to be disposed with LLVMDisposeMessage.

Definition at line 250 of file TargetMachineC.cpp.

References llvm::c_str(), and llvm::Triple::normalize().

◆ LLVMSetTargetMachineAsmVerbosity()

void LLVMSetTargetMachineAsmVerbosity ( LLVMTargetMachineRef  T,
LLVMBool  VerboseAsm 
)

Set the target machine's ASM verbosity.

Definition at line 177 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMTargetHasAsmBackend()

LLVMBool LLVMTargetHasAsmBackend ( LLVMTargetRef  T)

Returns if the target as an ASM backend (required for emitting output)

Definition at line 99 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMTargetHasJIT()

LLVMBool LLVMTargetHasJIT ( LLVMTargetRef  T)

Returns if the target has a JIT.

Definition at line 91 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMTargetHasTargetMachine()

LLVMBool LLVMTargetHasTargetMachine ( LLVMTargetRef  T)

Returns if the target has a TargetMachine associated.

Definition at line 95 of file TargetMachineC.cpp.

References llvm::unwrap().

◆ LLVMTargetMachineEmitToFile()

LLVMBool LLVMTargetMachineEmitToFile ( LLVMTargetMachineRef  T,
LLVMModuleRef  M,
char Filename,
LLVMCodeGenFileType  codegen,
char **  ErrorMessage 
)

Emits an asm or object file for the given module to the filename.

This wraps several c++ only classes (among them a file stream). Returns any error in ErrorMessage. Use LLVMDisposeMessage to dispose the message.

Definition at line 220 of file TargetMachineC.cpp.

References llvm::sys::fs::F_None, llvm::raw_ostream::flush(), and LLVMTargetMachineEmit().

◆ LLVMTargetMachineEmitToMemoryBuffer()

LLVMBool LLVMTargetMachineEmitToMemoryBuffer ( LLVMTargetMachineRef  T,
LLVMModuleRef  M,
LLVMCodeGenFileType  codegen,
char **  ErrorMessage,
LLVMMemoryBufferRef OutMemBuf 
)

Compile the LLVM IR stored in M and store the result in OutMemBuf.

Definition at line 233 of file TargetMachineC.cpp.

References llvm::Data, llvm::StringRef::data(), LLVMCreateMemoryBufferWithMemoryRangeCopy(), LLVMTargetMachineEmit(), llvm::StringRef::size(), and llvm::raw_svector_ostream::str().