mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 00:33:09 +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:
parent
74542b64b1
commit
26d933a849
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
|
Loading…
Reference in New Issue
Block a user