diff options
| author | Tor Aamodt <[email protected]> | 2010-10-10 21:19:52 -0800 |
|---|---|---|
| committer | Tor Aamodt <[email protected]> | 2010-10-10 21:19:52 -0800 |
| commit | b3ce70a797756285ea9b15b3e5cf515d8b6a2b63 (patch) | |
| tree | 5b84d880e646f80611cc5b01931fdde622c5e06c /src/cuda-sim/ptx_ir.h | |
| parent | 0151c5c566dcbcbb962acf35c86a8e0f4a4a6eb6 (diff) | |
1. create function unit classes for SP, SFU, LD/ST.
2. refactor memory stage into a ld/st function unit
3. refactor memory access generation (moved into warp_inst_t class)
the above should make supporting fermi uarch much easier
passing CUDA 3.1 regression
still need to...
(a) update scoreboard to keep count of outstanding memory requests
and use operand collector for writebacks into register file
(b) add back shared memory pipeline delay
(c) remove use of MSHR's for non-cached global/local accesses
(d) replace texture cache with a split tag/data array pipe
(e) re-implement memory_partition stuff so it makes more sense
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7844]
Diffstat (limited to 'src/cuda-sim/ptx_ir.h')
| -rw-r--r-- | src/cuda-sim/ptx_ir.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/cuda-sim/ptx_ir.h b/src/cuda-sim/ptx_ir.h index 07f2e36..84ded76 100644 --- a/src/cuda-sim/ptx_ir.h +++ b/src/cuda-sim/ptx_ir.h @@ -801,7 +801,7 @@ public: const char *file, unsigned line, const char *source, - unsigned warp_size ); + const shader_core_config *config ); void print_insn() const; virtual void print_insn( FILE *fp ) const; @@ -940,7 +940,6 @@ public: enum vote_mode_t { vote_any, vote_all, vote_uni }; enum vote_mode_t vote_mode() const { return m_vote_mode; } - unsigned warp_size() const { return m_warp_size; } int membar_level() const { return m_membar_level; } bool has_memory_read() const { @@ -966,6 +965,7 @@ public: } private: + void get_opcode_info(); basic_block_t *m_basic_block; unsigned m_uid; @@ -973,7 +973,6 @@ private: std::string m_source_file; unsigned m_source_line; std::string m_source; - unsigned m_warp_size; const symbol *m_pred; bool m_neg_pred; @@ -1176,8 +1175,10 @@ public: static const ptx_instruction* pc_to_instruction(unsigned pc) { - assert(pc <= s_g_pc_to_insn.size()); - return s_g_pc_to_insn[pc]; + if( pc < s_g_pc_to_insn.size() ) + return s_g_pc_to_insn[pc]; + else + return NULL; } unsigned local_mem_framesize() const { |
