[04/19] Backend: Add profiling registers to curbe.

Submitted by junyan.he@inbox.com on Sept. 9, 2015, midnight

Details

Message ID 1441756870-32320-5-git-send-email-junyan.he@inbox.com
State New
Headers show

Not browsing as part of any series.

Commit Message

junyan.he@inbox.com Sept. 9, 2015, midnight
From: Junyan He <junyan.he@linux.intel.com>

1. Add five timestamp reigsters and one pointer register
   into curbe. The five timestamp reigsters will hold
   all the infomation of profiling timestamps, includes
   20 uint timestamps for each point, 1 ulong prolog holding
   the start time and and 1 ulong epilog holding the
   end time of that kernel. The pointer reigster will hold
   the log buffer address.
2. Delete the unused laneid string in the specialRegMean.

Signed-off-by: Junyan He <junyan.he@linux.intel.com>
---
 backend/src/ir/profile.cpp |   15 +++++++++++++--
 backend/src/ir/profile.hpp |    8 +++++++-
 2 files changed, 20 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

diff --git a/backend/src/ir/profile.cpp b/backend/src/ir/profile.cpp
index 37f2d3d..ad343d5 100644
--- a/backend/src/ir/profile.cpp
+++ b/backend/src/ir/profile.cpp
@@ -44,9 +44,14 @@  namespace ir {
         "retVal", "slm_offset",
         "printf_buffer_pointer", "printf_index_buffer_pointer",
         "dwblockip",
-        "lane_id",
         "invalid",
-        "bti_utility"
+        "bti_utility",
+        "profiling_buffer_pointer",
+        "profiling_timestamps0",
+        "profiling_timestamps1",
+        "profiling_timestamps2",
+        "profiling_timestamps3",
+        "profiling_timestamps4"
     };
 
 #if GBE_DEBUG
@@ -92,6 +97,12 @@  namespace ir {
       DECL_NEW_REG(FAMILY_DWORD, dwblockip, 0);
       DECL_NEW_REG(FAMILY_DWORD, invalid, 1);
       DECL_NEW_REG(FAMILY_DWORD, btiUtil, 1);
+      DECL_NEW_REG(FAMILY_DWORD, profilingbptr, 1);
+      DECL_NEW_REG(FAMILY_DWORD, profilingts0, 0);
+      DECL_NEW_REG(FAMILY_DWORD, profilingts1, 0);
+      DECL_NEW_REG(FAMILY_DWORD, profilingts2, 0);
+      DECL_NEW_REG(FAMILY_DWORD, profilingts3, 0);
+      DECL_NEW_REG(FAMILY_DWORD, profilingts4, 0);
     }
 #undef DECL_NEW_REG
 
diff --git a/backend/src/ir/profile.hpp b/backend/src/ir/profile.hpp
index bf909be..e15a457 100644
--- a/backend/src/ir/profile.hpp
+++ b/backend/src/ir/profile.hpp
@@ -74,7 +74,13 @@  namespace ir {
     static const Register dwblockip = Register(30);  // blockip
     static const Register invalid = Register(31);  // used for valid comparation.
     static const Register btiUtil = Register(32);  // used for mixed pointer as bti utility.
-    static const uint32_t regNum = 33;             // number of special registers
+    static const Register profilingbptr = Register(33); // buffer addr for profiling.
+    static const Register profilingts0 = Register(34); // timestamp for profiling.
+    static const Register profilingts1 = Register(35); // timestamp for profiling.
+    static const Register profilingts2 = Register(36); // timestamp for profiling.
+    static const Register profilingts3 = Register(37); // timestamp for profiling.
+    static const Register profilingts4 = Register(38); // timestamp for profiling.
+    static const uint32_t regNum = 39;             // number of special registers
     extern const char *specialRegMean[];           // special register name.
   } /* namespace ocl */