LLVM  16.0.0git
Classes | Namespaces | Functions
GVN.h File Reference
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallVector.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 <optional>
#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.


struct  llvm::GVNOptions
 A set of parameters to control various transforms performed by GVN pass. More...
class  llvm::GVNPass
 The core GVN pass object. More...
class  llvm::GVNPass::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...


 This is an optimization pass for GlobalISel generic memory operations.
 A private "module" namespace for types and utilities used by GVN.


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.