Scalar.cpp revision 208954
1//===-- Scalar.cpp --------------------------------------------------------===// 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 file implements the C bindings for libLLVMScalarOpts.a, which implements 11// several scalar transformations over the LLVM intermediate representation. 12// 13//===----------------------------------------------------------------------===// 14 15#include "llvm-c/Transforms/Scalar.h" 16#include "llvm/PassManager.h" 17#include "llvm/Analysis/Verifier.h" 18#include "llvm/Target/TargetData.h" 19#include "llvm/Transforms/Scalar.h" 20 21using namespace llvm; 22 23void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM) { 24 unwrap(PM)->add(createAggressiveDCEPass()); 25} 26 27void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM) { 28 unwrap(PM)->add(createCFGSimplificationPass()); 29} 30 31void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM) { 32 unwrap(PM)->add(createDeadStoreEliminationPass()); 33} 34 35void LLVMAddGVNPass(LLVMPassManagerRef PM) { 36 unwrap(PM)->add(createGVNPass()); 37} 38 39void LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM) { 40 unwrap(PM)->add(createIndVarSimplifyPass()); 41} 42 43void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM) { 44 unwrap(PM)->add(createInstructionCombiningPass()); 45} 46 47void LLVMAddJumpThreadingPass(LLVMPassManagerRef PM) { 48 unwrap(PM)->add(createJumpThreadingPass()); 49} 50 51void LLVMAddLICMPass(LLVMPassManagerRef PM) { 52 unwrap(PM)->add(createLICMPass()); 53} 54 55void LLVMAddLoopDeletionPass(LLVMPassManagerRef PM) { 56 unwrap(PM)->add(createLoopDeletionPass()); 57} 58 59void LLVMAddLoopIndexSplitPass(LLVMPassManagerRef PM) { 60 unwrap(PM)->add(createLoopIndexSplitPass()); 61} 62 63void LLVMAddLoopRotatePass(LLVMPassManagerRef PM) { 64 unwrap(PM)->add(createLoopRotatePass()); 65} 66 67void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM) { 68 unwrap(PM)->add(createLoopUnrollPass()); 69} 70 71void LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM) { 72 unwrap(PM)->add(createLoopUnswitchPass()); 73} 74 75void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM) { 76 unwrap(PM)->add(createMemCpyOptPass()); 77} 78 79void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM) { 80 unwrap(PM)->add(createPromoteMemoryToRegisterPass()); 81} 82 83void LLVMAddReassociatePass(LLVMPassManagerRef PM) { 84 unwrap(PM)->add(createReassociatePass()); 85} 86 87void LLVMAddSCCPPass(LLVMPassManagerRef PM) { 88 unwrap(PM)->add(createSCCPPass()); 89} 90 91void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM) { 92 unwrap(PM)->add(createScalarReplAggregatesPass()); 93} 94 95void LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM, 96 int Threshold) { 97 unwrap(PM)->add(createScalarReplAggregatesPass(Threshold)); 98} 99 100void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM) { 101 unwrap(PM)->add(createSimplifyLibCallsPass()); 102} 103 104void LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM) { 105 unwrap(PM)->add(createTailCallEliminationPass()); 106} 107 108void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM) { 109 unwrap(PM)->add(createConstantPropagationPass()); 110} 111 112void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM) { 113 unwrap(PM)->add(createDemoteRegisterToMemoryPass()); 114} 115 116void LLVMAddVerifierPass(LLVMPassManagerRef PM) { 117 unwrap(PM)->add(createVerifierPass()); 118} 119