| /*===-- Scalar.h - Scalar Transformation Library C Interface ----*- C++ -*-===*\ | 
 | |*                                                                            *| | 
 | |*                     The LLVM Compiler Infrastructure                       *| | 
 | |*                                                                            *| | 
 | |* This file is distributed under the University of Illinois Open Source      *| | 
 | |* License. See LICENSE.TXT for details.                                      *| | 
 | |*                                                                            *| | 
 | |*===----------------------------------------------------------------------===*| | 
 | |*                                                                            *| | 
 | |* This header declares the C interface to libLLVMScalarOpts.a, which         *| | 
 | |* implements various scalar transformations of the LLVM IR.                  *| | 
 | |*                                                                            *| | 
 | |* Many exotic languages can interoperate with C code but have a harder time  *| | 
 | |* with C++ due to name mangling. So in addition to C, this interface enables *| | 
 | |* tools written in such languages.                                           *| | 
 | |*                                                                            *| | 
 | \*===----------------------------------------------------------------------===*/ | 
 |  | 
 | #ifndef LLVM_C_TRANSFORMS_SCALAR_H | 
 | #define LLVM_C_TRANSFORMS_SCALAR_H | 
 |  | 
 | #include "llvm-c/Core.h" | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | /** See llvm::createAggressiveDCEPass function. */ | 
 | void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createCFGSimplificationPass function. */ | 
 | void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createDeadStoreEliminationPass function. */ | 
 | void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createGVNPass function. */ | 
 | void LLVMAddGVNPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createIndVarSimplifyPass function. */ | 
 | void LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createInstructionCombiningPass function. */ | 
 | void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createJumpThreadingPass function. */ | 
 | void LLVMAddJumpThreadingPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createLICMPass function. */ | 
 | void LLVMAddLICMPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createLoopDeletionPass function. */ | 
 | void LLVMAddLoopDeletionPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createLoopIdiomPass function */ | 
 | void LLVMAddLoopIdiomPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createLoopRotatePass function. */ | 
 | void LLVMAddLoopRotatePass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createLoopUnrollPass function. */ | 
 | void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createLoopUnswitchPass function. */ | 
 | void LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createMemCpyOptPass function. */ | 
 | void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createPromoteMemoryToRegisterPass function. */ | 
 | void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createReassociatePass function. */ | 
 | void LLVMAddReassociatePass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createSCCPPass function. */ | 
 | void LLVMAddSCCPPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createScalarReplAggregatesPass function. */ | 
 | void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createScalarReplAggregatesPass function. */ | 
 | void LLVMAddScalarReplAggregatesPassSSA(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createScalarReplAggregatesPass function. */ | 
 | void LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM, | 
 |                                                   int Threshold); | 
 |  | 
 | /** See llvm::createSimplifyLibCallsPass function. */ | 
 | void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createTailCallEliminationPass function. */ | 
 | void LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createConstantPropagationPass function. */ | 
 | void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::demotePromoteMemoryToRegisterPass function. */ | 
 | void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createVerifierPass function. */ | 
 | void LLVMAddVerifierPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createCorrelatedValuePropagationPass function */ | 
 | void LLVMAddCorrelatedValuePropagationPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createEarlyCSEPass function */ | 
 | void LLVMAddEarlyCSEPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createLowerExpectIntrinsicPass function */ | 
 | void LLVMAddLowerExpectIntrinsicPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createTypeBasedAliasAnalysisPass function */ | 
 | void LLVMAddTypeBasedAliasAnalysisPass(LLVMPassManagerRef PM); | 
 |  | 
 | /** See llvm::createBasicAliasAnalysisPass function */ | 
 | void LLVMAddBasicAliasAnalysisPass(LLVMPassManagerRef PM); | 
 |  | 
 |  | 
 | #ifdef __cplusplus | 
 | } | 
 | #endif /* defined(__cplusplus) */ | 
 |  | 
 | #endif |