llvm-profgen: Parse command line arguments after initializing targets
authorTom Stellard <tstellar@redhat.com>
Mon, 21 Dec 2020 21:29:56 +0000 (13:29 -0800)
committerTom Stellard <tstellar@redhat.com>
Mon, 21 Dec 2020 23:13:10 +0000 (15:13 -0800)
I am experimenting with turning backends into loadable modules and in
that scenario, target specific command line arguments won't be available
until after the targets are initialized.

Also, most other tools initialize targets before parsing arguments.

Reviewed By: wlei

Differential Revision: https://reviews.llvm.org/D93348

llvm/tools/llvm-profgen/llvm-profgen.cpp

index 665ee7c791a7abf0efa3f699f48b4f100283f475..0f4d8f015439b72e724ff1f7c5ce4ebbe2364b3c 100644 (file)
@@ -35,13 +35,13 @@ using namespace sampleprof;
 int main(int argc, const char *argv[]) {
   InitLLVM X(argc, argv);
 
-  cl::ParseCommandLineOptions(argc, argv, "llvm SPGO profile generator\n");
-
   // Initialize targets and assembly printers/parsers.
   InitializeAllTargetInfos();
   InitializeAllTargetMCs();
   InitializeAllDisassemblers();
 
+  cl::ParseCommandLineOptions(argc, argv, "llvm SPGO profile generator\n");
+
   // Load binaries and parse perf events and samples
   PerfReader Reader(BinaryFilenames);
   Reader.parsePerfTraces(PerfTraceFilenames);