Initial implementation of basic value numbering
authorChris Lattner <sabre@nondot.org>
Fri, 30 Aug 2002 20:30:03 +0000 (20:30 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 30 Aug 2002 20:30:03 +0000 (20:30 +0000)
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

include/llvm/Analysis/BasicValueNumbering.h [new file with mode: 0644]

diff --git a/include/llvm/Analysis/BasicValueNumbering.h b/include/llvm/Analysis/BasicValueNumbering.h
new file mode 100644 (file)
index 0000000..66c7d94
--- /dev/null
@@ -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