1 //===- llvm/Transforms/IPO.h - Interprocedural Transformations --*- C++ -*-===//
3 // This header file defines prototypes for accessor functions that expose passes
4 // in the IPO transformations library.
6 //===----------------------------------------------------------------------===//
8 #ifndef LLVM_TRANSFORMS_IPO_H
9 #define LLVM_TRANSFORMS_IPO_H
13 //===----------------------------------------------------------------------===//
14 // createConstantMergePass - This function returns a new pass that merges
15 // duplicate global constants together into a single constant that is shared.
16 // This is useful because some passes (ie TraceValues) insert a lot of string
17 // constants into the program, regardless of whether or not they duplicate an
20 Pass *createConstantMergePass();
23 //===----------------------------------------------------------------------===//
24 // createDeadTypeEliminationPass - Return a new pass that eliminates symbol
25 // table entries for types that are never used.
27 Pass *createDeadTypeEliminationPass();
30 //===----------------------------------------------------------------------===//
31 // FunctionResolvingPass - Go over the functions that are in the module and
32 // look for functions that have the same name. More often than not, there will
35 // void "foo"(int, int)
36 // because of the way things are declared in C. If this is the case, patch
39 // This is an interprocedural pass.
41 Pass *createFunctionResolvingPass();