[PATCH] D22607: [Profile] Don't use the override API in all cases.

David Li via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 22 21:36:22 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL276516: [Profile] Use explicit flag to enable IR PGO (authored by davidxl).

Changed prior to commit:
  https://reviews.llvm.org/D22607?vs=64805&id=65215#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D22607

Files:
  llvm/trunk/include/llvm/Transforms/IPO/PassManagerBuilder.h
  llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
  llvm/trunk/test/Transforms/PGOProfile/preinline.ll

Index: llvm/trunk/include/llvm/Transforms/IPO/PassManagerBuilder.h
===================================================================
--- llvm/trunk/include/llvm/Transforms/IPO/PassManagerBuilder.h
+++ llvm/trunk/include/llvm/Transforms/IPO/PassManagerBuilder.h
@@ -138,6 +138,8 @@
   bool PrepareForThinLTO;
   bool PerformThinLTO;
 
+  /// Enable profile instrumentation pass.
+  bool EnablePGOInstrGen;
   /// Profile data file name that the instrumentation will be written to.
   std::string PGOInstrGen;
   /// Path of the profile data file.
Index: llvm/trunk/test/Transforms/PGOProfile/preinline.ll
===================================================================
--- llvm/trunk/test/Transforms/PGOProfile/preinline.ll
+++ llvm/trunk/test/Transforms/PGOProfile/preinline.ll
@@ -1,4 +1,5 @@
-; RUN: opt < %s -O2 -profile-generate=default.profraw -S | FileCheck %s --check-prefix=GEN
+; RUN: opt < %s -O2 -profile-generate -S | FileCheck %s --check-prefix=GEN
+; RUN: opt < %s -O2 -profile-generate -profile-generate-file=default.profraw -S | FileCheck %s --check-prefix=GEN
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
 
Index: llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
===================================================================
--- llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
+++ llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
@@ -111,10 +111,13 @@
     "enable-loop-load-elim", cl::init(true), cl::Hidden,
     cl::desc("Enable the LoopLoadElimination Pass"));
 
-static cl::opt<std::string> RunPGOInstrGen(
-    "profile-generate", cl::init(""), cl::Hidden,
-    cl::desc("Enable generation phase of PGO instrumentation and specify the "
-             "path of profile data file"));
+static cl::opt<bool> RunPGOInstrGen(
+    "profile-generate", cl::init(false), cl::Hidden,
+    cl::desc("Enable PGO instrumentation."));
+
+static cl::opt<std::string>
+    PGOOutputFile("profile-generate-file", cl::init(""), cl::Hidden,
+                      cl::desc("Specify the path of profile data file."));
 
 static cl::opt<std::string> RunPGOInstrUse(
     "profile-use", cl::init(""), cl::Hidden, cl::value_desc("filename"),
@@ -156,7 +159,8 @@
     VerifyOutput = false;
     MergeFunctions = false;
     PrepareForLTO = false;
-    PGOInstrGen = RunPGOInstrGen;
+    EnablePGOInstrGen = RunPGOInstrGen;
+    PGOInstrGen = PGOOutputFile;
     PGOInstrUse = RunPGOInstrUse;
     PrepareForThinLTO = false;
     PerformThinLTO = false;
@@ -243,7 +247,7 @@
 
 // Do PGO instrumentation generation or use pass as the option specified.
 void PassManagerBuilder::addPGOInstrPasses(legacy::PassManagerBase &MPM) {
-  if (PGOInstrGen.empty() && PGOInstrUse.empty())
+  if (!EnablePGOInstrGen && PGOInstrUse.empty())
     return;
   // Perform the preinline and cleanup passes for O1 and above.
   // And avoid doing them if optimizing for size.
@@ -256,11 +260,12 @@
     MPM.add(createInstructionCombiningPass()); // Combine silly seq's
     addExtensionsToPM(EP_Peephole, MPM);
   }
-  if (!PGOInstrGen.empty()) {
+  if (EnablePGOInstrGen) {
     MPM.add(createPGOInstrumentationGenLegacyPass());
     // Add the profile lowering pass.
     InstrProfOptions Options;
-    Options.InstrProfileOutput = PGOInstrGen;
+    if (!PGOInstrGen.empty())
+      Options.InstrProfileOutput = PGOInstrGen;
     MPM.add(createInstrProfilingLegacyPass(Options));
   }
   if (!PGOInstrUse.empty())


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22607.65215.patch
Type: text/x-patch
Size: 3480 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160723/e9204927/attachment.bin>


More information about the llvm-commits mailing list