IPO.h revision 296417
161070Sphk/*===-- IPO.h - Interprocedural Transformations C Interface -----*- C++ -*-===*\ 261070Sphk|* *| 361070Sphk|* The LLVM Compiler Infrastructure *| 461070Sphk|* *| 561070Sphk|* This file is distributed under the University of Illinois Open Source *| 661070Sphk|* License. See LICENSE.TXT for details. *| 761070Sphk|* *| 861070Sphk|*===----------------------------------------------------------------------===*| 961070Sphk|* *| 1061070Sphk|* This header declares the C interface to libLLVMIPO.a, which implements *| 1161070Sphk|* various interprocedural transformations of the LLVM IR. *| 1261070Sphk|* *| 1361070Sphk\*===----------------------------------------------------------------------===*/ 1461070Sphk 1561070Sphk#ifndef LLVM_C_TRANSFORMS_IPO_H 1661070Sphk#define LLVM_C_TRANSFORMS_IPO_H 1761070Sphk 1861070Sphk#include "llvm-c/Types.h" 1961070Sphk 2061070Sphk#ifdef __cplusplus 2161070Sphkextern "C" { 2261070Sphk#endif 2361070Sphk 2461070Sphk/** 2561070Sphk * @defgroup LLVMCTransformsIPO Interprocedural transformations 2661070Sphk * @ingroup LLVMCTransforms 2761070Sphk * 2861070Sphk * @{ 2961070Sphk */ 3061070Sphk 3161070Sphk/** See llvm::createArgumentPromotionPass function. */ 3261070Sphkvoid LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM); 3361070Sphk 3461070Sphk/** See llvm::createConstantMergePass function. */ 3561070Sphkvoid LLVMAddConstantMergePass(LLVMPassManagerRef PM); 3661070Sphk 3761070Sphk/** See llvm::createDeadArgEliminationPass function. */ 3861070Sphkvoid LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM); 3961070Sphk 4061070Sphk/** See llvm::createFunctionAttrsPass function. */ 4161070Sphkvoid LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM); 4261070Sphk 4361070Sphk/** See llvm::createFunctionInliningPass function. */ 4461070Sphkvoid LLVMAddFunctionInliningPass(LLVMPassManagerRef PM); 4561070Sphk 4661070Sphk/** See llvm::createAlwaysInlinerPass function. */ 4761070Sphkvoid LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM); 4861070Sphk 4961070Sphk/** See llvm::createGlobalDCEPass function. */ 5061070Sphkvoid LLVMAddGlobalDCEPass(LLVMPassManagerRef PM); 5161070Sphk 5261070Sphk/** See llvm::createGlobalOptimizerPass function. */ 5361070Sphkvoid LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM); 5461070Sphk 5561070Sphk/** See llvm::createIPConstantPropagationPass function. */ 5661070Sphkvoid LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM); 5761070Sphk 5861070Sphk/** See llvm::createPruneEHPass function. */ 5961070Sphkvoid LLVMAddPruneEHPass(LLVMPassManagerRef PM); 6061070Sphk 6161070Sphk/** See llvm::createIPSCCPPass function. */ 6261070Sphkvoid LLVMAddIPSCCPPass(LLVMPassManagerRef PM); 6361070Sphk 6461070Sphk/** See llvm::createInternalizePass function. */ 6561070Sphkvoid LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain); 6661070Sphk 6761070Sphk/** See llvm::createStripDeadPrototypesPass function. */ 6861070Sphkvoid LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM); 6961070Sphk 7061070Sphk/** See llvm::createStripSymbolsPass function. */ 7161070Sphkvoid LLVMAddStripSymbolsPass(LLVMPassManagerRef PM); 7261070Sphk 7361070Sphk/** 7461070Sphk * @} 7561070Sphk */ 7661070Sphk 7761070Sphk#ifdef __cplusplus 7861070Sphk} 7961070Sphk#endif /* defined(__cplusplus) */ 8061070Sphk 8161070Sphk#endif 8261070Sphk