1224cef60f4d752594f6468156de0da0cd628d6efChris Lattner/*===-- IPO.h - Interprocedural Transformations C Interface -----*- C++ -*-===*\ 257c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner|* *| 357c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner|* The LLVM Compiler Infrastructure *| 457c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner|* *| 557c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner|* This file is distributed under the University of Illinois Open Source *| 657c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner|* License. See LICENSE.TXT for details. *| 757c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner|* *| 857c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner|*===----------------------------------------------------------------------===*| 957c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner|* *| 10224cef60f4d752594f6468156de0da0cd628d6efChris Lattner|* This header declares the C interface to libLLVMIPO.a, which implements *| 11224cef60f4d752594f6468156de0da0cd628d6efChris Lattner|* various interprocedural transformations of the LLVM IR. *| 1257c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner|* *| 1357c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner\*===----------------------------------------------------------------------===*/ 1457c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 15224cef60f4d752594f6468156de0da0cd628d6efChris Lattner#ifndef LLVM_C_TRANSFORMS_IPO_H 16224cef60f4d752594f6468156de0da0cd628d6efChris Lattner#define LLVM_C_TRANSFORMS_IPO_H 1757c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 1857c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner#include "llvm-c/Core.h" 1957c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 2057c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner#ifdef __cplusplus 2157c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnerextern "C" { 2257c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner#endif 2357c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 246244b518880842f2c15200ee041e06799e4cc779Gregory Szorc/** 256244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @defgroup LLVMCTransformsIPO Interprocedural transformations 266244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @ingroup LLVMCTransforms 276244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * 286244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @{ 296244b518880842f2c15200ee041e06799e4cc779Gregory Szorc */ 306244b518880842f2c15200ee041e06799e4cc779Gregory Szorc 3157c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createArgumentPromotionPass function. */ 3257c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM); 3357c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 3457c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createConstantMergePass function. */ 3557c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddConstantMergePass(LLVMPassManagerRef PM); 3657c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 3757c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createDeadArgEliminationPass function. */ 3857c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM); 3957c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 4057c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createFunctionAttrsPass function. */ 4157c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM); 4257c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 4357c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createFunctionInliningPass function. */ 4457c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddFunctionInliningPass(LLVMPassManagerRef PM); 4557c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 463d72290ecb30002d4372b6afbeda73812221ac3eRafael Espindola/** See llvm::createAlwaysInlinerPass function. */ 473d72290ecb30002d4372b6afbeda73812221ac3eRafael Espindolavoid LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM); 483d72290ecb30002d4372b6afbeda73812221ac3eRafael Espindola 4957c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createGlobalDCEPass function. */ 5057c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddGlobalDCEPass(LLVMPassManagerRef PM); 5157c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 5257c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createGlobalOptimizerPass function. */ 5357c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM); 5457c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 5557c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createIPConstantPropagationPass function. */ 5657c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM); 5757c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 5857c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createPruneEHPass function. */ 5957c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddPruneEHPass(LLVMPassManagerRef PM); 6057c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 6116ddd885d84beb57ac68e1503faa94cda279be4bWesley Peck/** See llvm::createIPSCCPPass function. */ 6216ddd885d84beb57ac68e1503faa94cda279be4bWesley Peckvoid LLVMAddIPSCCPPass(LLVMPassManagerRef PM); 6316ddd885d84beb57ac68e1503faa94cda279be4bWesley Peck 6416ddd885d84beb57ac68e1503faa94cda279be4bWesley Peck/** See llvm::createInternalizePass function. */ 6516ddd885d84beb57ac68e1503faa94cda279be4bWesley Peckvoid LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain); 6616ddd885d84beb57ac68e1503faa94cda279be4bWesley Peck 6757c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createStripDeadPrototypesPass function. */ 6857c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM); 6957c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 7057c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner/** See llvm::createStripSymbolsPass function. */ 7157c03831ccaabd619d1d7eb164375e7e3027031dChris Lattnervoid LLVMAddStripSymbolsPass(LLVMPassManagerRef PM); 7257c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 736244b518880842f2c15200ee041e06799e4cc779Gregory Szorc/** 746244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @} 756244b518880842f2c15200ee041e06799e4cc779Gregory Szorc */ 766244b518880842f2c15200ee041e06799e4cc779Gregory Szorc 7757c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner#ifdef __cplusplus 7857c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner} 7957c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner#endif /* defined(__cplusplus) */ 8057c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner 8157c03831ccaabd619d1d7eb164375e7e3027031dChris Lattner#endif 82