Skip to main content

llvm_sys_featured/
link_time_optimizer.rs

1//! Link-time-optimization
2
3/// Dummy type for pointers to the LTO object
4#[allow(non_camel_case_types)]
5pub type llvm_lto_t = *mut ::libc::c_void;
6
7#[repr(C)]
8#[derive(Clone, Copy, Debug, PartialEq)]
9pub enum llvm_lto_status_t {
10    LLVM_LTO_UNKNOWN = 0,
11    LLVM_LTO_OPT_SUCCESS = 1,
12    LLVM_LTO_READ_SUCCESS = 2,
13    LLVM_LTO_READ_FAILURE = 3,
14    LLVM_LTO_WRITE_FAILURE = 4,
15    LLVM_LTO_NO_TARGET = 5,
16    LLVM_LTO_NO_WORK = 6,
17    LLVM_LTO_MODULE_MERGE_FAILURE = 7,
18    LLVM_LTO_ASM_FAILURE = 8,
19    LLVM_LTO_NULL_OBJECT = 9,
20}
21
22extern "C" {
23    pub fn llvm_create_optimizer() -> llvm_lto_t;
24    pub fn llvm_destroy_optimizer(lto: llvm_lto_t);
25    pub fn llvm_read_object_file(
26        lto: llvm_lto_t,
27        input_filename: *const ::libc::c_char,
28    ) -> llvm_lto_status_t;
29    pub fn llvm_optimize_modules(
30        lto: llvm_lto_t,
31        output_filename: *const ::libc::c_char,
32    ) -> llvm_lto_status_t;
33}