LLVM API Documentation
#include "llvm-c/TargetMachine.h"
#include "llvm-c/Core.h"
#include "llvm-c/Target.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Module.h"
#include "llvm/PassManager.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/FormattedStream.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetSubtargetInfo.h"
#include <cassert>
#include <cstdlib>
#include <cstring>
Go to the source code of this file.
void LLVMAddAnalysisPasses | ( | LLVMTargetMachineRef | T, |
LLVMPassManagerRef | PM | ||
) |
Adds the target-specific analysis passes to the pass manager.
Definition at line 257 of file TargetMachineC.cpp.
References llvm::unwrap().
LLVMTargetMachineRef LLVMCreateTargetMachine | ( | LLVMTargetRef | T, |
const char * | Triple, | ||
const char * | CPU, | ||
const char * | Features, | ||
LLVMCodeGenOptLevel | Level, | ||
LLVMRelocMode | Reloc, | ||
LLVMCodeModel | CodeModel | ||
) |
Creates a new llvm::TargetMachine. See llvm::Target::createTargetMachine
Definition at line 107 of file TargetMachineC.cpp.
References llvm::CodeGenOpt::Aggressive, llvm::Reloc::Default, llvm::CodeGenOpt::Default, llvm::Reloc::DynamicNoPIC, llvm::CodeGenOpt::Less, LLVMCodeGenLevelAggressive, LLVMCodeGenLevelLess, LLVMCodeGenLevelNone, LLVMRelocDynamicNoPic, LLVMRelocPIC, LLVMRelocStatic, llvm::CodeGenOpt::None, llvm::Reloc::PIC_, llvm::NVPTX::PTXCvtMode::RM, llvm::Reloc::Static, llvm::unwrap(), and llvm::wrap().
void LLVMDisposeTargetMachine | ( | LLVMTargetMachineRef | T | ) |
Dispose the LLVMTargetMachineRef instance generated by LLVMCreateTargetMachine.
Definition at line 151 of file TargetMachineC.cpp.
References llvm::unwrap().
char* LLVMGetDefaultTargetTriple | ( | void | ) |
Get a triple for the host machine as a string. The result needs to be disposed with LLVMDisposeMessage.
Definition at line 253 of file TargetMachineC.cpp.
References llvm::c_str(), llvm::sys::getDefaultTargetTriple(), and llvm::LibFunc::strdup.
LLVMTargetRef LLVMGetFirstTarget | ( | void | ) |
Returns the first llvm::Target in the registered targets list.
Definition at line 48 of file TargetMachineC.cpp.
References llvm::TargetRegistry::begin(), llvm::TargetRegistry::end(), and llvm::wrap().
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().
const char* LLVMGetTargetDescription | ( | LLVMTargetRef | T | ) |
Returns the description of a target. See llvm::Target::getDescription
Definition at line 91 of file TargetMachineC.cpp.
References llvm::unwrap().
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::TargetRegistry::begin(), llvm::TargetRegistry::end(), llvm::ARM_PROC::IE, IT(), Name, and llvm::wrap().
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 71 of file TargetMachineC.cpp.
References llvm::lltok::Error, llvm::TargetRegistry::lookupTarget(), llvm::LibFunc::strdup, and llvm::wrap().
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 165 of file TargetMachineC.cpp.
References llvm::LibFunc::strdup, and llvm::unwrap().
Returns the llvm::DataLayout used for this llvm:TargetMachine.
Definition at line 175 of file TargetMachineC.cpp.
References llvm::unwrap(), and llvm::wrap().
Returns the feature string used creating this target machine. See llvm::TargetMachine::getFeatureString. The result needs to be disposed with LLVMDisposeMessage.
Definition at line 170 of file TargetMachineC.cpp.
References llvm::LibFunc::strdup, and llvm::unwrap().
Returns the Target used in a TargetMachine
Definition at line 155 of file TargetMachineC.cpp.
References llvm::unwrap(), and llvm::wrap().
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 160 of file TargetMachineC.cpp.
References llvm::LibFunc::strdup, and llvm::unwrap().
const char* LLVMGetTargetName | ( | LLVMTargetRef | T | ) |
Returns the name of a target. See llvm::Target::getName
Definition at line 87 of file TargetMachineC.cpp.
References llvm::unwrap().
void LLVMSetTargetMachineAsmVerbosity | ( | LLVMTargetMachineRef | T, |
LLVMBool | VerboseAsm | ||
) |
Set the target machine's ASM verbosity.
Definition at line 179 of file TargetMachineC.cpp.
References llvm::unwrap().
Returns if the target as an ASM backend (required for emitting output)
Definition at line 103 of file TargetMachineC.cpp.
References llvm::unwrap().
Returns if the target has a JIT
Definition at line 95 of file TargetMachineC.cpp.
References llvm::unwrap().
Returns if the target has a TargetMachine associated
Definition at line 99 of file TargetMachineC.cpp.
References llvm::unwrap().
static LLVMBool LLVMTargetMachineEmit | ( | LLVMTargetMachineRef | T, |
LLVMModuleRef | M, | ||
formatted_raw_ostream & | OS, | ||
LLVMCodeGenFileType | codegen, | ||
char ** | ErrorMessage | ||
) | [static] |
Definition at line 184 of file TargetMachineC.cpp.
References llvm::TargetMachine::addPassesToEmitFile(), llvm::TargetMachine::CGFT_AssemblyFile, llvm::TargetMachine::CGFT_ObjectFile, llvm::raw_ostream::flush(), llvm::TargetSubtargetInfo::getDataLayout(), llvm::TargetMachine::getSubtargetImpl(), LLVMAssemblyFile, pass, llvm::Module::setDataLayout(), llvm::LibFunc::strdup, llvm::SystemZISD::TM, and llvm::unwrap().
Referenced by LLVMTargetMachineEmitToFile(), and LLVMTargetMachineEmitToMemoryBuffer().
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 224 of file TargetMachineC.cpp.
References llvm::sys::fs::F_None, llvm::raw_ostream::flush(), LLVMTargetMachineEmit(), and llvm::LibFunc::strdup.
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 238 of file TargetMachineC.cpp.
References llvm::raw_ostream::flush(), LLVMCreateMemoryBufferWithMemoryRangeCopy(), LLVMTargetMachineEmit(), and llvm::raw_string_ostream::str().
TargetMachine* unwrap | ( | LLVMTargetMachineRef | P | ) | [inline] |
Definition at line 34 of file TargetMachineC.cpp.
Target* unwrap | ( | LLVMTargetRef | P | ) | [inline] |
Definition at line 37 of file TargetMachineC.cpp.
LLVMTargetMachineRef wrap | ( | const TargetMachine * | P | ) | [inline] |
Definition at line 40 of file TargetMachineC.cpp.
LLVMTargetRef wrap | ( | const Target * | P | ) | [inline] |
Definition at line 44 of file TargetMachineC.cpp.