LLVM API Documentation

c/Transforms/IPO.h
Go to the documentation of this file.
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