-
Notifications
You must be signed in to change notification settings - Fork 15.1k
[IR2Vec] Make IR2VecCategory externally visible and reuse in llvm-ir2vec cl options #153089
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
[IR2Vec] Make IR2VecCategory externally visible and reuse in llvm-ir2vec cl options #153089
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
@llvm/pr-subscribers-mlgo @llvm/pr-subscribers-llvm-analysis Author: S. VenkataKeerthy (svkeerthy) ChangesConsolidate IR2Vec option categories to use a single shared category across the library and tool. With this change the cl options defined in IR2Vec.cpp are visible in llvm-ir2vec tool. This is necessary as we use the same options in the tool. Full diff: https://github.com/llvm/llvm-project/pull/153089.diff 3 Files Affected:
diff --git a/llvm/include/llvm/Analysis/IR2Vec.h b/llvm/include/llvm/Analysis/IR2Vec.h
index 3cfc206c94788..7ace83ba1d053 100644
--- a/llvm/include/llvm/Analysis/IR2Vec.h
+++ b/llvm/include/llvm/Analysis/IR2Vec.h
@@ -63,6 +63,7 @@ enum class IR2VecKind { Symbolic, FlowAware };
namespace ir2vec {
+LLVM_EXTERNAL_VISIBILITY extern llvm::cl::OptionCategory IR2VecCategory;
LLVM_ABI extern cl::opt<float> OpcWeight;
LLVM_ABI extern cl::opt<float> TypeWeight;
LLVM_ABI extern cl::opt<float> ArgWeight;
diff --git a/llvm/lib/Analysis/IR2Vec.cpp b/llvm/lib/Analysis/IR2Vec.cpp
index 081a4d073b65f..e28938b64bfdb 100644
--- a/llvm/lib/Analysis/IR2Vec.cpp
+++ b/llvm/lib/Analysis/IR2Vec.cpp
@@ -36,7 +36,7 @@ STATISTIC(VocabMissCounter,
namespace llvm {
namespace ir2vec {
-static cl::OptionCategory IR2VecCategory("IR2Vec Options");
+LLVM_EXTERNAL_VISIBILITY cl::OptionCategory IR2VecCategory("IR2Vec Options");
// FIXME: Use a default vocab when not specified
static cl::opt<std::string>
diff --git a/llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp b/llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp
index 8f8b4e2f2bda8..c065aaeedd395 100644
--- a/llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp
+++ b/llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp
@@ -55,8 +55,6 @@
namespace llvm {
namespace ir2vec {
-static cl::OptionCategory IR2VecToolCategory("IR2Vec Tool Options");
-
// Subcommands
static cl::SubCommand
TripletsSubCmd("triplets", "Generate triplets for vocabulary training");
@@ -72,18 +70,18 @@ static cl::opt<std::string>
InputFilename(cl::Positional,
cl::desc("<input bitcode file or '-' for stdin>"),
cl::init("-"), cl::sub(TripletsSubCmd),
- cl::sub(EmbeddingsSubCmd), cl::cat(IR2VecToolCategory));
+ cl::sub(EmbeddingsSubCmd), cl::cat(ir2vec::IR2VecCategory));
static cl::opt<std::string> OutputFilename("o", cl::desc("Output filename"),
cl::value_desc("filename"),
cl::init("-"),
- cl::cat(IR2VecToolCategory));
+ cl::cat(ir2vec::IR2VecCategory));
// Embedding-specific options
static cl::opt<std::string>
FunctionName("function", cl::desc("Process specific function only"),
cl::value_desc("name"), cl::Optional, cl::init(""),
- cl::sub(EmbeddingsSubCmd), cl::cat(IR2VecToolCategory));
+ cl::sub(EmbeddingsSubCmd), cl::cat(ir2vec::IR2VecCategory));
enum EmbeddingLevel {
InstructionLevel, // Generate instruction-level embeddings
@@ -100,7 +98,7 @@ static cl::opt<EmbeddingLevel>
clEnumValN(FunctionLevel, "func",
"Generate function-level embeddings")),
cl::init(FunctionLevel), cl::sub(EmbeddingsSubCmd),
- cl::cat(IR2VecToolCategory));
+ cl::cat(ir2vec::IR2VecCategory));
namespace {
@@ -325,7 +323,7 @@ int main(int argc, char **argv) {
using namespace llvm::ir2vec;
InitLLVM X(argc, argv);
- cl::HideUnrelatedOptions(IR2VecToolCategory);
+ cl::HideUnrelatedOptions(ir2vec::IR2VecCategory);
cl::ParseCommandLineOptions(
argc, argv,
"IR2Vec - Embedding Generation Tool\n"
|
be6f9a6 to
0310cb4
Compare
44c5895 to
de8480b
Compare
11de2dc to
cbc8c9e
Compare
0310cb4 to
630f4af
Compare
630f4af to
87eed21
Compare
cbc8c9e to
4da0ac5
Compare
Merge activity
|
87eed21 to
1fdd3b3
Compare
4da0ac5 to
b71c5ee
Compare
b71c5ee to
b131bef
Compare
1fdd3b3 to
66d8de1
Compare
b131bef to
7495b65
Compare
7495b65 to
829eb24
Compare

Consolidate IR2Vec option categories to use a single shared category across the library and tool.
With this change the cl options defined in IR2Vec.cpp are visible in llvm-ir2vec tool. This is necessary as we use the same options in the tool.