diff options
| -rw-r--r-- | src/cuda-sim/cuda-sim.cc | 8 | ||||
| -rw-r--r-- | src/cuda-sim/instructions.cc | 14 | ||||
| -rw-r--r-- | src/cuda-sim/ptx.l | 4 | ||||
| -rw-r--r-- | src/cuda-sim/ptx.y | 9 | ||||
| -rw-r--r-- | src/cuda-sim/ptx_ir.cc | 5 | ||||
| -rw-r--r-- | src/cuda-sim/ptx_ir.h | 2 |
6 files changed, 14 insertions, 28 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc index 1ccc156..ab54121 100644 --- a/src/cuda-sim/cuda-sim.cc +++ b/src/cuda-sim/cuda-sim.cc @@ -556,14 +556,14 @@ void ptx_instruction::set_bar_type() break; case RED_OPTION: bar_type = RED; - switch(m_reduction_op){ - case POPC_REDUCTION: + switch(m_atomic_spec){ + case ATOMIC_POPC: red_type = POPC_RED; break; - case AND_REDUCTION: + case ATOMIC_AND: red_type = AND_RED; break; - case OR_REDUCTION: + case ATOMIC_OR: red_type = OR_RED; break; } diff --git a/src/cuda-sim/instructions.cc b/src/cuda-sim/instructions.cc index 5d17f95..cf7f04a 100644 --- a/src/cuda-sim/instructions.cc +++ b/src/cuda-sim/instructions.cc @@ -1237,7 +1237,7 @@ void bar_impl( const ptx_instruction *pIin, ptx_thread_info *thread ) { ptx_instruction * pI = const_cast<ptx_instruction *>(pIin); unsigned bar_op = pI->barrier_op(); - unsigned red_op = pI->reduction_op(); + unsigned red_op = pI->get_atomic(); unsigned ctaid = thread->get_cta_uid(); switch(bar_op){ @@ -1288,13 +1288,13 @@ void bar_impl( const ptx_instruction *pIin, ptx_thread_info *thread ) pI->set_bar_id(op1_data.u32); pI->set_bar_count(op2_data.u32); switch(red_op){ - case POPC_REDUCTION: + case ATOMIC_POPC: thread->popc_reduction(ctaid,op1_data.u32,op3_data.u32); break; - case AND_REDUCTION: + case ATOMIC_AND: thread->and_reduction(ctaid,op1_data.u32,op3_data.u32); break; - case OR_REDUCTION: + case ATOMIC_OR: thread->or_reduction(ctaid,op1_data.u32,op3_data.u32); break; default: @@ -1311,13 +1311,13 @@ void bar_impl( const ptx_instruction *pIin, ptx_thread_info *thread ) op2_data.u32=!(op2_data.pred & 0x0001); pI->set_bar_id(op1_data.u32); switch(red_op){ - case POPC_REDUCTION: + case ATOMIC_POPC: thread->popc_reduction(ctaid,op1_data.u32,op2_data.u32); break; - case AND_REDUCTION: + case ATOMIC_AND: thread->and_reduction(ctaid,op1_data.u32,op2_data.u32); break; - case OR_REDUCTION: + case ATOMIC_OR: thread->or_reduction(ctaid,op1_data.u32,op2_data.u32); break; default: diff --git a/src/cuda-sim/ptx.l b/src/cuda-sim/ptx.l index ebe07c7..dfed936 100644 --- a/src/cuda-sim/ptx.l +++ b/src/cuda-sim/ptx.l @@ -298,9 +298,6 @@ breakaddr TC; ptx_lval.int_value = BREAKADDR_OP; return OPCODE; \.arrive TC; return ARRIVE_OPTION; \.red TC; return RED_OPTION; -\.popc TC; return POPC_REDUCTION; -\.and TC; return AND_REDUCTION; -\.or TC; return OR_REDUCTION; \.approx TC; return APPROX_OPTION; \.full TC; return FULL_OPTION; @@ -327,6 +324,7 @@ breakaddr TC; ptx_lval.int_value = BREAKADDR_OP; return OPCODE; \.wb TC; return WB_OPTION; \.wt TC; return WT_OPTION; +\.popc TC; return ATOMIC_POPC; \.and TC; return ATOMIC_AND; \.or TC; return ATOMIC_OR; \.xor TC; return ATOMIC_XOR; diff --git a/src/cuda-sim/ptx.y b/src/cuda-sim/ptx.y index 6c614bf..e5942f0 100644 --- a/src/cuda-sim/ptx.y +++ b/src/cuda-sim/ptx.y @@ -157,10 +157,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. %token NEG_OPTION %token SYNC_OPTION %token RED_OPTION -%token POPC_REDUCTION -%token AND_REDUCTION -%token OR_REDUCTION %token ARRIVE_OPTION +%token ATOMIC_POPC %token ATOMIC_AND %token ATOMIC_OR %token ATOMIC_XOR @@ -416,10 +414,7 @@ option: type_spec | rounding_mode | SYNC_OPTION { add_option(SYNC_OPTION); } | ARRIVE_OPTION { add_option(ARRIVE_OPTION); } - | RED_OPTION { add_option(RED_OPTION); } - | POPC_REDUCTION { add_option(POPC_REDUCTION); } - | AND_REDUCTION { add_option(AND_REDUCTION); } - | OR_REDUCTION { add_option(OR_REDUCTION); } + | RED_OPTION { add_option(RED_OPTION); } | UNI_OPTION { add_option(UNI_OPTION); } | WIDE_OPTION { add_option(WIDE_OPTION); } | ANY_OPTION { add_option(ANY_OPTION); } diff --git a/src/cuda-sim/ptx_ir.cc b/src/cuda-sim/ptx_ir.cc index b6c1b9a..490cb10 100644 --- a/src/cuda-sim/ptx_ir.cc +++ b/src/cuda-sim/ptx_ir.cc @@ -1049,11 +1049,6 @@ ptx_instruction::ptx_instruction( int opcode, case RED_OPTION: m_barrier_op = last_ptx_inst_option; break; - case OR_REDUCTION: - case AND_REDUCTION: - case POPC_REDUCTION: - m_reduction_op = last_ptx_inst_option; - break; case EQU_OPTION: case NEU_OPTION: case LTU_OPTION: diff --git a/src/cuda-sim/ptx_ir.h b/src/cuda-sim/ptx_ir.h index 1dd851a..b51406e 100644 --- a/src/cuda-sim/ptx_ir.h +++ b/src/cuda-sim/ptx_ir.h @@ -993,7 +993,6 @@ public: unsigned saturation_mode() const { return m_saturation_mode;} unsigned dimension() const { return m_geom_spec;} unsigned barrier_op() const {return m_barrier_op;} - unsigned reduction_op() const {return m_reduction_op;} enum vote_mode_t { vote_any, vote_all, vote_uni, vote_ballot }; enum vote_mode_t vote_mode() const { return m_vote_mode; } @@ -1059,7 +1058,6 @@ private: unsigned m_compare_op; unsigned m_saturation_mode; unsigned m_barrier_op; - unsigned m_reduction_op; std::list<int> m_scalar_type; memory_space_t m_space_spec; |
