using namespace llvm;
-static llvm::cl::OptionCategory ViewOptions("View Options");
+static cl::OptionCategory ToolOptions("Tool Options");
+static cl::OptionCategory ViewOptions("View Options");
-static cl::opt<std::string>
- InputFilename(cl::Positional, cl::desc("<input file>"), cl::init("-"));
+static cl::opt<std::string> InputFilename(cl::Positional,
+ cl::desc("<input file>"),
+ cl::cat(ToolOptions), cl::init("-"));
static cl::opt<std::string> OutputFilename("o", cl::desc("Output filename"),
- cl::init("-"),
+ cl::init("-"), cl::cat(ToolOptions),
cl::value_desc("filename"));
static cl::opt<std::string>
- ArchName("march", cl::desc("Target arch to assemble for, "
- "see -version for available targets"));
+ ArchName("march",
+ cl::desc("Target arch to assemble for, "
+ "see -version for available targets"),
+ cl::cat(ToolOptions));
static cl::opt<std::string>
- TripleName("mtriple", cl::desc("Target triple to assemble for, "
- "see -version for available targets"));
+ TripleName("mtriple",
+ cl::desc("Target triple to assemble for, "
+ "see -version for available targets"),
+ cl::cat(ToolOptions));
static cl::opt<std::string>
MCPU("mcpu",
cl::desc("Target a specific cpu type (-mcpu=help for details)"),
- cl::value_desc("cpu-name"), cl::init("native"));
+ cl::value_desc("cpu-name"), cl::cat(ToolOptions), cl::init("native"));
static cl::opt<int>
OutputAsmVariant("output-asm-variant",
cl::desc("Syntax variant to use for output printing"),
- cl::init(-1));
+ cl::cat(ToolOptions), cl::init(-1));
static cl::opt<unsigned> Iterations("iterations",
cl::desc("Number of iterations to run"),
- cl::init(0));
+ cl::cat(ToolOptions), cl::init(0));
-static cl::opt<unsigned> DispatchWidth(
- "dispatch",
- cl::desc("Dispatch Width. By default it is set equal to IssueWidth"),
- cl::init(0));
+static cl::opt<unsigned>
+ DispatchWidth("dispatch", cl::desc("Override the processor dispatch width"),
+ cl::cat(ToolOptions), cl::init(0));
static cl::opt<unsigned>
RegisterFileSize("register-file-size",
cl::desc("Maximum number of temporary registers which can "
"be used for register mappings"),
- cl::init(0));
+ cl::cat(ToolOptions), cl::init(0));
static cl::opt<bool>
PrintRegisterFileStats("register-file-stats",
"Maximum number of cycles in the timeline view. Defaults to 80 cycles"),
cl::cat(ViewOptions), cl::init(80));
-static cl::opt<bool> AssumeNoAlias(
- "noalias",
- cl::desc("If set, it assumes that loads and stores do not alias"),
- cl::init(true));
+static cl::opt<bool>
+ AssumeNoAlias("noalias",
+ cl::desc("If set, assume that loads and stores do not alias"),
+ cl::cat(ToolOptions), cl::init(true));
static cl::opt<unsigned>
- LoadQueueSize("lqueue", cl::desc("Size of the load queue"), cl::init(0));
+ LoadQueueSize("lqueue",
+ cl::desc("Size of the load queue (unbound by default)"),
+ cl::cat(ToolOptions), cl::init(0));
static cl::opt<unsigned>
- StoreQueueSize("squeue", cl::desc("Size of the store queue"), cl::init(0));
+ StoreQueueSize("squeue",
+ cl::desc("Size of the store queue (unbound by default)"),
+ cl::cat(ToolOptions), cl::init(0));
static cl::opt<bool>
PrintInstructionTables("instruction-tables",
cl::desc("Print instruction tables"),
- cl::init(false));
+ cl::cat(ToolOptions), cl::init(false));
static cl::opt<bool> PrintInstructionInfoView(
"instruction-info",
// Enable printing of available targets when flag --version is specified.
cl::AddExtraVersionPrinter(TargetRegistry::printRegisteredTargetsForVersion);
+ cl::HideUnrelatedOptions({&ToolOptions, &ViewOptions});
+
// Parse flags and initialize target options.
cl::ParseCommandLineOptions(argc, argv,
"llvm machine code performance analyzer.\n");
+
MCTargetOptions MCOptions;
MCOptions.PreserveAsmComments = false;