/** * Convert for_stmt to a upc_forall statement if it has an affinity exp * in the global map. */ SgStatement* translate_to_upc(SgForStatement* for_stmt) { /* return value is either SgUpcForAllStmt or SgForStmt */ SgStatement* retval; /* translate if the for_stmt was upc_forall stmt */ aff_map_t::iterator affinity_exp_it = aff_exp_map.find(for_stmt); if (affinity_exp_it != aff_exp_map.end()) { /* build a new upc_forall statement */ retval = SageBuilder::buildUpcForAllStatement_nfi( for_stmt->get_for_init_stmt(), /* initialize stmt */ for_stmt->get_test(), /* condition */ for_stmt->get_increment(), /* increment */ affinity_exp_it->second, /* affinity */ for_stmt->get_loop_body() /* loop body */ ); /* set file info */ Sg_File_Info* old_file_info = for_stmt->get_file_info(); retval->set_file_info( old_file_info ); } else { /* for_stmt was never a upc_forall stmt */ retval = for_stmt; } return retval; }