LLVM  13.0.0git
Classes | Namespaces | Functions
GVN.h File Reference
#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/InstructionPrecedenceTracking.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

struct  llvm::GVNOptions
 A set of parameters to control various transforms performed by GVN pass. More...
 
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
 ---------------------— PointerInfo ------------------------------------—
 
 llvm::LLVM_LIBRARY_VISIBILITY
 A private "module" namespace for types and utilities used by GVN.
 

Functions

FunctionPassllvm::createGVNPass (bool NoMemDepAnalysis=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.