Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
/*===-- IPO.h - Interprocedural Transformations C Interface -----*- C++ -*-===*\
2
|*                                                                            *|
3
|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
4
|* Exceptions.                                                                *|
5
|* See https://llvm.org/LICENSE.txt for license information.                  *|
6
|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
7
|*                                                                            *|
8
|*===----------------------------------------------------------------------===*|
9
|*                                                                            *|
10
|* This header declares the C interface to libLLVMIPO.a, which implements     *|
11
|* various interprocedural transformations of the LLVM IR.                    *|
12
|*                                                                            *|
13
\*===----------------------------------------------------------------------===*/
14
 
15
#ifndef LLVM_C_TRANSFORMS_IPO_H
16
#define LLVM_C_TRANSFORMS_IPO_H
17
 
18
#include "llvm-c/ExternC.h"
19
#include "llvm-c/Types.h"
20
 
21
LLVM_C_EXTERN_C_BEGIN
22
 
23
/**
24
 * @defgroup LLVMCTransformsIPO Interprocedural transformations
25
 * @ingroup LLVMCTransforms
26
 *
27
 * @{
28
 */
29
 
30
/** See llvm::createConstantMergePass function. */
31
void LLVMAddConstantMergePass(LLVMPassManagerRef PM);
32
 
33
/** See llvm::createMergeFunctionsPass function. */
34
void LLVMAddMergeFunctionsPass(LLVMPassManagerRef PM);
35
 
36
/** See llvm::createCalledValuePropagationPass function. */
37
void LLVMAddCalledValuePropagationPass(LLVMPassManagerRef PM);
38
 
39
/** See llvm::createDeadArgEliminationPass function. */
40
void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM);
41
 
42
/** See llvm::createFunctionAttrsPass function. */
43
void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM);
44
 
45
/** See llvm::createFunctionInliningPass function. */
46
void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM);
47
 
48
/** See llvm::createAlwaysInlinerPass function. */
49
void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM);
50
 
51
/** See llvm::createGlobalDCEPass function. */
52
void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM);
53
 
54
/** See llvm::createGlobalOptimizerPass function. */
55
void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM);
56
 
57
/** See llvm::createIPSCCPPass function. */
58
void LLVMAddIPSCCPPass(LLVMPassManagerRef PM);
59
 
60
/** See llvm::createInternalizePass function. */
61
void LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain);
62
 
63
/**
64
 * Create and add the internalize pass to the given pass manager with the
65
 * provided preservation callback.
66
 *
67
 * The context parameter is forwarded to the callback on each invocation.
68
 * As such, it is the responsibility of the caller to extend its lifetime
69
 * until execution of this pass has finished.
70
 *
71
 * @see llvm::createInternalizePass function.
72
 */
73
void LLVMAddInternalizePassWithMustPreservePredicate(
74
    LLVMPassManagerRef PM,
75
    void *Context,
76
    LLVMBool (*MustPreserve)(LLVMValueRef, void *));
77
 
78
/** See llvm::createStripDeadPrototypesPass function. */
79
void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM);
80
 
81
/** See llvm::createStripSymbolsPass function. */
82
void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM);
83
 
84
/**
85
 * @}
86
 */
87
 
88
LLVM_C_EXTERN_C_END
89
 
90
#endif