Home | History | Annotate | Download | only in Transforms
      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::createDeadArgEliminationPass function. */
     38 void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM);
     39 
     40 /** See llvm::createFunctionAttrsPass function. */
     41 void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM);
     42 
     43 /** See llvm::createFunctionInliningPass function. */
     44 void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM);
     45 
     46 /** See llvm::createAlwaysInlinerPass function. */
     47 void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM);
     48 
     49 /** See llvm::createGlobalDCEPass function. */
     50 void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM);
     51 
     52 /** See llvm::createGlobalOptimizerPass function. */
     53 void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM);
     54 
     55 /** See llvm::createIPConstantPropagationPass function. */
     56 void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM);
     57 
     58 /** See llvm::createPruneEHPass function. */
     59 void LLVMAddPruneEHPass(LLVMPassManagerRef PM);
     60 
     61 /** See llvm::createIPSCCPPass function. */
     62 void LLVMAddIPSCCPPass(LLVMPassManagerRef PM);
     63 
     64 /** See llvm::createInternalizePass function. */
     65 void LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain);
     66 
     67 /** See llvm::createStripDeadPrototypesPass function. */
     68 void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM);
     69 
     70 /** See llvm::createStripSymbolsPass function. */
     71 void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM);
     72 
     73 /**
     74  * @}
     75  */
     76 
     77 #ifdef __cplusplus
     78 }
     79 #endif /* defined(__cplusplus) */
     80 
     81 #endif
     82