mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-25 17:20:48 +00:00
Initial implementation of basic value numbering
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
This commit is contained in:
37
include/llvm/Analysis/BasicValueNumbering.h
Normal file
37
include/llvm/Analysis/BasicValueNumbering.h
Normal file
@@ -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
|
Reference in New Issue
Block a user