Scalar.cpp revision 205218
1193323Sed//===-- Scalar.cpp --------------------------------------------------------===// 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 file implements the C bindings for libLLVMScalarOpts.a, which implements 11193323Sed// several scalar transformations over the LLVM intermediate representation. 12193323Sed// 13193323Sed//===----------------------------------------------------------------------===// 14193323Sed 15193323Sed#include "llvm-c/Transforms/Scalar.h" 16193323Sed#include "llvm/PassManager.h" 17205218Srdivacky#include "llvm/Analysis/Verifier.h" 18205218Srdivacky#include "llvm/Target/TargetData.h" 19193323Sed#include "llvm/Transforms/Scalar.h" 20193323Sed 21193323Sedusing namespace llvm; 22193323Sed 23193323Sedvoid LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM) { 24193323Sed unwrap(PM)->add(createAggressiveDCEPass()); 25193323Sed} 26193323Sed 27193323Sedvoid LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM) { 28193323Sed unwrap(PM)->add(createCFGSimplificationPass()); 29193323Sed} 30193323Sed 31193323Sedvoid LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM) { 32193323Sed unwrap(PM)->add(createDeadStoreEliminationPass()); 33193323Sed} 34193323Sed 35193323Sedvoid LLVMAddGVNPass(LLVMPassManagerRef PM) { 36193323Sed unwrap(PM)->add(createGVNPass()); 37193323Sed} 38193323Sed 39193323Sedvoid LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM) { 40193323Sed unwrap(PM)->add(createIndVarSimplifyPass()); 41193323Sed} 42193323Sed 43193323Sedvoid LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM) { 44193323Sed unwrap(PM)->add(createInstructionCombiningPass()); 45193323Sed} 46193323Sed 47193323Sedvoid LLVMAddJumpThreadingPass(LLVMPassManagerRef PM) { 48193323Sed unwrap(PM)->add(createJumpThreadingPass()); 49193323Sed} 50193323Sed 51193323Sedvoid LLVMAddLICMPass(LLVMPassManagerRef PM) { 52193323Sed unwrap(PM)->add(createLICMPass()); 53193323Sed} 54193323Sed 55193323Sedvoid LLVMAddLoopDeletionPass(LLVMPassManagerRef PM) { 56193323Sed unwrap(PM)->add(createLoopDeletionPass()); 57193323Sed} 58193323Sed 59193323Sedvoid LLVMAddLoopIndexSplitPass(LLVMPassManagerRef PM) { 60193323Sed unwrap(PM)->add(createLoopIndexSplitPass()); 61193323Sed} 62193323Sed 63193323Sedvoid LLVMAddLoopRotatePass(LLVMPassManagerRef PM) { 64193323Sed unwrap(PM)->add(createLoopRotatePass()); 65193323Sed} 66193323Sed 67193323Sedvoid LLVMAddLoopUnrollPass(LLVMPassManagerRef PM) { 68193323Sed unwrap(PM)->add(createLoopUnrollPass()); 69193323Sed} 70193323Sed 71193323Sedvoid LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM) { 72193323Sed unwrap(PM)->add(createLoopUnswitchPass()); 73193323Sed} 74193323Sed 75193323Sedvoid LLVMAddMemCpyOptPass(LLVMPassManagerRef PM) { 76193323Sed unwrap(PM)->add(createMemCpyOptPass()); 77193323Sed} 78193323Sed 79193323Sedvoid LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM) { 80193323Sed unwrap(PM)->add(createPromoteMemoryToRegisterPass()); 81193323Sed} 82193323Sed 83193323Sedvoid LLVMAddReassociatePass(LLVMPassManagerRef PM) { 84193323Sed unwrap(PM)->add(createReassociatePass()); 85193323Sed} 86193323Sed 87193323Sedvoid LLVMAddSCCPPass(LLVMPassManagerRef PM) { 88193323Sed unwrap(PM)->add(createSCCPPass()); 89193323Sed} 90193323Sed 91193323Sedvoid LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM) { 92193323Sed unwrap(PM)->add(createScalarReplAggregatesPass()); 93193323Sed} 94193323Sed 95205218Srdivackyvoid LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM, 96205218Srdivacky int Threshold) { 97205218Srdivacky unwrap(PM)->add(createScalarReplAggregatesPass(Threshold)); 98205218Srdivacky} 99205218Srdivacky 100193323Sedvoid LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM) { 101193323Sed unwrap(PM)->add(createSimplifyLibCallsPass()); 102193323Sed} 103193323Sed 104193323Sedvoid LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM) { 105193323Sed unwrap(PM)->add(createTailCallEliminationPass()); 106193323Sed} 107193323Sed 108193323Sedvoid LLVMAddConstantPropagationPass(LLVMPassManagerRef PM) { 109193323Sed unwrap(PM)->add(createConstantPropagationPass()); 110193323Sed} 111193323Sed 112193323Sedvoid LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM) { 113193323Sed unwrap(PM)->add(createDemoteRegisterToMemoryPass()); 114193323Sed} 115205218Srdivacky 116205218Srdivackyvoid LLVMAddVerifierPass(LLVMPassManagerRef PM) { 117205218Srdivacky unwrap(PM)->add(createVerifierPass()); 118205218Srdivacky} 119