[Beignet] [PATCH 05/19] Backend: Add ProfilingInfo to Unit.
junyan.he at inbox.com
junyan.he at inbox.com
Tue Sep 8 17:00:56 PDT 2015
From: Junyan He <junyan.he at linux.intel.com>
The Unit will hold profiling infomation. The profiling
infomation may be needed throughout the whole backend
processing, so it is suitable to add it to unit.
Signed-off-by: Junyan He <junyan.he at linux.intel.com>
---
backend/src/ir/unit.cpp | 6 +++++-
backend/src/ir/unit.hpp | 10 ++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/backend/src/ir/unit.cpp b/backend/src/ir/unit.cpp
index 84208e5..5604244 100644
--- a/backend/src/ir/unit.cpp
+++ b/backend/src/ir/unit.cpp
@@ -27,9 +27,13 @@
namespace gbe {
namespace ir {
- Unit::Unit(PointerSize pointerSize) : pointerSize(pointerSize), valid(true) {}
+ Unit::Unit(PointerSize pointerSize) : pointerSize(pointerSize), valid(true) {
+ profilingInfo = GBE_NEW(ProfilingInfo);
+ inProfilingMode = false;
+ }
Unit::~Unit(void) {
for (const auto &pair : functions) GBE_DELETE(pair.second);
+ delete profilingInfo;
}
Function *Unit::getFunction(const std::string &name) const {
auto it = functions.find(name);
diff --git a/backend/src/ir/unit.hpp b/backend/src/ir/unit.hpp
index 8ff858d..41dc1ae 100644
--- a/backend/src/ir/unit.hpp
+++ b/backend/src/ir/unit.hpp
@@ -26,6 +26,7 @@
#include "ir/constant.hpp"
#include "ir/register.hpp"
+#include "ir/profiling.hpp"
#include "sys/map.hpp"
namespace gbe {
@@ -33,6 +34,7 @@ namespace ir {
// A unit contains a set of functions
class Function;
+ class ProfilingInfo;
/*! Complete unit of compilation. It contains a set of functions and a set of
* constant the functions may refer to.
@@ -72,6 +74,12 @@ namespace ir {
ConstantSet& getConstantSet(void) { return constantSet; }
/*! Return the constant set */
const ConstantSet& getConstantSet(void) const { return constantSet; }
+ /*! Get profiling info in this function */
+ ProfilingInfo* getProfilingInfo(void) const { return profilingInfo; }
+ /*! Set in profiling mode */
+ void setInProfilingMode(bool b) { inProfilingMode = b; }
+ /*! Get in profiling mode */
+ bool getInProfilingMode(void) const { return inProfilingMode; }
void setValid(bool value) { valid = value; }
bool getValid() { return valid; }
private:
@@ -79,8 +87,10 @@ namespace ir {
FunctionSet functions; //!< All the defined functions
ConstantSet constantSet; //!< All the constants defined in the unit
PointerSize pointerSize; //!< Size shared by all pointers
+ ProfilingInfo *profilingInfo; //!< profilingInfo store the information for profiling.
GBE_CLASS(Unit);
bool valid;
+ bool inProfilingMode;
};
/*! Output the unit string in the given stream */
--
1.7.9.5
More information about the Beignet
mailing list