LLVM API Documentation
00001 /*===-- IPO.h - Interprocedural Transformations C Interface -----*- C++ -*-===*\ 00002 |* *| 00003 |* The LLVM Compiler Infrastructure *| 00004 |* *| 00005 |* This file is distributed under the University of Illinois Open Source *| 00006 |* License. See LICENSE.TXT for details. *| 00007 |* *| 00008 |*===----------------------------------------------------------------------===*| 00009 |* *| 00010 |* This header declares the C interface to libLLVMIPO.a, which implements *| 00011 |* various interprocedural transformations of the LLVM IR. *| 00012 |* *| 00013 \*===----------------------------------------------------------------------===*/ 00014 00015 #ifndef LLVM_C_TRANSFORMS_IPO_H 00016 #define LLVM_C_TRANSFORMS_IPO_H 00017 00018 #include "llvm-c/Core.h" 00019 00020 #ifdef __cplusplus 00021 extern "C" { 00022 #endif 00023 00024 /** 00025 * @defgroup LLVMCTransformsIPO Interprocedural transformations 00026 * @ingroup LLVMCTransforms 00027 * 00028 * @{ 00029 */ 00030 00031 /** See llvm::createArgumentPromotionPass function. */ 00032 void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM); 00033 00034 /** See llvm::createConstantMergePass function. */ 00035 void LLVMAddConstantMergePass(LLVMPassManagerRef PM); 00036 00037 /** See llvm::createDeadArgEliminationPass function. */ 00038 void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM); 00039 00040 /** See llvm::createFunctionAttrsPass function. */ 00041 void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM); 00042 00043 /** See llvm::createFunctionInliningPass function. */ 00044 void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM); 00045 00046 /** See llvm::createAlwaysInlinerPass function. */ 00047 void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM); 00048 00049 /** See llvm::createGlobalDCEPass function. */ 00050 void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM); 00051 00052 /** See llvm::createGlobalOptimizerPass function. */ 00053 void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM); 00054 00055 /** See llvm::createIPConstantPropagationPass function. */ 00056 void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM); 00057 00058 /** See llvm::createPruneEHPass function. */ 00059 void LLVMAddPruneEHPass(LLVMPassManagerRef PM); 00060 00061 /** See llvm::createIPSCCPPass function. */ 00062 void LLVMAddIPSCCPPass(LLVMPassManagerRef PM); 00063 00064 /** See llvm::createInternalizePass function. */ 00065 void LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain); 00066 00067 /** See llvm::createStripDeadPrototypesPass function. */ 00068 void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM); 00069 00070 /** See llvm::createStripSymbolsPass function. */ 00071 void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM); 00072 00073 /** 00074 * @} 00075 */ 00076 00077 #ifdef __cplusplus 00078 } 00079 #endif /* defined(__cplusplus) */ 00080 00081 #endif