aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-08-30 20:30:03 +0000
committerChris Lattner <sabre@nondot.org>2002-08-30 20:30:03 +0000
commit26d933a84969a18c0841721812c5429d1a9ff032 (patch)
treea8e17ce313a3c9eb7ff390f7ab8729a53a4d325f
parent74542b64b131be6e36a08d7831607856424fb192 (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.h37
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