summaryrefslogtreecommitdiff
path: root/src/trace-driven/trace_driven.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/trace-driven/trace_driven.h')
-rw-r--r--src/trace-driven/trace_driven.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/trace-driven/trace_driven.h b/src/trace-driven/trace_driven.h
index 09a2527..a35cd83 100644
--- a/src/trace-driven/trace_driven.h
+++ b/src/trace-driven/trace_driven.h
@@ -112,16 +112,19 @@ class trace_parser {
gpgpu_context* m_gpgpu_context;
};
-class trace_shd_warp_t {
+class trace_shd_warp_t : public shd_warp_t {
public:
- trace_shd_warp_t() { trace_pc = 0; }
+ trace_shd_warp_t(class shader_core_ctx* shader, unsigned warp_size)
+ : shd_warp_t(shader, warp_size) {
+ trace_pc = 0;
+ }
std::vector<trace_warp_inst_t> warp_traces;
- const trace_warp_inst_t* get_next_inst();
+ const trace_warp_inst_t* get_next_trace_inst();
void clear();
bool trace_done();
- address_type get_start_pc();
- address_type get_pc();
+ address_type get_start_trace_pc();
+ virtual address_type get_pc();
private:
unsigned trace_pc;
@@ -135,20 +138,19 @@ class trace_shader_core_ctx : public shader_core_ctx {
const memory_config* mem_config,
shader_core_stats* stats)
: shader_core_ctx(gpu, cluster, shader_id, tpc_id, config, mem_config,
- stats) {
- m_trace_warp.resize(get_config()->max_warps_per_shader);
- }
+ stats) {}
virtual void checkExecutionStatusAndUpdate(warp_inst_t& inst, unsigned t,
unsigned tid);
- void init_traces(unsigned start_warp, unsigned end_warp,
- kernel_info_t& kernel);
- unsigned trace_sim_inc_thread(kernel_info_t& kernel);
+ virtual void init_warps(unsigned cta_id, unsigned start_thread,
+ unsigned end_thread, unsigned ctaid, int cta_size,
+ kernel_info_t& kernel);
virtual void func_exec_inst(warp_inst_t& inst);
friend class shader_core_ctx;
private:
- std::vector<trace_shd_warp_t> m_trace_warp;
+ void init_traces(unsigned start_warp, unsigned end_warp,
+ kernel_info_t& kernel);
};
#endif