|
LLVM 23.0.0git
|
Macros | |
| #define | LTO_API_VERSION 30 |
Typedefs | |
| typedef struct LLVMOpaqueLTOModule * | lto_module_t |
| opaque reference to a loaded object module | |
| typedef struct LLVMOpaqueLTOCodeGenerator * | lto_code_gen_t |
| opaque reference to a code generator | |
| typedef struct LLVMOpaqueThinLTOCodeGenerator * | thinlto_code_gen_t |
| opaque reference to a thin code generator | |
| typedef void(* | lto_diagnostic_handler_t) (lto_codegen_diagnostic_severity_t severity, const char *diag, void *ctxt) |
| Diagnostic handler type. | |
| typedef struct LLVMOpaqueLTOInput * | lto_input_t |
| Opaque reference to an LTO input file. | |
Functions | |
| LLVM_C_EXTERN_C_BEGIN LLVM_C_ABI const char * | lto_get_version (void) |
| Returns a printable string. | |
| LLVM_C_ABI const char * | lto_get_error_message (void) |
| Returns the last error string or NULL if last operation was successful. | |
| LLVM_C_ABI lto_bool_t | lto_module_is_object_file (const char *path) |
| Checks if a file is a loadable object file. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI lto_bool_t | lto_module_has_objc_category (const void *mem, size_t length) |
Return true if Buffer contains a bitcode file with ObjC code (category or class) in it. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI lto_module_t | lto_module_create (const char *path) |
| Loads an object file from disk. | |
| LLVM_C_ABI lto_module_t | lto_module_create_from_memory (const void *mem, size_t length) |
| Loads an object file from memory. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI lto_module_t | lto_module_create_in_local_context (const void *mem, size_t length, const char *path) |
| Loads an object file in its own context. | |
| LLVM_C_ABI lto_module_t | lto_module_create_in_codegen_context (const void *mem, size_t length, const char *path, lto_code_gen_t cg) |
| Loads an object file in the codegen context. | |
| LLVM_C_ABI lto_module_t | lto_module_create_from_fd (int fd, const char *path, size_t file_size) |
| Loads an object file from disk. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI void | lto_module_dispose (lto_module_t mod) |
| Frees all memory internally allocated by the module. | |
| LLVM_C_ABI const char * | lto_module_get_target_triple (lto_module_t mod) |
| Returns triple string which the object module was compiled under. | |
| LLVM_C_ABI void | lto_module_set_target_triple (lto_module_t mod, const char *triple) |
| Sets triple string with which the object will be codegened. | |
| LLVM_C_ABI unsigned int | lto_module_get_num_symbols (lto_module_t mod) |
| Returns the number of symbols in the object module. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI unsigned int | lto_module_get_num_asm_undef_symbols (lto_module_t mod) |
| Returns the number of asm undefined symbols in the object module. | |
| LLVM_C_ABI const char * | lto_module_get_asm_undef_symbol_name (lto_module_t mod, unsigned int index) |
| Returns the name of the ith asm undefined symbol in the object module. | |
| LLVM_C_ABI const char * | lto_module_get_linkeropts (lto_module_t mod) |
| Returns the module's linker options. | |
| LLVM_C_ABI lto_bool_t | lto_module_get_macho_cputype (lto_module_t mod, unsigned int *out_cputype, unsigned int *out_cpusubtype) |
| If targeting mach-o on darwin, this function gets the CPU type and subtype that will end up being encoded in the mach-o header. | |
| LLVM_C_ABI lto_bool_t | lto_module_has_ctor_dtor (lto_module_t mod) |
| This function can be used by the linker to check if a given module has any constructor or destructor functions. | |
| LLVM_C_ABI void | lto_codegen_set_diagnostic_handler (lto_code_gen_t, lto_diagnostic_handler_t, void *) |
| Set a diagnostic handler and the related context (void *). | |
| LLVM_C_ABI lto_code_gen_t | lto_codegen_create (void) |
| Instantiates a code generator. | |
| LLVM_C_ABI lto_code_gen_t | lto_codegen_create_in_local_context (void) |
| Instantiate a code generator in its own context. | |
| LLVM_C_ABI void | lto_codegen_dispose (lto_code_gen_t) |
| Frees all code generator and all memory it internally allocated. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI void | lto_codegen_set_module (lto_code_gen_t cg, lto_module_t mod) |
| Sets the object module for code generation. | |
| LLVM_C_ABI lto_bool_t | lto_codegen_set_debug_model (lto_code_gen_t cg, lto_debug_model) |
| Sets if debug info should be generated. | |
| LLVM_C_ABI lto_bool_t | lto_codegen_set_pic_model (lto_code_gen_t cg, lto_codegen_model) |
| Sets which PIC code model to generated. | |
| LLVM_C_ABI void | lto_codegen_set_cpu (lto_code_gen_t cg, const char *cpu) |
| Sets the cpu to generate code for. | |
| LLVM_C_ABI void | lto_codegen_set_assembler_path (lto_code_gen_t cg, const char *path) |
| Sets the location of the assembler tool to run. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI const void * | lto_codegen_compile (lto_code_gen_t cg, size_t *length) |
| Generates code for all added modules into one native object file. | |
| LLVM_C_ABI 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. | |
| LLVM_C_ABI lto_bool_t | lto_codegen_optimize (lto_code_gen_t cg) |
| Runs optimization for the merged module. | |
| LLVM_C_ABI const void * | lto_codegen_compile_optimized (lto_code_gen_t cg, size_t *length) |
| Generates code for the optimized merged module into one native object file. | |
| LLVM_C_ABI unsigned int | lto_api_version (void) |
| Returns the runtime API version. | |
| LLVM_C_ABI void | lto_set_debug_options (const char *const *options, int number) |
| Parses options immediately, making them available as early as possible. | |
| LLVM_C_ABI void | lto_codegen_debug_options (lto_code_gen_t cg, const char *) |
| Sets options to help debug codegen bugs. | |
| LLVM_C_ABI void | lto_codegen_debug_options_array (lto_code_gen_t cg, const char *const *, int number) |
| Same as the previous function, but takes every option separately through an array. | |
| LLVM_C_ABI void | lto_initialize_disassembler (void) |
| Initializes LLVM disassemblers. | |
| LLVM_C_ABI void | lto_codegen_set_should_internalize (lto_code_gen_t cg, lto_bool_t ShouldInternalize) |
| Sets if we should run internalize pass during optimization and code generation. | |
| LLVM_C_ABI void | lto_codegen_set_should_embed_uselists (lto_code_gen_t cg, lto_bool_t ShouldEmbedUselists) |
| Set whether to embed uselists in bitcode. | |
| LLVM_C_ABI lto_input_t | lto_input_create (const void *buffer, size_t buffer_size, const char *path) |
| Creates an LTO input file from a buffer. | |
| LLVM_C_ABI void | lto_input_dispose (lto_input_t input) |
| Frees all memory internally allocated by the LTO input file. | |
| LLVM_C_ABI unsigned | lto_input_get_num_dependent_libraries (lto_input_t input) |
| Returns the number of dependent library specifiers for the given LTO input file. | |
| LLVM_C_ABI const char * | lto_input_get_dependent_library (lto_input_t input, size_t index, size_t *size) |
| Returns the ith dependent library specifier for the given LTO input file. | |
| LLVM_C_ABI const char *const * | lto_runtime_lib_symbols_list (size_t *size) |
| Returns the list of libcall symbols that can be generated by LTO that might not be visible from the symbol table of bitcode files. | |
| 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 LLVMOpaqueLTOInput* lto_input_t |
| typedef struct LLVMOpaqueLTOModule* lto_module_t |
| typedef struct LLVMOpaqueThinLTOCodeGenerator* thinlto_code_gen_t |
| enum lto_codegen_model |
| enum lto_debug_model |
|
extern |
|
extern |
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).
cg and mod must both be in the same context. See lto_codegen_create_in_local_context() and lto_module_create_in_codegen_context().
References LLVM_C_ABI.
|
extern |
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.
References LLVM_C_ABI.
|
extern |
Generates code for all added modules into one native object file.
This calls lto_codegen_optimize then lto_codegen_compile_optimized.
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).
References LLVM_C_ABI.
|
extern |
Generates code for the optimized merged module into one native object file.
It will not run any IR optimizations on the merged module.
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_optimized() is called again. On failure, returns NULL (check lto_get_error_message() for details).
References LLVM_C_ABI.
|
extern |
Generates code for all added modules into one native object file.
This calls lto_codegen_optimize then lto_codegen_compile_optimized (instead of returning a generated mach-o/ELF buffer, it writes to a file).
The name of the file is written to name. Returns true on error.
References LLVM_C_ABI, and name.
|
extern |
Instantiates a code generator.
Returns NULL on error (check lto_get_error_message() for details).
All modules added using lto_codegen_add_module() must have been created in the same context as the codegen.
References LLVM_C_ABI.
|
extern |
Instantiate a code generator in its own context.
Instantiates a code generator in its own context. Modules added via lto_codegen_add_module() must have all been created in the same context, using lto_module_create_in_codegen_context().
References LLVM_C_ABI.
|
extern |
Sets options to help debug codegen bugs.
Since parsing shud only happen once, only one of lto_codegen_debug_options or lto_set_debug_options should be called.
This function takes one or more options separated by spaces. Warning: passing file paths through this function may confuse the argument parser if the paths contain spaces.
References LLVM_C_ABI.
|
extern |
Same as the previous function, but takes every option separately through an array.
References LLVM_C_ABI, and number().
|
extern |
Frees all code generator and all memory it internally allocated.
Upon return the lto_code_gen_t is no longer valid.
References LLVM_C_ABI.
|
extern |
Runs optimization for the merged module.
Returns true on error.
References LLVM_C_ABI.
|
extern |
Sets extra arguments that libLTO should pass to the assembler.
References args.
|
extern |
Sets the location of the assembler tool to run.
If not set, libLTO will use gcc to invoke the assembler.
References LLVM_C_ABI.
|
extern |
|
extern |
Sets if debug info should be generated.
Returns true on error (check lto_get_error_message() for details).
References LLVM_C_ABI.
|
extern |
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.
|
extern |
Sets the object module for code generation.
This will transfer the ownership of the module to the code generator.
cg and mod must both be in the same context.
References LLVM_C_ABI.
|
extern |
Sets which PIC code model to generated.
Returns true on error (check lto_get_error_message() for details).
References LLVM_C_ABI.
|
extern |
Set whether to embed uselists in bitcode.
Sets whether lto_codegen_write_merged_modules() should embed uselists in output bitcode. This should be turned on for all -save-temps output.
|
extern |
Sets if we should run internalize pass during optimization and code generation.
References LLVM_C_ABI.
|
extern |
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).
References LLVM_C_ABI.
|
extern |
Returns the last error string or NULL if last operation was successful.
References LLVM_C_ABI.
|
extern |
|
extern |
Initializes LLVM disassemblers.
FIXME: This doesn't really belong here.
References LLVM_C_ABI.
|
extern |
Creates an LTO input file from a buffer.
The path argument is used for diagnotics as this function otherwise does not know which file the given buffer is associated with.
|
extern |
Frees all memory internally allocated by the LTO input file.
Upon return the lto_module_t is no longer valid.
References LLVM_C_ABI.
|
extern |
Returns the ith dependent library specifier for the given LTO input file.
The returned string is not null-terminated.
|
extern |
Returns the number of dependent library specifiers for the given LTO input file.
References LLVM_C_ABI.
|
extern |
Loads an object file from disk.
Returns NULL on error (check lto_get_error_message() for details).
References LLVM_C_ABI.
|
extern |
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).
References LLVM_C_ABI.
|
extern |
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).
|
extern |
Loads an object file from memory.
Returns NULL on error (check lto_get_error_message() for details).
References LLVM_C_ABI.
|
extern |
Loads an object file from memory with an extra path argument.
Returns NULL on error (check lto_get_error_message() for details).
References LLVM_C_ABI.
|
extern |
Loads an object file in the codegen context.
Loads an object file into the same context as cg. The module is safe to add using lto_codegen_add_module().
Returns NULL on error (check lto_get_error_message() for details).
References LLVM_C_ABI.
|
extern |
Loads an object file in its own context.
Loads an object file in its own LLVMContext. This function call is thread-safe. However, modules created this way should not be merged into an lto_code_gen_t using lto_codegen_add_module().
Returns NULL on error (check lto_get_error_message() for details).
References LLVM_C_ABI.
|
extern |
Frees all memory internally allocated by the module.
Upon return the lto_module_t is no longer valid.
References LLVM_C_ABI.
|
extern |
Returns the name of the ith asm undefined symbol in the object module.
|
extern |
Returns the module's linker options.
The linker options may consist of multiple flags. It is the linker's responsibility to split the flags using a platform-specific mechanism.
References LLVM_C_ABI.
|
extern |
If targeting mach-o on darwin, this function gets the CPU type and subtype that will end up being encoded in the mach-o header.
These are the values that can be found in mach/machine.h.
out_cputype and out_cpusubtype must be non-NULL.
Returns true on error (check lto_get_error_message() for details).
|
extern |
Returns the number of asm undefined symbols in the object module.
References LLVM_C_ABI.
|
extern |
Returns the number of symbols in the object module.
References LLVM_C_ABI.
|
extern |
Returns the attributes of the ith symbol in the object module.
References LLVM_C_ABI.
|
extern |
Returns the name of the ith symbol in the object module.
References LLVM_C_ABI.
|
extern |
Returns triple string which the object module was compiled under.
References LLVM_C_ABI.
|
extern |
This function can be used by the linker to check if a given module has any constructor or destructor functions.
Returns true if the module has either the @llvm.global_ctors or the @llvm.global_dtors symbol. Otherwise returns false.
References LLVM_C_ABI.
|
extern |
Return true if Buffer contains a bitcode file with ObjC code (category or class) in it.
References LLVM_C_ABI.
|
extern |
|
extern |
Checks if a file is a loadable object compiled for requested target.
|
extern |
Checks if a buffer is a loadable object file.
|
extern |
Checks if a buffer is a loadable object compiled for requested target.
References LLVM_C_ABI.
|
extern |
Sets triple string with which the object will be codegened.
References LLVM_C_ABI.
|
extern |
Returns the list of libcall symbols that can be generated by LTO that might not be visible from the symbol table of bitcode files.
References LLVM_C_ABI.
|
extern |
Parses options immediately, making them available as early as possible.
For example during executing codegen::InitTargetOptionsFromCodeGenFlags. Since parsing shud only happen once, only one of lto_codegen_debug_options or lto_set_debug_options should be called.
This function takes one or more options separated by spaces. Warning: passing file paths through this function may confuse the argument parser if the paths contain spaces.
References LLVM_C_ABI, and number().