|
LLVM 22.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 <variant>#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 | |
| LLVM_ABI FunctionPass * | llvm::createGVNPass () |
| 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.