Module lto

Source
Expand description

Abstract link time optimization.

§ThinLTO

ThinLTO is designed to do LTO while requiring fewer resources than regular LTO. It can run much faster and in less memory (comparable to linking without LTO) than regular LTO, with essentially no loss in optimization.

Structs§

LTOObjectBuffer
Type to wrap a single object returned by ThinLTO.

Enums§

LLVMOpaqueLTOCodeGenerator
LLVMOpaqueLTOInput
LLVMOpaqueLTOModule
LLVMOpaqueThinLTOCodeGenerator
lto_codegen_diagnostic_severity_t
lto_codegen_model
lto_debug_model
lto_symbol_attributes

Functions§

lto_api_version
Returns the runtime API version.
lto_codegen_add_module
lto_codegen_add_must_preserve_symbol
lto_codegen_compile
lto_codegen_compile_optimized
Generates code for the optimized merged module into one native object file.
lto_codegen_compile_to_file
lto_codegen_create
lto_codegen_create_in_local_context
lto_codegen_debug_options
lto_codegen_debug_options_array
lto_codegen_dispose
lto_codegen_optimize
Runs optimization for the merged module.
lto_codegen_set_assembler_args
lto_codegen_set_assembler_path
lto_codegen_set_cpu
lto_codegen_set_debug_model
lto_codegen_set_diagnostic_handler
lto_codegen_set_module
Sets the object module for code gneeration. This will transfer ownership of the module to the code generator.
lto_codegen_set_pic_model
lto_codegen_set_should_embed_uselists
Set whether to embed uselists in bitcode.
lto_codegen_set_should_internalize
Sets if we should run the internalize pass during optimization and code generation.
lto_codegen_write_merged_modules
lto_get_error_message
lto_get_version
lto_initialize_disassembler
lto_input_create
Create an LTO input file from a buffer.
lto_input_dispose
Free all memory allocated by the input file.
lto_input_get_dependent_library
Get the ith dependent library specifier for the given input file.
lto_input_get_num_dependent_libraries
Get the number of dependent library specifiers for the given input.
lto_module_create
lto_module_create_from_fd
lto_module_create_from_fd_at_offset
lto_module_create_from_memory
lto_module_create_from_memory_with_path
lto_module_create_in_codegen_context
lto_module_create_in_local_context
lto_module_dispose
lto_module_get_linkeropts
Returns the module’s linker options.
lto_module_get_macho_cputype
lto_module_get_num_symbols
lto_module_get_symbol_attribute
lto_module_get_symbol_name
lto_module_get_target_triple
lto_module_has_ctor_dtor
Return true if the module has either the @llvm.global_ctors or the @llvm.global_dtors symbol.
lto_module_has_objc_category
Return true if Buffer contains a bitcode file with ObjC code (category or class) in it.
lto_module_is_object_file
lto_module_is_object_file_for_target
lto_module_is_object_file_in_memory
Checks if a buffer is a loadable object file.
lto_module_is_object_file_in_memory_for_target
lto_module_is_thinlto
Test if a module has ThinLTO linking support.
lto_module_set_target_triple
lto_runtime_lib_symbols_list
Return the list of libcall symbols that can be generated by LTO that might not be visible from the symbol table of bitcode files.
lto_set_debug_options
thinlto_codegen_add_cross_referenced_symbol
Add a symbol to the list of global symbols that are cross-referenced between ThinLTO files.
thinlto_codegen_add_module
Add a module to a code generator.
thinlto_codegen_add_must_preserve_symbol
Add a symbol to the list of global symbols that must exist in the final generated code.
thinlto_codegen_disable_codegen
Disable code generation (running all stages until codegen).
thinlto_codegen_dispose
Frees a code generator.
thinlto_codegen_process
Optimize and codegen all modules attached to the code generator.
thinlto_codegen_set_cache_dir
thinlto_codegen_set_cache_entry_expiration
Set the expiration (in seconds) for cache entries.
thinlto_codegen_set_cache_pruning_interval
Set the cache pruning interval, in seconds.
thinlto_codegen_set_cache_size_bytes
Set the maximum size of the cache directory (in bytes). A value over the amount of available space on the disk will be reduced to the amount of available space. An unspecified default value will be applied. A value of 0 will be ignored.
thinlto_codegen_set_cache_size_files
Sets the maximum number of files in the cache directory. An unspecified default value will be applied. A value of 0 will be ignored.
thinlto_codegen_set_cache_size_megabytes
Same as thinlto_codegen_set_cache_size_bytes, except the maximum size is in megabytes (2^20 bytes).
thinlto_codegen_set_codegen_only
Perform codegen only; disable all other stages.
thinlto_codegen_set_cpu
Set the CPU to generate code for.
thinlto_codegen_set_final_cache_size_relative_to_available_space
Set the maximum cache size to persist across builds.
thinlto_codegen_set_pic_model
Set which PIC code model to generate.
thinlto_codegen_set_savetemps_dir
Set the path to a directory to use as temporary bitcode storage.
thinlto_create_codegen
Instantiates a ThinLTO code generator.
thinlto_debug_options
Parse -mllvm style debug options.
thinlto_module_get_num_object_files
Return the number of object files produced by the code generator.
thinlto_module_get_num_objects
Return the number of object files produced by the code generator.
thinlto_module_get_object
Return a reference to the indexth object file produced by the code generator.
thinlto_module_get_object_file
Return the path to the ith output object file.
thinlto_set_generated_objects_dir
Set the path to a directory to save generated object files.

Type Aliases§

lto_bool_t
lto_code_gen_t
lto_diagnostic_handler_t
lto_input_t
lto_module_t
thinlto_code_gen_t