[PATCH] D57257: [llvm] Opt-in flag for X86DiscriminateMemOps

Mircea Trofin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 25 13:50:03 PST 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL352246: [llvm] Opt-in flag for X86DiscriminateMemOps (authored by mtrofin, committed by ).
Herald added a subscriber: llvm-commits.

Changed prior to commit:
  https://reviews.llvm.org/D57257?vs=183608&id=183614#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57257/new/

https://reviews.llvm.org/D57257

Files:
  llvm/trunk/lib/Target/X86/X86DiscriminateMemOps.cpp
  llvm/trunk/lib/Target/X86/X86InsertPrefetch.cpp
  llvm/trunk/test/CodeGen/X86/discriminate-mem-ops.ll
  llvm/trunk/test/CodeGen/X86/insert-prefetch-inline.ll
  llvm/trunk/test/CodeGen/X86/insert-prefetch-invalid-instr.ll
  llvm/trunk/test/CodeGen/X86/insert-prefetch.ll


Index: llvm/trunk/test/CodeGen/X86/insert-prefetch-invalid-instr.ll
===================================================================
--- llvm/trunk/test/CodeGen/X86/insert-prefetch-invalid-instr.ll
+++ llvm/trunk/test/CodeGen/X86/insert-prefetch-invalid-instr.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -prefetch-hints-file=%S/insert-prefetch-invalid-instr.afdo | FileCheck %s
+; RUN: llc < %s -x86-discriminate-memops -prefetch-hints-file=%S/insert-prefetch-invalid-instr.afdo | FileCheck %s
 ; ModuleID = 'prefetch.cc'
 source_filename = "prefetch.cc"
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
Index: llvm/trunk/test/CodeGen/X86/insert-prefetch.ll
===================================================================
--- llvm/trunk/test/CodeGen/X86/insert-prefetch.ll
+++ llvm/trunk/test/CodeGen/X86/insert-prefetch.ll
@@ -1,5 +1,5 @@
-; RUN: llc < %s -prefetch-hints-file=%S/insert-prefetch.afdo | FileCheck %s
-; RUN: llc < %s -prefetch-hints-file=%S/insert-prefetch-other.afdo | FileCheck %s -check-prefix=OTHERS
+; RUN: llc < %s -x86-discriminate-memops -prefetch-hints-file=%S/insert-prefetch.afdo | FileCheck %s
+; RUN: llc < %s -x86-discriminate-memops -prefetch-hints-file=%S/insert-prefetch-other.afdo | FileCheck %s -check-prefix=OTHERS
 ;
 ; original source, compiled with -O3 -gmlt -fdebug-info-for-profiling:
 ; int sum(int* arr, int pos1, int pos2) {
Index: llvm/trunk/test/CodeGen/X86/insert-prefetch-inline.ll
===================================================================
--- llvm/trunk/test/CodeGen/X86/insert-prefetch-inline.ll
+++ llvm/trunk/test/CodeGen/X86/insert-prefetch-inline.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -prefetch-hints-file=%S/insert-prefetch-inline.afdo | FileCheck %s
+; RUN: llc < %s -x86-discriminate-memops -prefetch-hints-file=%S/insert-prefetch-inline.afdo | FileCheck %s
 ;
 ; Verify we can insert prefetch instructions in code belonging to inlined
 ; functions.
Index: llvm/trunk/test/CodeGen/X86/discriminate-mem-ops.ll
===================================================================
--- llvm/trunk/test/CodeGen/X86/discriminate-mem-ops.ll
+++ llvm/trunk/test/CodeGen/X86/discriminate-mem-ops.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s | FileCheck %s
+; RUN: llc -x86-discriminate-memops  < %s | FileCheck %s
 ;
 ; original source, compiled with -O3 -gmlt -fdebug-info-for-profiling:
 ; int sum(int* arr, int pos1, int pos2) {
Index: llvm/trunk/lib/Target/X86/X86InsertPrefetch.cpp
===================================================================
--- llvm/trunk/lib/Target/X86/X86InsertPrefetch.cpp
+++ llvm/trunk/lib/Target/X86/X86InsertPrefetch.cpp
@@ -33,7 +33,8 @@
 
 static cl::opt<std::string>
     PrefetchHintsFile("prefetch-hints-file",
-                      cl::desc("Path to the prefetch hints profile."),
+                      cl::desc("Path to the prefetch hints profile. See also "
+                               "-x86-discriminate-memops"),
                       cl::Hidden);
 namespace {
 
Index: llvm/trunk/lib/Target/X86/X86DiscriminateMemOps.cpp
===================================================================
--- llvm/trunk/lib/Target/X86/X86DiscriminateMemOps.cpp
+++ llvm/trunk/lib/Target/X86/X86DiscriminateMemOps.cpp
@@ -26,6 +26,14 @@
 
 #define DEBUG_TYPE "x86-discriminate-memops"
 
+static cl::opt<bool> EnableDiscriminateMemops(
+    DEBUG_TYPE, cl::init(false),
+    cl::desc("Generate unique debug info for each instruction with a memory "
+             "operand. Should be enabled for profile-drived cache prefetching, "
+             "both in the build of the binary being profiled, as well as in "
+             "the build of the binary consuming the profile."),
+    cl::Hidden);
+
 namespace {
 
 using Location = std::pair<StringRef, unsigned>;
@@ -66,6 +74,9 @@
 X86DiscriminateMemOps::X86DiscriminateMemOps() : MachineFunctionPass(ID) {}
 
 bool X86DiscriminateMemOps::runOnMachineFunction(MachineFunction &MF) {
+  if (!EnableDiscriminateMemops)
+    return false;
+
   DISubprogram *FDI = MF.getFunction().getSubprogram();
   if (!FDI || !FDI->getUnit()->getDebugInfoForProfiling())
     return false;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57257.183614.patch
Type: text/x-patch
Size: 4117 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190125/d3836e1d/attachment.bin>


More information about the llvm-commits mailing list