2004-06-28 06:31:26 +00:00
|
|
|
//===-- llvm/Analysis/Passes.h - Constructors for analyses ------*- C++ -*-===//
|
2005-04-21 20:19:05 +00:00
|
|
|
//
|
2004-06-28 06:31:26 +00:00
|
|
|
// The LLVM Compiler Infrastructure
|
|
|
|
//
|
2007-12-29 19:59:42 +00:00
|
|
|
// This file is distributed under the University of Illinois Open Source
|
|
|
|
// License. See LICENSE.TXT for details.
|
2005-04-21 20:19:05 +00:00
|
|
|
//
|
2004-06-28 06:31:26 +00:00
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// This header file defines prototypes for accessor functions that expose passes
|
|
|
|
// in the analysis libraries.
|
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
#ifndef LLVM_ANALYSIS_PASSES_H
|
|
|
|
#define LLVM_ANALYSIS_PASSES_H
|
|
|
|
|
|
|
|
namespace llvm {
|
2005-01-08 22:01:16 +00:00
|
|
|
class FunctionPass;
|
|
|
|
class ImmutablePass;
|
|
|
|
class ModulePass;
|
2004-06-28 06:31:26 +00:00
|
|
|
class Pass;
|
|
|
|
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
2005-01-08 22:01:16 +00:00
|
|
|
// createGlobalsModRefPass - This pass provides alias and mod/ref info for
|
|
|
|
// global values that do not have their addresses taken.
|
2004-06-28 06:31:26 +00:00
|
|
|
//
|
|
|
|
Pass *createGlobalsModRefPass();
|
2005-01-08 22:01:16 +00:00
|
|
|
|
2006-11-14 05:21:04 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createAliasDebugger - This pass helps debug clients of AA
|
|
|
|
//
|
|
|
|
Pass *createAliasDebugger();
|
|
|
|
|
2005-01-08 22:01:16 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createAliasAnalysisCounterPass - This pass counts alias queries and how the
|
|
|
|
// alias analysis implementation responds.
|
|
|
|
//
|
|
|
|
ModulePass *createAliasAnalysisCounterPass();
|
|
|
|
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createAAEvalPass - This pass implements a simple N^2 alias analysis
|
|
|
|
// accuracy evaluator.
|
|
|
|
//
|
|
|
|
FunctionPass *createAAEvalPass();
|
|
|
|
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createNoAAPass - This pass implements a "I don't know" alias analysis.
|
|
|
|
//
|
|
|
|
ImmutablePass *createNoAAPass();
|
2005-04-21 20:19:05 +00:00
|
|
|
|
2005-01-08 22:01:16 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createBasicAliasAnalysisPass - This pass implements the default alias
|
|
|
|
// analysis.
|
|
|
|
//
|
|
|
|
ImmutablePass *createBasicAliasAnalysisPass();
|
2005-04-21 20:19:05 +00:00
|
|
|
|
2005-01-08 22:01:16 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createAndersensPass - This pass implements Andersen's interprocedural alias
|
|
|
|
// analysis.
|
|
|
|
//
|
|
|
|
ModulePass *createAndersensPass();
|
2005-04-21 20:19:05 +00:00
|
|
|
|
2005-01-08 22:01:16 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createBasicVNPass - This pass walks SSA def-use chains to trivially
|
|
|
|
// identify lexically identical expressions.
|
|
|
|
//
|
|
|
|
ImmutablePass *createBasicVNPass();
|
2005-04-21 20:19:05 +00:00
|
|
|
|
2005-01-08 22:01:16 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
2005-01-10 03:56:27 +00:00
|
|
|
// createProfileLoaderPass - This pass loads information from a profile dump
|
|
|
|
// file.
|
2005-01-08 22:01:16 +00:00
|
|
|
//
|
2005-01-10 03:56:27 +00:00
|
|
|
ModulePass *createProfileLoaderPass();
|
2005-04-21 20:19:05 +00:00
|
|
|
|
2005-01-08 22:01:16 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createNoProfileInfoPass - This pass implements the default "no profile".
|
|
|
|
//
|
|
|
|
ImmutablePass *createNoProfileInfoPass();
|
2005-04-21 20:19:05 +00:00
|
|
|
|
2005-01-09 20:42:52 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createDSAAPass - This pass implements simple context sensitive alias
|
|
|
|
// analysis.
|
|
|
|
//
|
|
|
|
ModulePass *createDSAAPass();
|
2005-04-21 20:19:05 +00:00
|
|
|
|
2005-01-09 20:42:52 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createDSOptPass - This pass uses DSA to do a series of simple
|
|
|
|
// optimizations.
|
|
|
|
//
|
|
|
|
ModulePass *createDSOptPass();
|
2005-04-21 20:19:05 +00:00
|
|
|
|
2005-01-09 20:42:52 +00:00
|
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// createSteensgaardPass - This pass uses the data structure graphs to do a
|
|
|
|
// simple context insensitive alias analysis.
|
|
|
|
//
|
|
|
|
ModulePass *createSteensgaardPass();
|
2005-10-24 01:00:32 +00:00
|
|
|
|
|
|
|
// Minor pass prototypes, allowing us to expose them through bugpoint and
|
|
|
|
// analyze.
|
|
|
|
FunctionPass *createInstCountPass();
|
2004-06-28 06:31:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|