Move the code around to shorten the execution path for the most common data-types.
This commit was SVN r9771.
Этот коммит содержится в:
родитель
1ea3a39372
Коммит
5133c987e3
@ -206,6 +206,13 @@ int32_t ompi_ddt_copy_content_same_ddt( const ompi_datatype_t* datatype, int32_t
|
|||||||
pElem = &(description[pos_desc]);
|
pElem = &(description[pos_desc]);
|
||||||
|
|
||||||
while( 1 ) {
|
while( 1 ) {
|
||||||
|
while( pElem->elem.common.flags & DT_FLAG_DATA ) {
|
||||||
|
/* now here we have a basic datatype */
|
||||||
|
COPY_PREDEFINED_DATATYPE( pElem, datatype, source_base, count, count_desc,
|
||||||
|
source, destination, iov_len_local );
|
||||||
|
pos_desc++; /* advance to the next data */
|
||||||
|
UPDATE_INTERNAL_COUNTERS( description, pos_desc, pElem, count_desc );
|
||||||
|
}
|
||||||
if( DT_END_LOOP == pElem->elem.common.type ) { /* end of the current loop */
|
if( DT_END_LOOP == pElem->elem.common.type ) { /* end of the current loop */
|
||||||
DO_DEBUG( opal_output( 0, "copy end_loop count %d stack_pos %d pos_desc %d disp %ld space %d\n",
|
DO_DEBUG( opal_output( 0, "copy end_loop count %d stack_pos %d pos_desc %d disp %ld space %d\n",
|
||||||
pStack->count, stack_pos, pos_desc, pStack->disp, iov_len_local ); );
|
pStack->count, stack_pos, pos_desc, pStack->disp, iov_len_local ); );
|
||||||
@ -251,12 +258,5 @@ int32_t ompi_ddt_copy_content_same_ddt( const ompi_datatype_t* datatype, int32_t
|
|||||||
DDT_DUMP_STACK( pStack, stack_pos, pElem, "advance loop" );
|
DDT_DUMP_STACK( pStack, stack_pos, pElem, "advance loop" );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
while( pElem->elem.common.flags & DT_FLAG_DATA ) {
|
|
||||||
/* now here we have a basic datatype */
|
|
||||||
COPY_PREDEFINED_DATATYPE( pElem, datatype, source_base, count, count_desc,
|
|
||||||
source, destination, iov_len_local );
|
|
||||||
pos_desc++; /* advance to the next data */
|
|
||||||
UPDATE_INTERNAL_COUNTERS( description, pos_desc, pElem, count_desc );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user