Scalar.h revision 296417
1193323Sed/*===-- Scalar.h - Scalar Transformation Library C Interface ----*- C++ -*-===*\ 2193323Sed|* *| 3193323Sed|* The LLVM Compiler Infrastructure *| 4193323Sed|* *| 5193323Sed|* This file is distributed under the University of Illinois Open Source *| 6193323Sed|* License. See LICENSE.TXT for details. *| 7193323Sed|* *| 8193323Sed|*===----------------------------------------------------------------------===*| 9193323Sed|* *| 10193323Sed|* This header declares the C interface to libLLVMScalarOpts.a, which *| 11193323Sed|* implements various scalar transformations of the LLVM IR. *| 12193323Sed|* *| 13193323Sed|* Many exotic languages can interoperate with C code but have a harder time *| 14193323Sed|* with C++ due to name mangling. So in addition to C, this interface enables *| 15193323Sed|* tools written in such languages. *| 16193323Sed|* *| 17193323Sed\*===----------------------------------------------------------------------===*/ 18193323Sed 19193323Sed#ifndef LLVM_C_TRANSFORMS_SCALAR_H 20193323Sed#define LLVM_C_TRANSFORMS_SCALAR_H 21193323Sed 22296417Sdim#include "llvm-c/Types.h" 23193323Sed 24193323Sed#ifdef __cplusplus 25193323Sedextern "C" { 26193323Sed#endif 27193323Sed 28234353Sdim/** 29234353Sdim * @defgroup LLVMCTransformsScalar Scalar transformations 30234353Sdim * @ingroup LLVMCTransforms 31234353Sdim * 32234353Sdim * @{ 33234353Sdim */ 34234353Sdim 35193323Sed/** See llvm::createAggressiveDCEPass function. */ 36193323Sedvoid LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM); 37193323Sed 38288943Sdim/** See llvm::createBitTrackingDCEPass function. */ 39288943Sdimvoid LLVMAddBitTrackingDCEPass(LLVMPassManagerRef PM); 40288943Sdim 41280031Sdim/** See llvm::createAlignmentFromAssumptionsPass function. */ 42280031Sdimvoid LLVMAddAlignmentFromAssumptionsPass(LLVMPassManagerRef PM); 43280031Sdim 44193323Sed/** See llvm::createCFGSimplificationPass function. */ 45193323Sedvoid LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM); 46193323Sed 47193323Sed/** See llvm::createDeadStoreEliminationPass function. */ 48193323Sedvoid LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM); 49193323Sed 50276479Sdim/** See llvm::createScalarizerPass function. */ 51276479Sdimvoid LLVMAddScalarizerPass(LLVMPassManagerRef PM); 52276479Sdim 53276479Sdim/** See llvm::createMergedLoadStoreMotionPass function. */ 54276479Sdimvoid LLVMAddMergedLoadStoreMotionPass(LLVMPassManagerRef PM); 55276479Sdim 56193323Sed/** See llvm::createGVNPass function. */ 57193323Sedvoid LLVMAddGVNPass(LLVMPassManagerRef PM); 58193323Sed 59193323Sed/** See llvm::createIndVarSimplifyPass function. */ 60193323Sedvoid LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM); 61193323Sed 62193323Sed/** See llvm::createInstructionCombiningPass function. */ 63193323Sedvoid LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM); 64193323Sed 65193323Sed/** See llvm::createJumpThreadingPass function. */ 66193323Sedvoid LLVMAddJumpThreadingPass(LLVMPassManagerRef PM); 67193323Sed 68193323Sed/** See llvm::createLICMPass function. */ 69193323Sedvoid LLVMAddLICMPass(LLVMPassManagerRef PM); 70193323Sed 71193323Sed/** See llvm::createLoopDeletionPass function. */ 72193323Sedvoid LLVMAddLoopDeletionPass(LLVMPassManagerRef PM); 73193323Sed 74221345Sdim/** See llvm::createLoopIdiomPass function */ 75221345Sdimvoid LLVMAddLoopIdiomPass(LLVMPassManagerRef PM); 76221345Sdim 77193323Sed/** See llvm::createLoopRotatePass function. */ 78193323Sedvoid LLVMAddLoopRotatePass(LLVMPassManagerRef PM); 79193323Sed 80261991Sdim/** See llvm::createLoopRerollPass function. */ 81261991Sdimvoid LLVMAddLoopRerollPass(LLVMPassManagerRef PM); 82261991Sdim 83193323Sed/** See llvm::createLoopUnrollPass function. */ 84193323Sedvoid LLVMAddLoopUnrollPass(LLVMPassManagerRef PM); 85193323Sed 86193323Sed/** See llvm::createLoopUnswitchPass function. */ 87193323Sedvoid LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM); 88193323Sed 89193323Sed/** See llvm::createMemCpyOptPass function. */ 90193323Sedvoid LLVMAddMemCpyOptPass(LLVMPassManagerRef PM); 91193323Sed 92261991Sdim/** See llvm::createPartiallyInlineLibCallsPass function. */ 93261991Sdimvoid LLVMAddPartiallyInlineLibCallsPass(LLVMPassManagerRef PM); 94261991Sdim 95280031Sdim/** See llvm::createLowerSwitchPass function. */ 96280031Sdimvoid LLVMAddLowerSwitchPass(LLVMPassManagerRef PM); 97280031Sdim 98193323Sed/** See llvm::createPromoteMemoryToRegisterPass function. */ 99193323Sedvoid LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM); 100193323Sed 101193323Sed/** See llvm::createReassociatePass function. */ 102193323Sedvoid LLVMAddReassociatePass(LLVMPassManagerRef PM); 103193323Sed 104193323Sed/** See llvm::createSCCPPass function. */ 105193323Sedvoid LLVMAddSCCPPass(LLVMPassManagerRef PM); 106193323Sed 107193323Sed/** See llvm::createScalarReplAggregatesPass function. */ 108193323Sedvoid LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM); 109193323Sed 110205218Srdivacky/** See llvm::createScalarReplAggregatesPass function. */ 111221345Sdimvoid LLVMAddScalarReplAggregatesPassSSA(LLVMPassManagerRef PM); 112221345Sdim 113221345Sdim/** See llvm::createScalarReplAggregatesPass function. */ 114205218Srdivackyvoid LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM, 115205218Srdivacky int Threshold); 116205218Srdivacky 117193323Sed/** See llvm::createSimplifyLibCallsPass function. */ 118193323Sedvoid LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM); 119193323Sed 120193323Sed/** See llvm::createTailCallEliminationPass function. */ 121193323Sedvoid LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM); 122193323Sed 123193323Sed/** See llvm::createConstantPropagationPass function. */ 124193323Sedvoid LLVMAddConstantPropagationPass(LLVMPassManagerRef PM); 125193323Sed 126193323Sed/** See llvm::demotePromoteMemoryToRegisterPass function. */ 127193323Sedvoid LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM); 128193323Sed 129205218Srdivacky/** See llvm::createVerifierPass function. */ 130205218Srdivackyvoid LLVMAddVerifierPass(LLVMPassManagerRef PM); 131205218Srdivacky 132221345Sdim/** See llvm::createCorrelatedValuePropagationPass function */ 133221345Sdimvoid LLVMAddCorrelatedValuePropagationPass(LLVMPassManagerRef PM); 134221345Sdim 135221345Sdim/** See llvm::createEarlyCSEPass function */ 136221345Sdimvoid LLVMAddEarlyCSEPass(LLVMPassManagerRef PM); 137221345Sdim 138226633Sdim/** See llvm::createLowerExpectIntrinsicPass function */ 139226633Sdimvoid LLVMAddLowerExpectIntrinsicPass(LLVMPassManagerRef PM); 140226633Sdim 141221345Sdim/** See llvm::createTypeBasedAliasAnalysisPass function */ 142221345Sdimvoid LLVMAddTypeBasedAliasAnalysisPass(LLVMPassManagerRef PM); 143221345Sdim 144280031Sdim/** See llvm::createScopedNoAliasAAPass function */ 145280031Sdimvoid LLVMAddScopedNoAliasAAPass(LLVMPassManagerRef PM); 146280031Sdim 147221345Sdim/** See llvm::createBasicAliasAnalysisPass function */ 148221345Sdimvoid LLVMAddBasicAliasAnalysisPass(LLVMPassManagerRef PM); 149221345Sdim 150234353Sdim/** 151234353Sdim * @} 152234353Sdim */ 153221345Sdim 154193323Sed#ifdef __cplusplus 155193323Sed} 156193323Sed#endif /* defined(__cplusplus) */ 157193323Sed 158193323Sed#endif 159