LLVM 19.0.0git
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/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>

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::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...
 

Namespaces

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

Functions

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

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.