diff options
Diffstat (limited to 'kcachegrind/kcachegrind/fixcost.h')
-rw-r--r-- | kcachegrind/kcachegrind/fixcost.h | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/kcachegrind/kcachegrind/fixcost.h b/kcachegrind/kcachegrind/fixcost.h deleted file mode 100644 index 7e90fb40..00000000 --- a/kcachegrind/kcachegrind/fixcost.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Part of KCacheGrind - * - * 2003, Josef Weidendorfer - */ - -#ifndef FIXCOST_H -#define FIXCOST_H - -/** - * Setting USE_FIXCOST to 1 enables a memory space hack: - * For some data, build up internal data model lazy by using - * the Fix*Cost classes, which are simple copies from input data. - */ -#define USE_FIXCOST 1 - -#include "tracedata.h" -#include "pool.h" - -class PositionSpec -{ - public: - PositionSpec() - { fromLine = 0, toLine = 0, fromAddr = 0, toAddr = 0; } - PositionSpec(uint l1, uint l2, Addr a1, Addr a2) - { fromLine = l1, toLine = l2, fromAddr = a1, toAddr = a2; } - - bool isLineRegion() const { return (fromLine != toLine); } - bool isAddrRegion() const { return (fromAddr != toAddr); } - - uint fromLine, toLine; - Addr fromAddr, toAddr; -}; - -/** - * A class holding an unchangable cost item of an input file. - * - * As there can be a lot of such cost items, we use our own - * allocator which uses FixPool - */ -class FixCost -{ - - public: - FixCost(TracePart*, FixPool*, - TraceFunctionSource*, - PositionSpec&, - TracePartFunction*, - FixString&); - - void *operator new(size_t size, FixPool*); - - void addTo(TraceCost*); - - TracePart* part() const { return _part; } - bool isLineRegion() const { return _pos.isLineRegion(); } - bool isAddrRegion() const { return _pos.isAddrRegion(); } - uint fromLine() const { return _pos.fromLine; } - uint line() const { return _pos.fromLine; } - uint toLine() const { return _pos.toLine; } - Addr fromAddr() const { return _pos.fromAddr; } - Addr addr() const { return _pos.fromAddr; } - Addr toAddr() const { return _pos.toAddr; } - TraceFunctionSource* functionSource() const { return _functionSource; } - - FixCost* nextCostOfPartFunction() const - { return _nextCostOfPartFunction; } - - private: - int _count; - SubCost* _cost; - PositionSpec _pos; - - TracePart* _part; - TraceFunctionSource* _functionSource; - FixCost *_nextCostOfPartFunction; -}; - -/** - * A FixCallCost will be inserted into a - * - TracePartCall to keep source/target function info - * - TraceFunctionSourceFile to keep file info of call source - */ -class FixCallCost -{ - - public: - FixCallCost(TracePart*, FixPool*, - TraceFunctionSource*, - unsigned int line, - Addr addr, - TracePartCall*, - SubCost, FixString&); - - void *operator new(size_t size, FixPool*); - - void addTo(TraceCallCost*); - void setMax(TraceCost*); - - TracePart* part() const { return _part; } - unsigned int line() const { return _line; } - Addr addr() const { return _addr; } - SubCost callCount() const { return _cost[_count]; } - TraceFunctionSource* functionSource() const { return _functionSource; } - FixCallCost* nextCostOfPartCall() const - { return _nextCostOfPartCall; } - - private: - // we use 1 SubCost more than _count: _cost[_count] is the call count - int _count; - SubCost* _cost; - unsigned int _line; - Addr _addr; - - TracePart* _part; - TraceFunctionSource* _functionSource; - FixCallCost* _nextCostOfPartCall; -}; - -/** - * A class holding a jump (mostly) inside of a function - */ -class FixJump -{ - - public: - FixJump(TracePart*, FixPool*, - /* source position */ - unsigned int line, Addr addr, - TracePartFunction*, TraceFunctionSource*, - /* target position */ - unsigned int targetLine, Addr targetAddr, - TraceFunction*, TraceFunctionSource*, - bool isCondJump, - SubCost, SubCost); - - void *operator new(size_t size, FixPool*); - - void addTo(TraceJumpCost*); - - TracePart* part() const { return _part; } - unsigned int line() const { return _line; } - Addr addr() const { return _addr; } - TraceFunctionSource* source() const { return _source; } - TraceFunction* targetFunction() const { return _targetFunction; } - unsigned int targetLine() const { return _targetLine; } - Addr targetAddr() const { return _targetAddr; } - TraceFunctionSource* targetSource() const { return _targetSource; } - bool isCondJump() { return _isCondJump; } - SubCost executedCount() const { return _cost[0]; } - SubCost followedCount() const - { return _isCondJump ? _cost[1] : SubCost(0); } - - FixJump* nextJumpOfPartFunction() const - { return _nextJumpOfPartFunction; } - - private: - bool _isCondJump; - SubCost* _cost; - unsigned int _line, _targetLine; - Addr _addr, _targetAddr; - - TracePart* _part; - TraceFunctionSource *_source, *_targetSource; - TraceFunction* _targetFunction; - FixJump *_nextJumpOfPartFunction; -}; - -#endif - - |