LLVM API Documentation
#include <stdbool.h>#include <stddef.h>

Go to the source code of this file.
| typedef struct LTOCodeGenerator* lto_code_gen_t |
| typedef struct LTOModule* lto_module_t |
| enum lto_codegen_model |
| enum lto_debug_model |
| bool 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, 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 sucess 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_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.
| bool lto_codegen_set_debug_model | ( | lto_code_gen_t | cg, | |
| lto_debug_model | ||||
| ) |
Sets if debug info should be generated. Returns true on error (check lto_get_error_message() for details).
| bool lto_codegen_set_pic_model | ( | lto_code_gen_t | cg, | |
| lto_codegen_model | ||||
| ) |
Sets which PIC code model to generated. Returns true on error (check lto_get_error_message() for details).
| bool 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 sucessful.
| const char* lto_get_version | ( | void | ) |
Returns a printable string.
| 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_memory | ( | const void * | mem, | |
| size_t | length | |||
| ) |
Loads an object file from memory. 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.
| unsigned int lto_module_get_num_symbols | ( | lto_module_t | mod | ) |
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.
| bool lto_module_is_object_file | ( | const char * | path | ) |
Checks if a file is a loadable object file.
| bool 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.
| bool lto_module_is_object_file_in_memory | ( | const void * | mem, | |
| size_t | length | |||
| ) |
Checks if a buffer is a loadable object file.
| bool 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.