LLVM API Documentation

c/Transforms/Scalar.h
Go to the documentation of this file.
00001 /*===-- Scalar.h - Scalar Transformation Library C Interface ----*- C++ -*-===*\
00002 |*                                                                            *|
00003 |*                     The LLVM Compiler Infrastructure                       *|
00004 |*                                                                            *|
00005 |* This file is distributed under the University of Illinois Open Source      *|
00006 |* License. See LICENSE.TXT for details.                                      *|
00007 |*                                                                            *|
00008 |*===----------------------------------------------------------------------===*|
00009 |*                                                                            *|
00010 |* This header declares the C interface to libLLVMScalarOpts.a, which         *|
00011 |* implements various scalar transformations of the LLVM IR.                  *|
00012 |*                                                                            *|
00013 |* Many exotic languages can interoperate with C code but have a harder time  *|
00014 |* with C++ due to name mangling. So in addition to C, this interface enables *|
00015 |* tools written in such languages.                                           *|
00016 |*                                                                            *|
00017 \*===----------------------------------------------------------------------===*/
00018 
00019 #ifndef LLVM_C_TRANSFORMS_SCALAR_H
00020 #define LLVM_C_TRANSFORMS_SCALAR_H
00021 
00022 #include "llvm-c/Core.h"
00023 
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027 
00028 /**
00029  * @defgroup LLVMCTransformsScalar Scalar transformations
00030  * @ingroup LLVMCTransforms
00031  *
00032  * @{
00033  */
00034 
00035 /** See llvm::createAggressiveDCEPass function. */
00036 void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM);
00037 
00038 /** See llvm::createAlignmentFromAssumptionsPass function. */
00039 void LLVMAddAlignmentFromAssumptionsPass(LLVMPassManagerRef PM);
00040 
00041 /** See llvm::createCFGSimplificationPass function. */
00042 void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM);
00043 
00044 /** See llvm::createDeadStoreEliminationPass function. */
00045 void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM);
00046 
00047 /** See llvm::createScalarizerPass function. */
00048 void LLVMAddScalarizerPass(LLVMPassManagerRef PM);
00049 
00050 /** See llvm::createMergedLoadStoreMotionPass function. */
00051 void LLVMAddMergedLoadStoreMotionPass(LLVMPassManagerRef PM);
00052 
00053 /** See llvm::createGVNPass function. */
00054 void LLVMAddGVNPass(LLVMPassManagerRef PM);
00055 
00056 /** See llvm::createIndVarSimplifyPass function. */
00057 void LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM);
00058 
00059 /** See llvm::createInstructionCombiningPass function. */
00060 void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM);
00061 
00062 /** See llvm::createJumpThreadingPass function. */
00063 void LLVMAddJumpThreadingPass(LLVMPassManagerRef PM);
00064 
00065 /** See llvm::createLICMPass function. */
00066 void LLVMAddLICMPass(LLVMPassManagerRef PM);
00067 
00068 /** See llvm::createLoopDeletionPass function. */
00069 void LLVMAddLoopDeletionPass(LLVMPassManagerRef PM);
00070 
00071 /** See llvm::createLoopIdiomPass function */
00072 void LLVMAddLoopIdiomPass(LLVMPassManagerRef PM);
00073 
00074 /** See llvm::createLoopRotatePass function. */
00075 void LLVMAddLoopRotatePass(LLVMPassManagerRef PM);
00076 
00077 /** See llvm::createLoopRerollPass function. */
00078 void LLVMAddLoopRerollPass(LLVMPassManagerRef PM);
00079 
00080 /** See llvm::createLoopUnrollPass function. */
00081 void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM);
00082 
00083 /** See llvm::createLoopUnswitchPass function. */
00084 void LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM);
00085 
00086 /** See llvm::createMemCpyOptPass function. */
00087 void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM);
00088 
00089 /** See llvm::createPartiallyInlineLibCallsPass function. */
00090 void LLVMAddPartiallyInlineLibCallsPass(LLVMPassManagerRef PM);
00091 
00092 /** See llvm::createLowerSwitchPass function. */
00093 void LLVMAddLowerSwitchPass(LLVMPassManagerRef PM);
00094 
00095 /** See llvm::createPromoteMemoryToRegisterPass function. */
00096 void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM);
00097 
00098 /** See llvm::createReassociatePass function. */
00099 void LLVMAddReassociatePass(LLVMPassManagerRef PM);
00100 
00101 /** See llvm::createSCCPPass function. */
00102 void LLVMAddSCCPPass(LLVMPassManagerRef PM);
00103 
00104 /** See llvm::createScalarReplAggregatesPass function. */
00105 void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM);
00106 
00107 /** See llvm::createScalarReplAggregatesPass function. */
00108 void LLVMAddScalarReplAggregatesPassSSA(LLVMPassManagerRef PM);
00109 
00110 /** See llvm::createScalarReplAggregatesPass function. */
00111 void LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM,
00112                                                   int Threshold);
00113 
00114 /** See llvm::createSimplifyLibCallsPass function. */
00115 void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM);
00116 
00117 /** See llvm::createTailCallEliminationPass function. */
00118 void LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM);
00119 
00120 /** See llvm::createConstantPropagationPass function. */
00121 void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM);
00122 
00123 /** See llvm::demotePromoteMemoryToRegisterPass function. */
00124 void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM);
00125 
00126 /** See llvm::createVerifierPass function. */
00127 void LLVMAddVerifierPass(LLVMPassManagerRef PM);
00128 
00129 /** See llvm::createCorrelatedValuePropagationPass function */
00130 void LLVMAddCorrelatedValuePropagationPass(LLVMPassManagerRef PM);
00131 
00132 /** See llvm::createEarlyCSEPass function */
00133 void LLVMAddEarlyCSEPass(LLVMPassManagerRef PM);
00134 
00135 /** See llvm::createLowerExpectIntrinsicPass function */
00136 void LLVMAddLowerExpectIntrinsicPass(LLVMPassManagerRef PM);
00137 
00138 /** See llvm::createTypeBasedAliasAnalysisPass function */
00139 void LLVMAddTypeBasedAliasAnalysisPass(LLVMPassManagerRef PM);
00140 
00141 /** See llvm::createScopedNoAliasAAPass function */
00142 void LLVMAddScopedNoAliasAAPass(LLVMPassManagerRef PM);
00143 
00144 /** See llvm::createBasicAliasAnalysisPass function */
00145 void LLVMAddBasicAliasAnalysisPass(LLVMPassManagerRef PM);
00146 
00147 /**
00148  * @}
00149  */
00150 
00151 #ifdef __cplusplus
00152 }
00153 #endif /* defined(__cplusplus) */
00154 
00155 #endif