[llvm] [BOLT] Add NamedRegionTimer to inferStaleProfile (PR #92621)

shaw young via llvm-commits llvm-commits at lists.llvm.org
Mon May 20 14:25:14 PDT 2024


https://github.com/shawbyoung updated https://github.com/llvm/llvm-project/pull/92621

>From 30ffe5202bbc2ebbe78518c5d9a8fd00dc03fb6f Mon Sep 17 00:00:00 2001
From: shawy <shawy at meta.com>
Date: Fri, 17 May 2024 16:19:31 -0700
Subject: [PATCH 1/5] [BOLT] Add NamedRegionTimer to inferStaleProfile

Summary: Add a NamedRegionTimer to measure the time spent in inferStaleProfile.
---
 bolt/lib/Profile/StaleProfileMatching.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/bolt/lib/Profile/StaleProfileMatching.cpp b/bolt/lib/Profile/StaleProfileMatching.cpp
index 016962ff34d8d..02b78197e8286 100644
--- a/bolt/lib/Profile/StaleProfileMatching.cpp
+++ b/bolt/lib/Profile/StaleProfileMatching.cpp
@@ -31,6 +31,7 @@
 #include "llvm/ADT/Hashing.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/xxhash.h"
+#include "llvm/Support/Timer.h"
 #include "llvm/Transforms/Utils/SampleProfileInference.h"
 
 #include <queue>
@@ -705,6 +706,10 @@ void assignProfile(BinaryFunction &BF,
 
 bool YAMLProfileReader::inferStaleProfile(
     BinaryFunction &BF, const yaml::bolt::BinaryFunctionProfile &YamlBF) {
+
+  NamedRegionTimer T( "inferStaleProfile", "inferring from stale profile", "rewrite",
+                      "Rewrite passes", opts::InferStaleProfile);
+
   if (!BF.hasCFG())
     return false;
 

>From f18d852af7ace3ce1eda1b246aba435bcdde5011 Mon Sep 17 00:00:00 2001
From: shawy <shawy at meta.com>
Date: Mon, 20 May 2024 09:17:26 -0700
Subject: [PATCH 2/5] [BOLT] [NFC] C++ formatting

---
 bolt/lib/Profile/StaleProfileMatching.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/bolt/lib/Profile/StaleProfileMatching.cpp b/bolt/lib/Profile/StaleProfileMatching.cpp
index 02b78197e8286..33182d83449a2 100644
--- a/bolt/lib/Profile/StaleProfileMatching.cpp
+++ b/bolt/lib/Profile/StaleProfileMatching.cpp
@@ -30,8 +30,8 @@
 #include "llvm/ADT/Bitfields.h"
 #include "llvm/ADT/Hashing.h"
 #include "llvm/Support/CommandLine.h"
-#include "llvm/Support/xxhash.h"
 #include "llvm/Support/Timer.h"
+#include "llvm/Support/xxhash.h"
 #include "llvm/Transforms/Utils/SampleProfileInference.h"
 
 #include <queue>
@@ -707,8 +707,8 @@ void assignProfile(BinaryFunction &BF,
 bool YAMLProfileReader::inferStaleProfile(
     BinaryFunction &BF, const yaml::bolt::BinaryFunctionProfile &YamlBF) {
 
-  NamedRegionTimer T( "inferStaleProfile", "inferring from stale profile", "rewrite",
-                      "Rewrite passes", opts::InferStaleProfile);
+  NamedRegionTimer T("inferStaleProfile", "inferring from stale profile",
+                     "rewrite", "Rewrite passes", opts::InferStaleProfile);
 
   if (!BF.hasCFG())
     return false;

>From dd55c7d8479c6a6984df9911a7235898c46b65cc Mon Sep 17 00:00:00 2001
From: shawy <shawy at meta.com>
Date: Mon, 20 May 2024 10:11:56 -0700
Subject: [PATCH 3/5] [BOLT] Set InferStaleProfile timer to TimeRewrite

---
 bolt/lib/Profile/StaleProfileMatching.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bolt/lib/Profile/StaleProfileMatching.cpp b/bolt/lib/Profile/StaleProfileMatching.cpp
index 33182d83449a2..55d3f710f9f59 100644
--- a/bolt/lib/Profile/StaleProfileMatching.cpp
+++ b/bolt/lib/Profile/StaleProfileMatching.cpp
@@ -707,8 +707,8 @@ void assignProfile(BinaryFunction &BF,
 bool YAMLProfileReader::inferStaleProfile(
     BinaryFunction &BF, const yaml::bolt::BinaryFunctionProfile &YamlBF) {
 
-  NamedRegionTimer T("inferStaleProfile", "inferring from stale profile",
-                     "rewrite", "Rewrite passes", opts::InferStaleProfile);
+  NamedRegionTimer T("inferStaleProfile", "stale profile inference",
+                     "rewrite", "Rewrite passes", opts::TimeRewrite);
 
   if (!BF.hasCFG())
     return false;

>From e496030182eb2a59003db17f1ee56f2f19b86f70 Mon Sep 17 00:00:00 2001
From: shawbyoung <shawbyoung at gmail.com>
Date: Mon, 20 May 2024 10:21:26 -0700
Subject: [PATCH 4/5] [BOLT] [NFC] Formatting

---
 bolt/lib/Profile/StaleProfileMatching.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bolt/lib/Profile/StaleProfileMatching.cpp b/bolt/lib/Profile/StaleProfileMatching.cpp
index 55d3f710f9f59..5420c683afc51 100644
--- a/bolt/lib/Profile/StaleProfileMatching.cpp
+++ b/bolt/lib/Profile/StaleProfileMatching.cpp
@@ -707,8 +707,8 @@ void assignProfile(BinaryFunction &BF,
 bool YAMLProfileReader::inferStaleProfile(
     BinaryFunction &BF, const yaml::bolt::BinaryFunctionProfile &YamlBF) {
 
-  NamedRegionTimer T("inferStaleProfile", "stale profile inference",
-                     "rewrite", "Rewrite passes", opts::TimeRewrite);
+  NamedRegionTimer T("inferStaleProfile", "stale profile inference", "rewrite",
+                     "Rewrite passes", opts::TimeRewrite);
 
   if (!BF.hasCFG())
     return false;

>From ee3b661c3fce9ee2be8784a4d43984895d6a99bb Mon Sep 17 00:00:00 2001
From: shawbyoung <shawbyoung at gmail.com>
Date: Mon, 20 May 2024 14:24:42 -0700
Subject: [PATCH 5/5] [BOLT] Rm static keyword from opts::TimeRewrite

---
 bolt/lib/Profile/StaleProfileMatching.cpp | 1 +
 bolt/lib/Rewrite/RewriteInstance.cpp      | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/bolt/lib/Profile/StaleProfileMatching.cpp b/bolt/lib/Profile/StaleProfileMatching.cpp
index 5420c683afc51..712d9a121b5e1 100644
--- a/bolt/lib/Profile/StaleProfileMatching.cpp
+++ b/bolt/lib/Profile/StaleProfileMatching.cpp
@@ -43,6 +43,7 @@ using namespace llvm;
 
 namespace opts {
 
+extern cl::opt<bool> TimeRewrite;
 extern cl::OptionCategory BoltOptCategory;
 
 cl::opt<bool>
diff --git a/bolt/lib/Rewrite/RewriteInstance.cpp b/bolt/lib/Rewrite/RewriteInstance.cpp
index 85b39176754b6..56ce328a04255 100644
--- a/bolt/lib/Rewrite/RewriteInstance.cpp
+++ b/bolt/lib/Rewrite/RewriteInstance.cpp
@@ -235,7 +235,7 @@ UseGnuStack("use-gnu-stack",
   cl::ZeroOrMore,
   cl::cat(BoltCategory));
 
-static cl::opt<bool>
+cl::opt<bool>
     TimeRewrite("time-rewrite",
                 cl::desc("print time spent in rewriting passes"), cl::Hidden,
                 cl::cat(BoltCategory));



More information about the llvm-commits mailing list