LLVM API Documentation
#define LTO_API_VERSION 10 |
typedef struct LLVMOpaqueLTOCodeGenerator* lto_code_gen_t |
typedef void(* lto_diagnostic_handler_t)(lto_codegen_diagnostic_severity_t severity, const char *diag, void *ctxt) |
typedef struct LLVMOpaqueLTOModule* lto_module_t |
enum lto_codegen_model |
enum lto_debug_model |
lto_bool_t lto_codegen_add_module | ( | lto_code_gen_t | cg, |
lto_module_t | mod | ||
) |
Add an object module to the set of modules for which code will be generated. Returns true on error (check lto_get_error_message() for details).
void lto_codegen_add_must_preserve_symbol | ( | lto_code_gen_t | cg, |
const char * | symbol | ||
) |
Adds to a list of all global symbols that must exist in the final generated code. If a function is not listed there, it might be inlined into every usage and optimized away.
const void* lto_codegen_compile | ( | lto_code_gen_t | cg, |
size_t * | length | ||
) |
Generates code for all added modules into one native object file. On success returns a pointer to a generated mach-o/ELF buffer and length set to the buffer size. The buffer is owned by the lto_code_gen_t and will be freed when lto_codegen_dispose() is called, or lto_codegen_compile() is called again. On failure, returns NULL (check lto_get_error_message() for details).
lto_bool_t lto_codegen_compile_to_file | ( | lto_code_gen_t | cg, |
const char ** | name | ||
) |
Generates code for all added modules into one native object file. The name of the file is written to name. Returns true on error.
lto_code_gen_t lto_codegen_create | ( | void | ) |
Instantiates a code generator. Returns NULL on error (check lto_get_error_message() for details).
void lto_codegen_debug_options | ( | lto_code_gen_t | cg, |
const char * | |||
) |
Sets options to help debug codegen bugs.
void lto_codegen_dispose | ( | lto_code_gen_t | ) |
Frees all code generator and all memory it internally allocated. Upon return the lto_code_gen_t is no longer valid.
void lto_codegen_set_assembler_args | ( | lto_code_gen_t | cg, |
const char ** | args, | ||
int | nargs | ||
) |
Sets extra arguments that libLTO should pass to the assembler.
void lto_codegen_set_assembler_path | ( | lto_code_gen_t | cg, |
const char * | path | ||
) |
Sets the location of the assembler tool to run. If not set, libLTO will use gcc to invoke the assembler.
void lto_codegen_set_cpu | ( | lto_code_gen_t | cg, |
const char * | cpu | ||
) |
Sets the cpu to generate code for.
Sets if debug info should be generated. Returns true on error (check lto_get_error_message() for details).
void lto_codegen_set_diagnostic_handler | ( | lto_code_gen_t | , |
lto_diagnostic_handler_t | , | ||
void * | |||
) |
Set a diagnostic handler and the related context (void *). This is more general than lto_get_error_message, as the diagnostic handler can be called at anytime within lto.
Sets which PIC code model to generated. Returns true on error (check lto_get_error_message() for details).
lto_bool_t lto_codegen_write_merged_modules | ( | lto_code_gen_t | cg, |
const char * | path | ||
) |
Writes a new object file at the specified path that contains the merged contents of all modules added so far. Returns true on error (check lto_get_error_message() for details).
const char* lto_get_error_message | ( | void | ) |
Returns the last error string or NULL if last operation was successful.
const char* lto_get_version | ( | void | ) |
Returns a printable string.
void lto_initialize_disassembler | ( | void | ) |
Initializes LLVM disassemblers. FIXME: This doesn't really belong here.
lto_module_t lto_module_create | ( | const char * | path | ) |
Loads an object file from disk. Returns NULL on error (check lto_get_error_message() for details).
lto_module_t lto_module_create_from_fd | ( | int | fd, |
const char * | path, | ||
size_t | file_size | ||
) |
Loads an object file from disk. The seek point of fd is not preserved. Returns NULL on error (check lto_get_error_message() for details).
lto_module_t lto_module_create_from_fd_at_offset | ( | int | fd, |
const char * | path, | ||
size_t | file_size, | ||
size_t | map_size, | ||
off_t | offset | ||
) |
Loads an object file from disk. The seek point of fd is not preserved. Returns NULL on error (check lto_get_error_message() for details).
lto_module_t lto_module_create_from_memory | ( | const void * | mem, |
size_t | length | ||
) |
Loads an object file from memory. Returns NULL on error (check lto_get_error_message() for details).
lto_module_t lto_module_create_from_memory_with_path | ( | const void * | mem, |
size_t | length, | ||
const char * | path | ||
) |
Loads an object file from memory with an extra path argument. Returns NULL on error (check lto_get_error_message() for details).
void lto_module_dispose | ( | lto_module_t | mod | ) |
Frees all memory internally allocated by the module. Upon return the lto_module_t is no longer valid.
const char* lto_module_get_deplib | ( | lto_module_t | mod, |
unsigned int | index | ||
) |
Returns the ith dependent library in the module.
const char* lto_module_get_linkeropt | ( | lto_module_t | mod, |
unsigned int | index | ||
) |
Returns the ith linker option in the module.
Returns the number of dependent libraries in the object module.
Returns the number of linker options in the object module.
Returns the number of symbols in the object module.
lto_symbol_attributes lto_module_get_symbol_attribute | ( | lto_module_t | mod, |
unsigned int | index | ||
) |
Returns the attributes of the ith symbol in the object module.
const char* lto_module_get_symbol_name | ( | lto_module_t | mod, |
unsigned int | index | ||
) |
Returns the name of the ith symbol in the object module.
const char* lto_module_get_target_triple | ( | lto_module_t | mod | ) |
Returns triple string which the object module was compiled under.
lto_bool_t lto_module_is_object_file | ( | const char * | path | ) |
Checks if a file is a loadable object file.
lto_bool_t lto_module_is_object_file_for_target | ( | const char * | path, |
const char * | target_triple_prefix | ||
) |
Checks if a file is a loadable object compiled for requested target.
lto_bool_t lto_module_is_object_file_in_memory | ( | const void * | mem, |
size_t | length | ||
) |
Checks if a buffer is a loadable object file.
lto_bool_t lto_module_is_object_file_in_memory_for_target | ( | const void * | mem, |
size_t | length, | ||
const char * | target_triple_prefix | ||
) |
Checks if a buffer is a loadable object compiled for requested target.
void lto_module_set_target_triple | ( | lto_module_t | mod, |
const char * | triple | ||
) |
Sets triple string with which the object will be codegened.