diff options
Diffstat (limited to 'include/llvm/Analysis/ValueNumbering.h')
-rw-r--r-- | include/llvm/Analysis/ValueNumbering.h | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/include/llvm/Analysis/ValueNumbering.h b/include/llvm/Analysis/ValueNumbering.h deleted file mode 100644 index 72452acda1..0000000000 --- a/include/llvm/Analysis/ValueNumbering.h +++ /dev/null @@ -1,75 +0,0 @@ -//===- llvm/Analysis/ValueNumbering.h - Value #'ing Interface ---*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file defines the abstract ValueNumbering interface, which is used as the -// common interface used by all clients of value numbering information, and -// implemented by all value numbering implementations. -// -// Implementations of this interface must implement the various virtual methods, -// which automatically provides functionality for the entire suite of client -// APIs. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_ANALYSIS_VALUE_NUMBERING_H -#define LLVM_ANALYSIS_VALUE_NUMBERING_H - -#include <vector> -#include "llvm/Pass.h" -#include "llvm/System/IncludeFile.h" - -namespace llvm { - -class Value; -class Instruction; - -struct ValueNumbering { - static char ID; // Class identification, replacement for typeinfo - 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. - /// - virtual void getEqualNumberNodes(Value *V1, - std::vector<Value*> &RetVals) const = 0; - - ///===-------------------------------------------------------------------===// - /// Interfaces to update value numbering analysis information as the client - /// changes the program. - /// - - /// deleteValue - This method should be called whenever an LLVM Value is - /// deleted from the program, for example when an instruction is found to be - /// redundant and is eliminated. - /// - virtual void deleteValue(Value *V) {} - - /// copyValue - This method should be used whenever a preexisting value in the - /// program is copied or cloned, introducing a new value. Note that analysis - /// implementations should tolerate clients that use this method to introduce - /// the same value multiple times: if the analysis already knows about a - /// value, it should ignore the request. - /// - virtual void copyValue(Value *From, Value *To) {} - - /// replaceWithNewValue - This method is the obvious combination of the two - /// above, and it provided as a helper to simplify client code. - /// - void replaceWithNewValue(Value *Old, Value *New) { - copyValue(Old, New); - deleteValue(Old); - } -}; - -} // End llvm namespace - -// Force any file including this header to get the implementation as well -FORCE_DEFINING_FILE_TO_BE_LINKED(BasicValueNumbering) - -#endif |