From c39546cceb8526b332852bafd0689f6ee4867b11 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 10 Apr 2004 22:32:09 +0000 Subject: [PATCH] Add an interface to update value numbering git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12822 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/ValueNumbering.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/include/llvm/Analysis/ValueNumbering.h b/include/llvm/Analysis/ValueNumbering.h index b337a22a675..0ce8336afe6 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 &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();