Initial implementation of basic value numbering
This file will probably go away at some point llvm-svn: 3542
This commit is contained in:
parent
c05581fb31
commit
a70e697e29
|
@ -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
|
Loading…
Reference in New Issue