From: Junyan He <[email protected]> We want to store more information in ProfilingInfo in order to output more information with the kernel's source code.
Signed-off-by: Junyan He <[email protected]> --- backend/src/ir/profiling.hpp | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/backend/src/ir/profiling.hpp b/backend/src/ir/profiling.hpp index 8b7690f..d36f978 100644 --- a/backend/src/ir/profiling.hpp +++ b/backend/src/ir/profiling.hpp @@ -37,6 +37,13 @@ namespace gbe public: const static uint32_t MaxTimestampProfilingPoints = 20; enum { + ProfilingNone = 0, + ProfilingSimple, + ProfilingNormal, + ProfilingVerbose, + }; + + enum { ProfilingSimdType1, ProfilingSimdType8, ProfilingSimdType16, @@ -81,13 +88,24 @@ namespace gbe this->bti = other.bti; this->profilingType = other.profilingType; this->deviceID = other.deviceID; + this->source = other.source; + this->profPoints = other.profPoints; } - - ProfilingInfo(void) { + ProfilingInfo(ProfilingInfo&& other) = default; + ProfilingInfo(void) : source(), profPoints() { this->bti = 0; - this->profilingType = 0; + this->profilingType = ProfilingNone; this->deviceID = 0; } + ProfilingInfo& operator = (const ProfilingInfo& other) { + this->bti = other.bti; + this->profilingType = other.profilingType; + this->deviceID = other.deviceID; + this->source = other.source; + this->profPoints = other.profPoints; + return *this; + } + struct LockOutput { LockOutput(void) { pthread_mutex_lock(&lock); @@ -117,13 +135,21 @@ namespace gbe return deviceID; } void outputProfilingInfo(void* logBuf); + void setSource(const char* source) { + if (source) this->source = std::string(source); + } + void setprofPoints(std::map<uint32_t, uint32_t>& p) { + profPoints = p; + } private: uint32_t bti; uint32_t profilingType; uint32_t deviceID; + std::string source; friend struct LockOutput; static pthread_mutex_t lock; + std::map<uint32_t, uint32_t> profPoints; // map prof point to source line. GBE_CLASS(ProfilingInfo); }; } /* namespace ir */ -- 1.9.1 _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
