diff options
Diffstat (limited to 'llvm/utils/TableGen/TableGen.cpp')
| -rw-r--r-- | llvm/utils/TableGen/TableGen.cpp | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/llvm/utils/TableGen/TableGen.cpp b/llvm/utils/TableGen/TableGen.cpp index 8015a58471ca..6d851da34731 100644 --- a/llvm/utils/TableGen/TableGen.cpp +++ b/llvm/utils/TableGen/TableGen.cpp @@ -12,9 +12,7 @@ #include "TableGenBackends.h" // Declares all backends. #include "llvm/Support/CommandLine.h" -#include "llvm/Support/ManagedStatic.h" -#include "llvm/Support/PrettyStackTrace.h" -#include "llvm/Support/Signals.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/TableGen/Main.h" #include "llvm/TableGen/Record.h" #include "llvm/TableGen/SetTheory.h" @@ -23,6 +21,8 @@ using namespace llvm; enum ActionType { PrintRecords, + PrintDetailedRecords, + NullBackend, DumpJSON, GenEmitter, GenRegisterInfo, @@ -60,9 +60,6 @@ enum ActionType { }; namespace llvm { -/// Storage for TimeRegionsOpt as a global so that backends aren't required to -/// include CommandLine.h -bool TimeRegions = false; cl::opt<bool> EmitLongStrLiterals( "long-string-literals", cl::desc("when emitting large string tables, prefer string literals over " @@ -77,6 +74,10 @@ cl::opt<ActionType> Action( cl::values( clEnumValN(PrintRecords, "print-records", "Print all records to stdout (default)"), + clEnumValN(PrintDetailedRecords, "print-detailed-records", + "Print full details of all records to stdout"), + clEnumValN(NullBackend, "null-backend", + "Do nothing after parsing (useful for timing)"), clEnumValN(DumpJSON, "dump-json", "Dump all records as machine-readable JSON"), clEnumValN(GenEmitter, "gen-emitter", "Generate machine code emitter"), @@ -144,15 +145,15 @@ cl::opt<std::string> Class("class", cl::desc("Print Enum list for this class"), cl::value_desc("class name"), cl::cat(PrintEnumsCat)); -cl::opt<bool, true> - TimeRegionsOpt("time-regions", - cl::desc("Time regions of tablegens execution"), - cl::location(TimeRegions)); - bool LLVMTableGenMain(raw_ostream &OS, RecordKeeper &Records) { switch (Action) { case PrintRecords: - OS << Records; // No argument, dump all contents + OS << Records; // No argument, dump all contents + break; + case PrintDetailedRecords: + EmitDetailedRecords(Records, OS); + break; + case NullBackend: // No backend at all. break; case DumpJSON: EmitJSON(Records, OS); @@ -278,12 +279,9 @@ bool LLVMTableGenMain(raw_ostream &OS, RecordKeeper &Records) { } int main(int argc, char **argv) { - sys::PrintStackTraceOnErrorSignal(argv[0]); - PrettyStackTraceProgram X(argc, argv); + InitLLVM X(argc, argv); cl::ParseCommandLineOptions(argc, argv); - llvm_shutdown_obj Y; - return TableGenMain(argv[0], &LLVMTableGenMain); } |
