2002-07-23 19:48:52 +00:00
|
|
|
//===- llvm/Transforms/IPO.h - Interprocedural Optimiations -----*- C++ -*-===//
|
2001-10-31 04:32:53 +00:00
|
|
|
//
|
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
2002-07-23 19:48:52 +00:00
|
|
|
#ifndef LLVM_TRANSFORMS_IPO_H
|
|
|
|
#define LLVM_TRANSFORMS_IPO_H
|
2001-10-31 04:32:53 +00:00
|
|
|
|
2002-02-26 21:46:54 +00:00
|
|
|
class Pass;
|
2002-04-10 20:31:22 +00:00
|
|
|
|
2002-07-23 19:48:52 +00:00
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// createDeadTypeEliminationPass - Return a new pass that eliminates symbol
|
|
|
|
// table entries for types that are never used.
|
2002-04-10 20:31:22 +00:00
|
|
|
//
|
2002-07-23 19:48:52 +00:00
|
|
|
Pass *createDeadTypeEliminationPass();
|
2001-10-31 04:32:53 +00:00
|
|
|
|
2002-04-10 20:31:22 +00:00
|
|
|
|
2002-07-23 19:48:52 +00:00
|
|
|
//===----------------------------------------------------------------------===//
|
2002-04-10 20:31:22 +00:00
|
|
|
// FunctionResolvingPass - Go over the functions that are in the module and
|
|
|
|
// look for functions that have the same name. More often than not, there will
|
|
|
|
// be things like:
|
|
|
|
// void "foo"(...)
|
|
|
|
// void "foo"(int, int)
|
|
|
|
// because of the way things are declared in C. If this is the case, patch
|
|
|
|
// things up.
|
|
|
|
//
|
|
|
|
// This is an interprocedural pass.
|
|
|
|
//
|
|
|
|
Pass *createFunctionResolvingPass();
|
|
|
|
|
2001-10-31 04:32:53 +00:00
|
|
|
#endif
|