1193323Sed/*===-- IPO.h - Interprocedural Transformations C Interface -----*- C++ -*-===*\ 2193323Sed|* *| 3193323Sed|* The LLVM Compiler Infrastructure *| 4193323Sed|* *| 5193323Sed|* This file is distributed under the University of Illinois Open Source *| 6193323Sed|* License. See LICENSE.TXT for details. *| 7193323Sed|* *| 8193323Sed|*===----------------------------------------------------------------------===*| 9193323Sed|* *| 10193323Sed|* This header declares the C interface to libLLVMIPO.a, which implements *| 11193323Sed|* various interprocedural transformations of the LLVM IR. *| 12193323Sed|* *| 13193323Sed\*===----------------------------------------------------------------------===*/ 14193323Sed 15193323Sed#ifndef LLVM_C_TRANSFORMS_IPO_H 16193323Sed#define LLVM_C_TRANSFORMS_IPO_H 17193323Sed 18193323Sed#include "llvm-c/Core.h" 19193323Sed 20193323Sed#ifdef __cplusplus 21193323Sedextern "C" { 22193323Sed#endif 23193323Sed 24234353Sdim/** 25234353Sdim * @defgroup LLVMCTransformsIPO Interprocedural transformations 26234353Sdim * @ingroup LLVMCTransforms 27234353Sdim * 28234353Sdim * @{ 29234353Sdim */ 30234353Sdim 31193323Sed/** See llvm::createArgumentPromotionPass function. */ 32193323Sedvoid LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM); 33193323Sed 34193323Sed/** See llvm::createConstantMergePass function. */ 35193323Sedvoid LLVMAddConstantMergePass(LLVMPassManagerRef PM); 36193323Sed 37193323Sed/** See llvm::createDeadArgEliminationPass function. */ 38193323Sedvoid LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM); 39193323Sed 40193323Sed/** See llvm::createFunctionAttrsPass function. */ 41193323Sedvoid LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM); 42193323Sed 43193323Sed/** See llvm::createFunctionInliningPass function. */ 44193323Sedvoid LLVMAddFunctionInliningPass(LLVMPassManagerRef PM); 45193323Sed 46226633Sdim/** See llvm::createAlwaysInlinerPass function. */ 47226633Sdimvoid LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM); 48226633Sdim 49193323Sed/** See llvm::createGlobalDCEPass function. */ 50193323Sedvoid LLVMAddGlobalDCEPass(LLVMPassManagerRef PM); 51193323Sed 52193323Sed/** See llvm::createGlobalOptimizerPass function. */ 53193323Sedvoid LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM); 54193323Sed 55193323Sed/** See llvm::createIPConstantPropagationPass function. */ 56193323Sedvoid LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM); 57193323Sed 58193323Sed/** See llvm::createPruneEHPass function. */ 59193323Sedvoid LLVMAddPruneEHPass(LLVMPassManagerRef PM); 60193323Sed 61207618Srdivacky/** See llvm::createIPSCCPPass function. */ 62207618Srdivackyvoid LLVMAddIPSCCPPass(LLVMPassManagerRef PM); 63207618Srdivacky 64207618Srdivacky/** See llvm::createInternalizePass function. */ 65207618Srdivackyvoid LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain); 66207618Srdivacky 67193323Sed/** See llvm::createStripDeadPrototypesPass function. */ 68193323Sedvoid LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM); 69193323Sed 70193323Sed/** See llvm::createStripSymbolsPass function. */ 71193323Sedvoid LLVMAddStripSymbolsPass(LLVMPassManagerRef PM); 72193323Sed 73234353Sdim/** 74234353Sdim * @} 75234353Sdim */ 76234353Sdim 77193323Sed#ifdef __cplusplus 78193323Sed} 79193323Sed#endif /* defined(__cplusplus) */ 80193323Sed 81193323Sed#endif 82