deimos.llvm.c.lto

Undocumented in source.

Members

Aliases

lto_code_gen_t
alias lto_code_gen_t = __LTOCodeGenerator*
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
lto_codegen_model
alias lto_codegen_model = int
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
lto_debug_model
alias lto_debug_model = int
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
lto_module_t
alias lto_module_t = __LTOModule*
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
lto_symbol_attributes
alias lto_symbol_attributes = int
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.

Enums

LTO_CODEGEN_PIC_MODEL_STATIC
anonymousenum LTO_CODEGEN_PIC_MODEL_STATIC
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
LTO_DEBUG_MODEL_NONE
anonymousenum LTO_DEBUG_MODEL_NONE
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
LTO_SYMBOL_ALIGNMENT_MASK
anonymousenum LTO_SYMBOL_ALIGNMENT_MASK
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.

Functions

lto_codegen_add_module
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).

lto_codegen_add_must_preserve_symbol
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.

lto_codegen_compile
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_codegen_compile_to_file
bool 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_codegen_create
lto_code_gen_t lto_codegen_create()

Instantiates a code generator. Returns NULL on error (check lto_get_error_message() for details).

lto_codegen_debug_options
void lto_codegen_debug_options(lto_code_gen_t cg, const(char)* )

Sets options to help debug codegen bugs.

lto_codegen_dispose
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.

lto_codegen_set_assembler_args
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.

lto_codegen_set_assembler_path
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.

lto_codegen_set_cpu
void lto_codegen_set_cpu(lto_code_gen_t cg, const(char)* cpu)

Sets the cpu to generate code for.

lto_codegen_set_debug_model
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).

lto_codegen_set_pic_model
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).

lto_codegen_write_merged_modules
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).

lto_get_error_message
const(char)* lto_get_error_message()

Returns the last error string or NULL if last operation was successful.

lto_get_version
const(char)* lto_get_version()

Returns a printable string.

lto_initialize_disassembler
void lto_initialize_disassembler()

Initializes LLVM disassemblers. FIXME: This doesn't really belong here.

lto_module_create
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_create_from_fd
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_create_from_fd_at_offset
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_create_from_memory
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_dispose
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.

lto_module_get_num_symbols
uint lto_module_get_num_symbols(lto_module_t mod)

Returns the number of symbols in the object module.

lto_module_get_symbol_attribute
lto_symbol_attributes lto_module_get_symbol_attribute(lto_module_t mod, uint index)

Returns the attributes of the ith symbol in the object module.

lto_module_get_symbol_name
const(char)* lto_module_get_symbol_name(lto_module_t mod, uint index)

Returns the name of the ith symbol in the object module.

lto_module_get_target_triple
const(char)* lto_module_get_target_triple(lto_module_t mod)

Returns triple string which the object module was compiled under.

lto_module_is_object_file
bool lto_module_is_object_file(const(char)* path)

Checks if a file is a loadable object file.

lto_module_is_object_file_for_target
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.

lto_module_is_object_file_in_memory
bool lto_module_is_object_file_in_memory(const(void)* mem, size_t length)

Checks if a buffer is a loadable object file.

lto_module_is_object_file_in_memory_for_target
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.

lto_module_set_target_triple
void lto_module_set_target_triple(lto_module_t mod, const(char)* triple)

Sets triple string with which the object will be codegened.

Manifest constants

LTO_API_VERSION
enum LTO_API_VERSION;

@defgroup LLVMCLTO LTO @ingroup LLVMC

Structs

__LTOCodeGenerator
struct __LTOCodeGenerator

opaque reference to a code generator

__LTOModule
struct __LTOModule

opaque reference to a loaded object module

Meta