IPO.cpp revision 7abe37e4aee38cc79d91dd069a37d7e91d5bef53
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 libLLVMIPO.a, which implements 11// several transformations over the LLVM intermediate representation. 12// 13//===----------------------------------------------------------------------===// 14 15#include "llvm-c/Transforms/IPO.h" 16#include "llvm/PassManager.h" 17#include "llvm/Transforms/IPO.h" 18 19using namespace llvm; 20 21void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM) { 22 unwrap(PM)->add(createArgumentPromotionPass()); 23} 24 25void LLVMAddConstantMergePass(LLVMPassManagerRef PM) { 26 unwrap(PM)->add(createConstantMergePass()); 27} 28 29void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM) { 30 unwrap(PM)->add(createDeadArgEliminationPass()); 31} 32 33void LLVMAddDeadTypeEliminationPass(LLVMPassManagerRef PM) { 34 unwrap(PM)->add(createDeadTypeEliminationPass()); 35} 36 37void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM) { 38 unwrap(PM)->add(createFunctionAttrsPass()); 39} 40 41void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM) { 42 unwrap(PM)->add(createFunctionInliningPass()); 43} 44 45void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM) { 46 unwrap(PM)->add(createGlobalDCEPass()); 47} 48 49void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM) { 50 unwrap(PM)->add(createGlobalOptimizerPass()); 51} 52 53void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM) { 54 unwrap(PM)->add(createIPConstantPropagationPass()); 55} 56 57void LLVMAddLowerSetJmpPass(LLVMPassManagerRef PM) { 58 unwrap(PM)->add(createLowerSetJmpPass()); 59} 60 61void LLVMAddPruneEHPass(LLVMPassManagerRef PM) { 62 unwrap(PM)->add(createPruneEHPass()); 63} 64 65void LLVMAddIPSCCPPass(LLVMPassManagerRef PM) { 66 unwrap(PM)->add(createIPSCCPPass()); 67} 68 69void LLVMAddInternalizePass(LLVMPassManagerRef PM, unsigned AllButMain) { 70 unwrap(PM)->add(createInternalizePass(AllButMain != 0)); 71} 72 73 74void LLVMAddRaiseAllocationsPass(LLVMPassManagerRef PM) { 75 // FIXME: Remove in LLVM 3.0. 76} 77 78void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM) { 79 unwrap(PM)->add(createStripDeadPrototypesPass()); 80} 81 82void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM) { 83 unwrap(PM)->add(createStripSymbolsPass()); 84} 85