1
1

And now the optimization step.

This commit was SVN r12521.
Этот коммит содержится в:
George Bosilca 2006-11-09 20:26:51 +00:00
родитель 1d80f685b5
Коммит 4cb7910a8b
2 изменённых файлов: 4 добавлений и 6 удалений

Просмотреть файл

@ -426,12 +426,12 @@ int32_t ompi_convertor_set_position_nocheck( ompi_convertor_t* convertor,
OMPI_CONVERTOR_PREPARE( convertor, datatype, count, pUserBuf ); \
\
if( 0 == bdt_mask ) { \
convertor->flags |= CONVERTOR_HOMOGENEOUS; \
convertor->remote_size = convertor->local_size; \
convertor->use_desc = &(datatype->opt_desc); \
} else { \
ompi_convertor_master_t* master; \
int i; \
convertor->flags ^= CONVERTOR_HOMOGENEOUS; \
bdt_mask = datatype->bdt_used; \
master = convertor->master; \
convertor->remote_size = 0; \
@ -450,9 +450,9 @@ int32_t ompi_convertor_set_position_nocheck( ompi_convertor_t* convertor,
if( ((convertor->flags & (CONVERTOR_WITH_CHECKSUM | DT_FLAG_NO_GAPS)) \
== DT_FLAG_NO_GAPS) && \
(convertor->flags & (CONVERTOR_SEND | CONVERTOR_HOMOGENEOUS)) ) { \
convertor->flags |= CONVERTOR_NO_OP; \
return OMPI_SUCCESS; \
} \
convertor->flags ^= CONVERTOR_NO_OP; \
{ \
uint32_t required_stack_length = datatype->btypes[DT_LOOP] + 1; \
\

Просмотреть файл

@ -202,6 +202,7 @@ ompi_convertor_get_unpacked_size( const ompi_convertor_t* pConv,
/* Grab the datatype part of the flags */ \
convertor->flags &= CONVERTOR_TYPE_MASK; \
convertor->flags |= (CONVERTOR_DATATYPE_MASK & datatype->flags); \
convertor->flags |= (CONVERTOR_NO_OP | CONVERTOR_HOMOGENEOUS); \
convertor->pDesc = (ompi_datatype_t*)datatype; \
convertor->bConverted = 0; \
\
@ -212,7 +213,7 @@ ompi_convertor_get_unpacked_size( const ompi_convertor_t* pConv,
* the convertor->local_size but we can test the 2 components. \
*/ \
if( 0 == (convertor->count | datatype->size) ) { \
convertor->flags |= (CONVERTOR_COMPLETED | CONVERTOR_NO_OP); \
convertor->flags |= CONVERTOR_COMPLETED; \
convertor->remote_size = 0; \
return OMPI_SUCCESS; \
} \
@ -221,15 +222,12 @@ ompi_convertor_get_unpacked_size( const ompi_convertor_t* pConv,
convertor->remote_size = convertor->local_size; \
convertor->use_desc = &(datatype->opt_desc); \
if( (convertor->flags & (CONVERTOR_WITH_CHECKSUM | DT_FLAG_NO_GAPS)) == DT_FLAG_NO_GAPS ) { \
convertor->flags |= (CONVERTOR_NO_OP | CONVERTOR_HOMOGENEOUS); \
return OMPI_SUCCESS; \
} \
if( ((convertor->flags & (CONVERTOR_WITH_CHECKSUM | DT_FLAG_CONTIGUOUS)) \
== DT_FLAG_CONTIGUOUS) && (1 == count) ) { \
convertor->flags |= (CONVERTOR_NO_OP | CONVERTOR_HOMOGENEOUS); \
return OMPI_SUCCESS; \
} \
convertor->flags |= CONVERTOR_HOMOGENEOUS; \
} \
}