Scalar.h revision 193323
1/*===-- Scalar.h - Scalar Transformation Library C Interface ----*- C++ -*-===*\ 2|* *| 3|* The LLVM Compiler Infrastructure *| 4|* *| 5|* This file is distributed under the University of Illinois Open Source *| 6|* License. See LICENSE.TXT for details. *| 7|* *| 8|*===----------------------------------------------------------------------===*| 9|* *| 10|* This header declares the C interface to libLLVMScalarOpts.a, which *| 11|* implements various scalar transformations of the LLVM IR. *| 12|* *| 13|* Many exotic languages can interoperate with C code but have a harder time *| 14|* with C++ due to name mangling. So in addition to C, this interface enables *| 15|* tools written in such languages. *| 16|* *| 17\*===----------------------------------------------------------------------===*/ 18 19#ifndef LLVM_C_TRANSFORMS_SCALAR_H 20#define LLVM_C_TRANSFORMS_SCALAR_H 21 22#include "llvm-c/Core.h" 23 24#ifdef __cplusplus 25extern "C" { 26#endif 27 28/** See llvm::createAggressiveDCEPass function. */ 29void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM); 30 31/** See llvm::createCFGSimplificationPass function. */ 32void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM); 33 34/** See llvm::createCondPropagationPass function. */ 35void LLVMAddCondPropagationPass(LLVMPassManagerRef PM); 36 37/** See llvm::createDeadStoreEliminationPass function. */ 38void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM); 39 40/** See llvm::createGVNPass function. */ 41void LLVMAddGVNPass(LLVMPassManagerRef PM); 42 43/** See llvm::createIndVarSimplifyPass function. */ 44void LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM); 45 46/** See llvm::createInstructionCombiningPass function. */ 47void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM); 48 49/** See llvm::createJumpThreadingPass function. */ 50void LLVMAddJumpThreadingPass(LLVMPassManagerRef PM); 51 52/** See llvm::createLICMPass function. */ 53void LLVMAddLICMPass(LLVMPassManagerRef PM); 54 55/** See llvm::createLoopDeletionPass function. */ 56void LLVMAddLoopDeletionPass(LLVMPassManagerRef PM); 57 58/** See llvm::createLoopIndexSplitPass function. */ 59void LLVMAddLoopIndexSplitPass(LLVMPassManagerRef PM); 60 61/** See llvm::createLoopRotatePass function. */ 62void LLVMAddLoopRotatePass(LLVMPassManagerRef PM); 63 64/** See llvm::createLoopUnrollPass function. */ 65void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM); 66 67/** See llvm::createLoopUnswitchPass function. */ 68void LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM); 69 70/** See llvm::createMemCpyOptPass function. */ 71void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM); 72 73/** See llvm::createPromoteMemoryToRegisterPass function. */ 74void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM); 75 76/** See llvm::createReassociatePass function. */ 77void LLVMAddReassociatePass(LLVMPassManagerRef PM); 78 79/** See llvm::createSCCPPass function. */ 80void LLVMAddSCCPPass(LLVMPassManagerRef PM); 81 82/** See llvm::createScalarReplAggregatesPass function. */ 83void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM); 84 85/** See llvm::createSimplifyLibCallsPass function. */ 86void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM); 87 88/** See llvm::createTailCallEliminationPass function. */ 89void LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM); 90 91/** See llvm::createConstantPropagationPass function. */ 92void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM); 93 94/** See llvm::demotePromoteMemoryToRegisterPass function. */ 95void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM); 96 97#ifdef __cplusplus 98} 99#endif /* defined(__cplusplus) */ 100 101#endif 102