1 /*===-- IPO.h - Interprocedural Transformations C Interface -----*- C++ -*-===*\ 2 |* *| 3 |* The LLVM Compiler Infrastructure *| 4 |* *| 5 |* This file is distributed under the University of Illinois Open Source *| 6 |* License. See LICENSE.TXT for details. *| 7 |* *| 8 |*===----------------------------------------------------------------------===*| 9 |* *| 10 |* This header declares the C interface to libLLVMIPO.a, which implements *| 11 |* various interprocedural transformations of the LLVM IR. *| 12 |* *| 13 \*===----------------------------------------------------------------------===*/ 14 15 #ifndef LLVM_C_TRANSFORMS_IPO_H 16 #define LLVM_C_TRANSFORMS_IPO_H 17 18 #include "llvm-c/Types.h" 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 /** 25 * @defgroup LLVMCTransformsIPO Interprocedural transformations 26 * @ingroup LLVMCTransforms 27 * 28 * @{ 29 */ 30 31 /** See llvm::createArgumentPromotionPass function. */ 32 void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM); 33 34 /** See llvm::createConstantMergePass function. */ 35 void LLVMAddConstantMergePass(LLVMPassManagerRef PM); 36 37 /** See llvm::createCalledValuePropagationPass function. */ 38 void LLVMAddCalledValuePropagationPass(LLVMPassManagerRef PM); 39 40 /** See llvm::createDeadArgEliminationPass function. */ 41 void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM); 42 43 /** See llvm::createFunctionAttrsPass function. */ 44 void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM); 45 46 /** See llvm::createFunctionInliningPass function. */ 47 void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM); 48 49 /** See llvm::createAlwaysInlinerPass function. */ 50 void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM); 51 52 /** See llvm::createGlobalDCEPass function. */ 53 void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM); 54 55 /** See llvm::createGlobalOptimizerPass function. */ 56 void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM); 57 58 /** See llvm::createIPConstantPropagationPass function. */ 59 void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM); 60 61 /** See llvm::createPruneEHPass function. */ 62 void LLVMAddPruneEHPass(LLVMPassManagerRef PM); 63 64 /** See llvm::createIPSCCPPass function. */ 65 void LLVMAddIPSCCPPass(LLVMPassManagerRef PM); 66 67 /** See llvm::createInternalizePass function. */ 68 void LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain); 69 70 /** See llvm::createStripDeadPrototypesPass function. */ 71 void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM); 72 73 /** See llvm::createStripSymbolsPass function. */ 74 void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM); 75 76 /** 77 * @} 78 */ 79 80 #ifdef __cplusplus 81 } 82 #endif /* defined(__cplusplus) */ 83 84 #endif 85