LLVM 22.0.0git
|
Class for computing the Flow-aware embeddings of IR2Vec. More...
#include "llvm/Analysis/IR2Vec.h"
Public Member Functions | |
FlowAwareEmbedder (const Function &F, const Vocabulary &Vocab) | |
void | invalidateEmbeddings () override |
Invalidate embeddings if cached. | |
Public Member Functions inherited from llvm::ir2vec::Embedder | |
virtual | ~Embedder ()=default |
LLVM_ABI Embedding | getInstVector (const Instruction &I) const |
Computes and returns the embedding for a given instruction in the function F. | |
LLVM_ABI Embedding | getBBVector (const BasicBlock &BB) const |
Computes and returns the embedding for a given basic block in the function F. | |
LLVM_ABI Embedding | getFunctionVector () const |
Computes and returns the embedding for the current function. |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::ir2vec::Embedder | |
static LLVM_ABI std::unique_ptr< Embedder > | create (IR2VecKind Mode, const Function &F, const Vocabulary &Vocab) |
Factory method to create an Embedder object. | |
Protected Member Functions inherited from llvm::ir2vec::Embedder | |
LLVM_ABI | Embedder (const Function &F, const Vocabulary &Vocab) |
Embedding | computeEmbeddings () const |
Function to compute embeddings. | |
Embedding | computeEmbeddings (const BasicBlock &BB) const |
Function to compute the embedding for a given basic block. | |
Protected Attributes inherited from llvm::ir2vec::Embedder | |
const Function & | F |
const Vocabulary & | Vocab |
const unsigned | Dimension |
Dimension of the vector representation; captured from the input vocabulary. | |
const float | OpcWeight |
Weights for different entities (like opcode, arguments, types) in the IR instructions to generate the vector representation. | |
const float | TypeWeight |
const float | ArgWeight |
Class for computing the Flow-aware embeddings of IR2Vec.
Flow-aware embeddings build on the vocabulary, just like Symbolic embeddings, and additionally capture the flow information in the IR.
|
inline |
Definition at line 604 of file IR2Vec.h.
References llvm::ir2vec::Embedder::Embedder(), llvm::ir2vec::Embedder::F, and llvm::ir2vec::Embedder::Vocab.
|
inlineoverridevirtual |
Invalidate embeddings if cached.
The embeddings may not be relevant anymore when the IR changes due to transformations. In such cases, the cached embeddings should be invalidated to ensure correctness/recomputation. This is a no-op for SymbolicEmbedder but removes all the cached entries in FlowAwareEmbedder.
Reimplemented from llvm::ir2vec::Embedder.