Initial implementation of basic value numbering

This file will probably go away at some point

llvm-svn: 3542
This commit is contained in:
Chris Lattner 2002-08-30 20:30:03 +00:00
parent c05581fb31
commit a70e697e29
1 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,37 @@
//===- llvm/Analysis/BasicValueNumbering.h - Value #'ing Impl ---*- C++ -*-===//
//
// This file defines the default implementation of the Value Numbering
// interface, which uses the SSA value graph to find lexically identical
// expressions. This does not require any computation ahead of time, so it is a
// very fast default implementation.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_ANALYSIS_BASIC_VALUE_NUMBERING_H
#define LLVM_ANALYSIS_BASIC_VALUE_NUMBERING_H
#include "llvm/Analysis/ValueNumbering.h"
#include "llvm/Pass.h"
struct BasicValueNumbering : public FunctionPass, public ValueNumbering {
/// Pass Implementation stuff. This isn't much of a pass.
///
bool runOnFunction(Function &) { return false; }
/// getAnalysisUsage - Does not modify anything.
///
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
}
/// getEqualNumberNodes - Return nodes with the same value number as the
/// specified Value. This fills in the argument vector with any equal values.
///
/// This is where our implementation is.
///
virtual void getEqualNumberNodes(Value *V1,
std::vector<Value*> &RetVals) const;
};
#endif