aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Analysis/ValueNumbering.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/include/llvm/Analysis/ValueNumbering.h b/include/llvm/Analysis/ValueNumbering.h
index b337a22a67..0ce8336afe 100644
--- a/include/llvm/Analysis/ValueNumbering.h
+++ b/include/llvm/Analysis/ValueNumbering.h
@@ -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();