diff options
author | Chris Lattner <sabre@nondot.org> | 2002-08-30 20:30:03 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-08-30 20:30:03 +0000 |
commit | 26d933a84969a18c0841721812c5429d1a9ff032 (patch) | |
tree | a8e17ce313a3c9eb7ff390f7ab8729a53a4d325f | |
parent | 74542b64b131be6e36a08d7831607856424fb192 (diff) |
Initial implementation of basic value numbering
This file will probably go away at some point
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3542 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Analysis/BasicValueNumbering.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/llvm/Analysis/BasicValueNumbering.h b/include/llvm/Analysis/BasicValueNumbering.h new file mode 100644 index 0000000000..66c7d94c1a --- /dev/null +++ b/include/llvm/Analysis/BasicValueNumbering.h @@ -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 |