LLVM  8.0.1
Classes | Namespaces | Functions
GVN.h File Reference

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>
Include dependency graph for GVN.h:
This graph shows which files directly or indirectly include this file:

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

FunctionPassllvm::createGVNPass (bool NoLoads=false)
 Create a legacy GVN pass. More...
 

Detailed Description

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.