summaryrefslogtreecommitdiff
path: root/src/abstract_hardware_model.h
diff options
context:
space:
mode:
authorDavit Grigoryan <[email protected]>2026-04-27 06:39:20 +0000
committerDavit Grigoryan <[email protected]>2026-04-27 06:39:20 +0000
commit2e2f1c89a6b296c9cb28c8e8b0fabb670b4ba3f7 (patch)
tree9b6e18eb4e7182ed1fa0f0f46fc3c57d40c8021d /src/abstract_hardware_model.h
parent2f190971f5f952f55197d385c688667439bc6649 (diff)
fix co-issue scheduling pc assertions
Diffstat (limited to 'src/abstract_hardware_model.h')
-rw-r--r--src/abstract_hardware_model.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/abstract_hardware_model.h b/src/abstract_hardware_model.h
index 369459b..6ce1871 100644
--- a/src/abstract_hardware_model.h
+++ b/src/abstract_hardware_model.h
@@ -1508,6 +1508,18 @@ class warp_inst_t : public inst_t {
unsigned get_schd_id() const { return m_scheduler_id; }
active_mask_t get_warp_active_mask() const { return m_warp_active_mask; }
+ // Debug-only path tag for the pc==inst.pc assertion investigation.
+ // 0 = primary issue
+ // 1 = co-issue intra (same warp, sibling split)
+ // 2 = co-issue inter (different warp)
+ // 3 = co-issue MEM (mem-coissue path)
+ unsigned get_dbg_path() const { return m_dbg_path; }
+ void set_dbg_path(unsigned p) { m_dbg_path = p; }
+ int get_dbg_split_id() const { return m_dbg_split_id; }
+ void set_dbg_split_id(int s) { m_dbg_split_id = s; }
+ const void *get_dbg_source_inst() const { return m_dbg_source_inst; }
+ void set_dbg_source_inst(const void *p) { m_dbg_source_inst = p; }
+
protected:
unsigned m_uid;
unsigned long long m_streamID;
@@ -1550,6 +1562,11 @@ class warp_inst_t : public inst_t {
// SIMD lane partitioning data
std::vector<simd_set_info> m_simd_sets;
+ // Debug-only fields for pc==inst.pc assertion investigation
+ unsigned m_dbg_path = 0;
+ int m_dbg_split_id = -1;
+ const void *m_dbg_source_inst = NULL;
+
// Jin: cdp support
public:
int m_is_cdp;