|
LLVM 22.0.0git
|
#include "llvm/IR/InstVisitor.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/PassManager.h"#include "llvm/Pass.h"#include "llvm/Support/Allocator.h"#include "llvm/Support/Compiler.h"#include <optional>Go to the source code of this file.
Classes | |
| struct | llvm::IRSimilarity::IRInstructionData |
| This provides the utilities for hashing an Instruction to an unsigned integer. More... | |
| struct | llvm::IRSimilarity::IRInstructionDataList |
| struct | llvm::IRSimilarity::IRInstructionDataTraits |
| struct | llvm::IRSimilarity::IRInstructionMapper |
| Helper struct for converting the Instructions in a Module into a vector of unsigned integers. More... | |
| struct | llvm::IRSimilarity::IRInstructionMapper::InstructionClassification |
| Custom InstVisitor to classify different instructions for whether it can be analyzed for similarity. More... | |
| class | llvm::IRSimilarity::IRSimilarityCandidate |
| This is a class that wraps a range of IRInstructionData from one point to another in the vector of IRInstructionData, which is a region of the program. More... | |
| struct | llvm::IRSimilarity::IRSimilarityCandidate::OperandMapping |
| struct | llvm::IRSimilarity::IRSimilarityCandidate::RelativeLocMapping |
| A helper struct to hold the candidate, for a branch instruction, the relative location of a label, and the label itself. More... | |
| class | llvm::IRSimilarity::IRSimilarityIdentifier |
| This class puts all the pieces of the IRInstructionData, IRInstructionMapper, IRSimilarityCandidate together. More... | |
| class | llvm::IRSimilarityIdentifierWrapperPass |
| An analysis pass based on legacy pass manager that runs and returns IRSimilarityIdentifier run on the Module. More... | |
| class | llvm::IRSimilarityAnalysis |
| An analysis pass that runs and returns the IRSimilarityIdentifier run on the Module. More... | |
| class | llvm::IRSimilarityAnalysisPrinterPass |
Printer pass that uses IRSimilarityAnalysis. More... | |
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
| namespace | llvm::IRSimilarity |
Typedefs | |
| typedef DenseMap< IRSimilarityCandidate *, DenseMap< unsigned, DenseSet< unsigned > > > | llvm::IRSimilarity::CandidateGVNMapping |
| typedef std::vector< IRSimilarityCandidate > | llvm::IRSimilarity::SimilarityGroup |
| typedef std::vector< SimilarityGroup > | llvm::IRSimilarity::SimilarityGroupList |
Enumerations | |
| enum | llvm::IRSimilarity::InstrType { llvm::IRSimilarity::Legal , llvm::IRSimilarity::Illegal , llvm::IRSimilarity::Invisible } |
| This represents what is and is not supported when finding similarity in Instructions. More... | |
Functions | |
| LLVM_ABI bool | llvm::IRSimilarity::isClose (const IRInstructionData &A, const IRInstructionData &B) |
| Compare one IRInstructionData class to another IRInstructionData class for whether they are performing a the same operation, and can mapped to the same value. | |