mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	discussion of this change. Boy are my fingers tired. ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===-- llvm/LinkTimeOptimizer.h - LTO Public C Interface -------*- C++ -*-===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file 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
 |