LLVM 20.0.0git
|
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::GVNPass::LeaderMap::LeaderTableEntry |
class | llvm::GVNPass::LeaderMap::leader_iterator |
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 | |
FunctionPass * | llvm::createGVNPass (bool NoMemDepAnalysis=false) |
Create a legacy GVN pass. | |
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.