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