Changes in directory llvm/include/llvm-c:
LinkTimeOptimizer.h added (r1.1) --- Log message: Add C wrappers for the LTO library (PR1081: http://llvm.org/PR1081 ). Patch by Chandler Carruth! --- Diffs of the changes: (+58 -0) LinkTimeOptimizer.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 58 insertions(+) Index: llvm/include/llvm-c/LinkTimeOptimizer.h diff -c /dev/null llvm/include/llvm-c/LinkTimeOptimizer.h:1.1 *** /dev/null Sat Jan 6 17:52:56 2007 --- llvm/include/llvm-c/LinkTimeOptimizer.h Sat Jan 6 17:52:46 2007 *************** *** 0 **** --- 1,58 ---- + //===-- llvm/LinkTimeOptimizer.h - LTO Public C Interface -------*- C++ -*-===// + // + // The LLVM Compiler Infrastructure + // + // This file was developed by Chandler Carruth and is distributed under + // the University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===----------------------------------------------------------------------===// + // + // This header provides a C API to use the LLVM link time optimization + // library. This is inteded to be used by linkers which are C-only in + // their implementation for performing LTO. + // + //===----------------------------------------------------------------------===// + + #ifndef __LTO_CAPI_H__ + #define __LTO_CAPI_H__ + + #ifdef __cplusplus + extern "C" { + #endif + + /// This provides a dummy type for pointers to the LTO object. + typedef void* llvm_lto_t; + + /// This provides a C-visible enumerator to manage status codes. + /// This should map exactly onto the C++ enumerator LTOStatus. + typedef enum llvm_lto_status { + LLVM_LTO_UNKNOWN, + LLVM_LTO_OPT_SUCCESS, + LLVM_LTO_READ_SUCCESS, + LLVM_LTO_READ_FAILURE, + LLVM_LTO_WRITE_FAILURE, + LLVM_LTO_NO_TARGET, + LLVM_LTO_NO_WORK, + LLVM_LTO_MODULE_MERGE_FAILURE, + LLVM_LTO_ASM_FAILURE, + + // Added C-specific error codes + LLVM_LTO_NULL_OBJECT + } llvm_lto_status_t; + + /// This provides C interface to initialize link time optimizer. This allows + /// linker to use dlopen() interface to dynamically load LinkTimeOptimizer. + /// extern "C" helps, because dlopen() interface uses name to find the symbol. + extern llvm_lto_t llvm_create_optimizer(void); + extern void llvm_destroy_optimizer(llvm_lto_t lto); + + extern llvm_lto_status_t llvm_read_object_file + (llvm_lto_t lto, const char* input_filename); + extern llvm_lto_status_t llvm_optimize_modules + (llvm_lto_t lto, const char* output_filename); + + #ifdef __cplusplus + } + #endif + + #endif _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits