LLVM 20.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 <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 | |
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. | |