LLVM
8.0.1
|
This file provides the interface for LLVM's Global Value Numbering pass which eliminates fully redundant instructions. More...
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/InstructionPrecedenceTracking.h"
#include "llvm/Analysis/MemoryDependenceAnalysis.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Compiler.h"
#include <cstdint>
#include <utility>
#include <vector>
Go to the source code of this file.
Classes | |
class | llvm::GVN |
The core GVN pass object. More... | |
class | llvm::GVN::ValueTable |
This class holds the mapping between values and value numbers. More... | |
struct | llvm::GVNHoistPass |
A simple and fast domtree-based GVN pass to hoist common expressions from sibling branches. More... | |
struct | llvm::GVNSinkPass |
Uses an "inverted" value numbering to decide the similarity of expressions and sinks similar expressions into successors. More... | |
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
llvm::LLVM_LIBRARY_VISIBILITY | |
A private "module" namespace for types and utilities used by GVN. | |
Functions | |
FunctionPass * | llvm::createGVNPass (bool NoLoads=false) |
Create a legacy GVN pass. More... | |
This file provides the interface for LLVM's Global Value Numbering pass which eliminates fully redundant instructions.
It also does somewhat Ad-Hoc PRE and dead load elimination.
Definition in file GVN.h.