mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
43ffee6b95
Most modern tools only accept two-dash long options. Remove one-dash long options which are not recognized by GNU style `getopt_long`. This ensures long options cannot collide with grouped short options. Note: llvm-symbolizer has `-demangle={true,false}` for pprof compatibility (for a while). They are kept. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D106377
81 lines
4.6 KiB
TableGen
81 lines
4.6 KiB
TableGen
include "llvm/Option/OptParser.td"
|
|
|
|
multiclass B<string name, string help1, string help2> {
|
|
def NAME: Flag<["--"], name>, HelpText<help1>;
|
|
def no_ # NAME: Flag<["--"], "no-" # name>, HelpText<help2>;
|
|
}
|
|
|
|
multiclass Eq<string name, string help> {
|
|
def NAME #_EQ : Joined<["--"], name #"=">,
|
|
HelpText<help>;
|
|
def : Separate<["--"], name>, Alias<!cast<Joined>(NAME #_EQ)>;
|
|
}
|
|
|
|
class F<string name, string help>: Flag<["--"], name>, HelpText<help>;
|
|
|
|
def grp_mach_o : OptionGroup<"kind">,
|
|
HelpText<"llvm-symbolizer Mach-O Specific Options">;
|
|
|
|
def addresses : F<"addresses", "Show address before line information">;
|
|
defm adjust_vma
|
|
: Eq<"adjust-vma", "Add specified offset to object file addresses">,
|
|
MetaVarName<"<offset>">;
|
|
def basenames : Flag<["--"], "basenames">, HelpText<"Strip directory names from paths">;
|
|
defm debug_file_directory : Eq<"debug-file-directory", "Path to directory where to look for debug files">, MetaVarName<"<dir>">;
|
|
defm default_arch
|
|
: Eq<"default-arch", "Default architecture (for multi-arch objects)">,
|
|
Group<grp_mach_o>;
|
|
defm demangle : B<"demangle", "Demangle function names", "Don't demangle function names">;
|
|
def functions : F<"functions", "Print function name for a given address">;
|
|
def functions_EQ : Joined<["--"], "functions=">, HelpText<"Print function name for a given address">, Values<"none,short,linkage">;
|
|
def help : F<"help", "Display this help">;
|
|
defm dwp : Eq<"dwp", "Path to DWP file to be use for any split CUs">, MetaVarName<"<file>">;
|
|
defm dsym_hint
|
|
: Eq<"dsym-hint",
|
|
"Path to .dSYM bundles to search for debug info for the object files">,
|
|
MetaVarName<"<dir>">,
|
|
Group<grp_mach_o>;
|
|
defm fallback_debug_path : Eq<"fallback-debug-path", "Fallback path for debug binaries">, MetaVarName<"<dir>">;
|
|
defm inlines : B<"inlines", "Print all inlined frames for a given address",
|
|
"Do not print inlined frames">;
|
|
defm obj
|
|
: Eq<"obj", "Path to object file to be symbolized (if not provided, "
|
|
"object file should be specified for each input line)">, MetaVarName<"<file>">;
|
|
defm output_style
|
|
: Eq<"output-style", "Specify print style. Supported styles: LLVM, GNU, JSON">,
|
|
MetaVarName<"style">,
|
|
Values<"LLVM,GNU,JSON">;
|
|
def pretty_print : F<"pretty-print", "Make the output more human friendly">;
|
|
defm print_source_context_lines : Eq<"print-source-context-lines", "Print N lines of source file context">;
|
|
def relative_address : F<"relative-address", "Interpret addresses as addresses relative to the image base">;
|
|
def relativenames : F<"relativenames", "Strip the compilation directory from paths">;
|
|
defm untag_addresses : B<"untag-addresses", "", "Remove memory tags from addresses before symbolization">;
|
|
def use_dia: F<"dia", "Use the DIA library to access symbols (Windows only)">;
|
|
def verbose : F<"verbose", "Print verbose line info">;
|
|
def version : F<"version", "Display the version">;
|
|
|
|
def : Flag<["-"], "a">, Alias<addresses>, HelpText<"Alias for --addresses">;
|
|
def : F<"print-address", "Alias for --addresses">, Alias<addresses>;
|
|
def : Flag<["-"], "C">, Alias<demangle>, HelpText<"Alias for --demangle">;
|
|
def : Joined<["--"], "exe=">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">;
|
|
def : Separate<["--"], "exe">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">;
|
|
def : JoinedOrSeparate<["-"], "e">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">;
|
|
def : Joined<["-"], "e=">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">;
|
|
def : Flag<["-"], "f">, Alias<functions>, HelpText<"Alias for --functions">;
|
|
def : Joined<["-"], "f=">, Alias<functions_EQ>, HelpText<"Alias for --functions=">;
|
|
def : Flag<["-"], "h">, Alias<help>;
|
|
def : Flag<["-"], "i">, Alias<inlines>, HelpText<"Alias for --inlines">;
|
|
def : F<"inlining", "Alias for --inlines">, Alias<inlines>;
|
|
def : Flag<["-"], "p">, Alias<pretty_print>, HelpText<"Alias for --pretty-print">;
|
|
def : Flag<["-"], "s">, Alias<basenames>, HelpText<"Alias for --basenames">;
|
|
def : Flag<["-"], "v">, Alias<version>, HelpText<"Alias for --version">;
|
|
|
|
// Compatibility aliases for old asan_symbolize.py and sanitizer binaries (before 2020-08).
|
|
def : Flag<["--"], "inlining=true">, Alias<inlines>, HelpText<"Alias for --inlines">;
|
|
def : Flag<["--"], "inlining=false">, Alias<no_inlines>, HelpText<"Alias for --no-inlines">;
|
|
// Compatibility aliases for pprof's symbolizer.
|
|
def : Flag<["-"], "demangle=true">, Alias<demangle>, HelpText<"Alias for --demangle">;
|
|
def : Flag<["-"], "demangle=false">, Alias<no_demangle>, HelpText<"Alias for --no-demangle">;
|
|
// Compatibility no-op options.
|
|
def : Flag<["--"], "use-symbol-table=true">;
|