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