-
Notifications
You must be signed in to change notification settings - Fork 14.5k
[NFC][IR2Vec] Exposing helpers in IR2Vec Vocabulary #147841
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[NFC][IR2Vec] Exposing helpers in IR2Vec Vocabulary #147841
Conversation
@llvm/pr-subscribers-llvm-analysis @llvm/pr-subscribers-mlgo Author: S. VenkataKeerthy (svkeerthy) ChangesMinor refactoring IR2Vec vocabulary. This would help in upcoming PRs related to the IR2Vec tool. (Tracking issue - #141817) Full diff: https://github.com/llvm/llvm-project/pull/147841.diff 2 Files Affected:
diff --git a/llvm/include/llvm/Analysis/IR2Vec.h b/llvm/include/llvm/Analysis/IR2Vec.h
index 176cdaf7b5378..4209cf8d476b9 100644
--- a/llvm/include/llvm/Analysis/IR2Vec.h
+++ b/llvm/include/llvm/Analysis/IR2Vec.h
@@ -163,6 +163,14 @@ class Vocabulary {
static constexpr unsigned MaxOperandKinds =
static_cast<unsigned>(OperandKind::MaxOperandKind);
+public:
+ Vocabulary() = default;
+ Vocabulary(VocabVector &&Vocab);
+
+ bool isValid() const;
+ unsigned getDimension() const;
+ size_t size() const;
+
/// Helper function to get vocabulary key for a given Opcode
static StringRef getVocabKeyForOpcode(unsigned Opcode);
@@ -175,14 +183,6 @@ class Vocabulary {
/// Helper function to classify an operand into OperandKind
static OperandKind getOperandKind(const Value *Op);
-public:
- Vocabulary() = default;
- Vocabulary(VocabVector &&Vocab);
-
- bool isValid() const;
- unsigned getDimension() const;
- size_t size() const;
-
/// Accessors to get the embedding for a given entity.
const ir2vec::Embedding &operator[](unsigned Opcode) const;
const ir2vec::Embedding &operator[](Type::TypeID TypeId) const;
diff --git a/llvm/lib/Analysis/IR2Vec.cpp b/llvm/lib/Analysis/IR2Vec.cpp
index f97644b93a3d4..d1eb709012a57 100644
--- a/llvm/lib/Analysis/IR2Vec.cpp
+++ b/llvm/lib/Analysis/IR2Vec.cpp
@@ -518,7 +518,8 @@ IR2VecVocabAnalysis::run(Module &M, ModuleAnalysisManager &AM) {
// Otherwise, try to read from the vocabulary file.
if (VocabFile.empty()) {
// FIXME: Use default vocabulary
- Ctx->emitError("IR2Vec vocabulary file path not specified");
+ Ctx->emitError("IR2Vec vocabulary file path not specified; You may need to "
+ "set it using --ir2vec-vocab-path");
return Vocabulary(); // Return invalid result
}
if (auto Err = readVocabulary()) {
|
@@ -163,6 +163,14 @@ class Vocabulary { | |||
static constexpr unsigned MaxOperandKinds = | |||
static_cast<unsigned>(OperandKind::MaxOperandKind); | |||
|
|||
public: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the point of moving these declarations? Keep them in the same order but also make the getVocabKeyFor*
functions part of the public interface?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just prefer to have constructor in the top :)
@@ -518,7 +518,8 @@ IR2VecVocabAnalysis::run(Module &M, ModuleAnalysisManager &AM) { | |||
// Otherwise, try to read from the vocabulary file. | |||
if (VocabFile.empty()) { | |||
// FIXME: Use default vocabulary | |||
Ctx->emitError("IR2Vec vocabulary file path not specified"); | |||
Ctx->emitError("IR2Vec vocabulary file path not specified; You may need to " |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't really have anything to do with the patch (based on the description) and shouldn't really be here, but separating it out is probably too much of a hassle for what it is. Leaving it should be fine.
80c29d9
to
5eaecce
Compare
17a6e0b
to
1803736
Compare
5eaecce
to
bebdb9e
Compare
3f1914e
to
f5dd2dd
Compare
bebdb9e
to
28b3901
Compare
Merge activity
|
ee12344
to
a466c28
Compare
f5dd2dd
to
bd45b77
Compare
Minor refactoring IR2Vec vocabulary. This would help in upcoming PRs related to the IR2Vec tool.
(Tracking issue - #141817)