summaryrefslogtreecommitdiff
path: root/src/cuda-sim/ptx_ir.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuda-sim/ptx_ir.cc')
-rw-r--r--src/cuda-sim/ptx_ir.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cuda-sim/ptx_ir.cc b/src/cuda-sim/ptx_ir.cc
index b98e774..e52fccd 100644
--- a/src/cuda-sim/ptx_ir.cc
+++ b/src/cuda-sim/ptx_ir.cc
@@ -756,6 +756,8 @@ void function_info::print_idominators()
unsigned function_info::get_num_reconvergence_pairs()
{
if (!num_reconvergence_pairs) {
+ if( m_basic_blocks.size() == 0 )
+ return 0;
for (unsigned i=0; i< (m_basic_blocks.size()-1); i++) { //last basic block containing exit obviously won't have a pair
if (m_basic_blocks[i]->ptx_end->get_opcode() == BRA_OP) {
num_reconvergence_pairs++;
@@ -768,6 +770,8 @@ unsigned function_info::get_num_reconvergence_pairs()
void function_info::get_reconvergence_pairs(gpgpu_recon_t* recon_points)
{
unsigned idx=0; //array index
+ if( m_basic_blocks.size() == 0 )
+ return;
for (unsigned i=0; i< (m_basic_blocks.size()-1); i++) { //last basic block containing exit obviously won't have a pair
#ifdef DEBUG_GET_RECONVERG_PAIRS
printf("i=%d\n", i); fflush(stdout);