Add an interface to update value numbering
authorChris Lattner <sabre@nondot.org>
Sat, 10 Apr 2004 22:32:09 +0000 (22:32 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 10 Apr 2004 22:32:09 +0000 (22:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12822 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/ValueNumbering.h

index b337a22a675eedf884e6b5a085c1a9875019cfa8..0ce8336afe67221d11b0b6fe5e57f0051da6248c 100644 (file)
@@ -28,6 +28,7 @@ namespace llvm {
 class Value;
 
 struct ValueNumbering {
+  virtual ~ValueNumbering();    // We want to be subclassed
 
   /// getEqualNumberNodes - Return nodes with the same value number as the
   /// specified Value.  This fills in the argument vector with any equal values.
@@ -35,7 +36,15 @@ struct ValueNumbering {
   virtual void getEqualNumberNodes(Value *V1,
                                    std::vector<Value*> &RetVals) const = 0;
 
-  virtual ~ValueNumbering();    // We want to be subclassed
+  ///===-------------------------------------------------------------------===//
+  /// Interfaces to update value numbering analysis information as the client
+  /// changes the program
+  ///
+
+  /// deleteInstruction - Clients should invoke this method when they delete an
+  /// instruction from the program.  This allows the analysis implementations to
+  /// avoid having dangling pointers in their representation.
+  virtual void deleteInstruction(Instruction *I) {}
 };
 
 extern void BasicValueNumberingStub();