Paul Robinson 38be8f4057 Add llvm-tli-checker
A new tool that compares TargetLibraryInfo's opinion of the availability
of library function calls against the functions actually exported by a
specified set of libraries. Can be helpful in verifying the correctness
of TLI for a given target, and avoid mishaps such as had to be addressed
in D107509 and 94b4598d.

The tool currently supports ELF object files only, although it's unlikely
to be hard to add support for other formats.

Re-commits 62dd488 with changes to use pre-generated objects, as not all
bots have ld.lld available.

Differential Revision: https://reviews.llvm.org/D111358
2021-11-08 16:29:28 -08:00

17 lines
880 B
TableGen

include "llvm/Option/OptParser.td"
class F<string name, string help> : Flag<["--"], name>, HelpText<help>;
multiclass Eq<string name, string metavar, string help> {
def NAME #_EQ : Joined<["--"], name #"=">,
HelpText<help>, MetaVarName<metavar>;
def : Separate<["--"], name>, Alias<!cast<Joined>(NAME #_EQ)>;
}
def help : F<"help", "Display available options">;
def : Flag<["-"], "h">, HelpText<"Alias for --help">, Alias<help>;
def dump_tli : F<"dump-tli", "Dump TLI's list of functions and whether they are available">;
defm triple : Eq<"triple", "<triple>", "Target triple">;
defm libdir : Eq<"libdir", "<directory>", "Root directory for finding library files">;
def separate : F<"separate", "Report on each library file separately">;
def report_EQ : Joined<["--"], "report=">, HelpText<"Level of detail to report">, Values<"summary,discrepancy,full">;