IPO.h revision 193323
113687Swosch/*===-- IPO.h - Interprocedural Transformations C Interface -----*- C++ -*-===*\
213687Swosch|*                                                                            *|
313687Swosch|*                     The LLVM Compiler Infrastructure                       *|
450477Speter|*                                                                            *|
513687Swosch|* This file is distributed under the University of Illinois Open Source      *|
613687Swosch|* License. See LICENSE.TXT for details.                                      *|
778047Sache|*                                                                            *|
878047Sache|*===----------------------------------------------------------------------===*|
913687Swosch|*                                                                            *|
1078047Sache|* This header declares the C interface to libLLVMIPO.a, which implements     *|
1115714Sache|* various interprocedural transformations of the LLVM IR.                    *|
1213687Swosch|*                                                                            *|
1313687Swosch\*===----------------------------------------------------------------------===*/
1413687Swosch
1513687Swosch#ifndef LLVM_C_TRANSFORMS_IPO_H
1613687Swosch#define LLVM_C_TRANSFORMS_IPO_H
17120931Sgrog
1813687Swosch#include "llvm-c/Core.h"
19157788Sbrueffer
2013687Swosch#ifdef __cplusplus
2113687Swoschextern "C" {
2213687Swosch#endif
2313687Swosch
24120931Sgrog/** See llvm::createArgumentPromotionPass function. */
2513687Swoschvoid LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM);
26157876Sbrueffer
27157876Sbrueffer/** See llvm::createConstantMergePass function. */
28120931Sgrogvoid LLVMAddConstantMergePass(LLVMPassManagerRef PM);
29157876Sbrueffer
30157876Sbrueffer/** See llvm::createDeadArgEliminationPass function. */
31157876Sbrueffervoid LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM);
32162910Smaxim
33120931Sgrog/** See llvm::createDeadTypeEliminationPass function. */
34157876Sbrueffervoid LLVMAddDeadTypeEliminationPass(LLVMPassManagerRef PM);
35157876Sbrueffer
36157876Sbrueffer/** See llvm::createFunctionAttrsPass function. */
37157876Sbrueffervoid LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM);
38120931Sgrog
3913687Swosch/** See llvm::createFunctionInliningPass function. */
4013687Swoschvoid LLVMAddFunctionInliningPass(LLVMPassManagerRef PM);
41162909Smaxim
4213687Swosch/** See llvm::createGlobalDCEPass function. */
4313687Swoschvoid LLVMAddGlobalDCEPass(LLVMPassManagerRef PM);
44103774Sgrog
4513687Swosch/** See llvm::createGlobalOptimizerPass function. */
46103774Sgrogvoid LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM);
47162910Smaxim
4813687Swosch/** See llvm::createIPConstantPropagationPass function. */
4913687Swoschvoid LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM);
5013687Swosch
5113687Swosch/** See llvm::createLowerSetJmpPass function. */
5213687Swoschvoid LLVMAddLowerSetJmpPass(LLVMPassManagerRef PM);
5313842Swosch
5413842Swosch/** See llvm::createPruneEHPass function. */
5513842Swoschvoid LLVMAddPruneEHPass(LLVMPassManagerRef PM);
5678047Sache
57/** See llvm::createRaiseAllocationsPass function. */
58void LLVMAddRaiseAllocationsPass(LLVMPassManagerRef PM);
59
60/** See llvm::createStripDeadPrototypesPass function. */
61void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM);
62
63/** See llvm::createStripSymbolsPass function. */
64void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM);
65
66#ifdef __cplusplus
67}
68#endif /* defined(__cplusplus) */
69
70#endif
71