pdtBase 182 ompi/datatype/ompi_datatype.h ompi_datatype_add( ompi_datatype_t* pdtBase, const ompi_datatype_t* pdtAdd, size_t count, pdtBase 185 ompi/datatype/ompi_datatype.h return opal_datatype_add( &pdtBase->super, &pdtAdd->super, count, disp, extent ); pdtBase 235 opal/datatype/opal_datatype.h OPAL_DECLSPEC int32_t opal_datatype_add( opal_datatype_t* pdtBase, const opal_datatype_t* pdtAdd, size_t count, pdtBase 105 opal/datatype/opal_datatype_add.c int32_t opal_datatype_add( opal_datatype_t* pdtBase, const opal_datatype_t* pdtAdd, pdtBase 128 opal/datatype/opal_datatype_add.c pdtBase->bdt_used |= (((uint32_t)1) << OPAL_DATATYPE_LB); pdtBase 129 opal/datatype/opal_datatype_add.c if( pdtBase->flags & OPAL_DATATYPE_FLAG_USER_LB ) { pdtBase 130 opal/datatype/opal_datatype_add.c pdtBase->lb = LMIN( pdtBase->lb, disp ); pdtBase 132 opal/datatype/opal_datatype_add.c pdtBase->lb = disp; pdtBase 133 opal/datatype/opal_datatype_add.c pdtBase->flags |= OPAL_DATATYPE_FLAG_USER_LB; pdtBase 135 opal/datatype/opal_datatype_add.c if( (pdtBase->ub - pdtBase->lb) != (ptrdiff_t)pdtBase->size ) { pdtBase 136 opal/datatype/opal_datatype_add.c pdtBase->flags &= ~OPAL_DATATYPE_FLAG_NO_GAPS; pdtBase 140 opal/datatype/opal_datatype_add.c pdtBase->bdt_used |= (((uint32_t)1) << OPAL_DATATYPE_UB); pdtBase 141 opal/datatype/opal_datatype_add.c if( pdtBase->flags & OPAL_DATATYPE_FLAG_USER_UB ) { pdtBase 142 opal/datatype/opal_datatype_add.c pdtBase->ub = LMAX( pdtBase->ub, disp ); pdtBase 144 opal/datatype/opal_datatype_add.c pdtBase->ub = disp; pdtBase 145 opal/datatype/opal_datatype_add.c pdtBase->flags |= OPAL_DATATYPE_FLAG_USER_UB; pdtBase 147 opal/datatype/opal_datatype_add.c if( (pdtBase->ub - pdtBase->lb) != (ptrdiff_t)pdtBase->size ) { pdtBase 148 opal/datatype/opal_datatype_add.c pdtBase->flags &= ~OPAL_DATATYPE_FLAG_NO_GAPS; pdtBase 178 opal/datatype/opal_datatype_add.c if( !(pdtBase->flags & OPAL_DATATYPE_FLAG_OVERLAP) ) { pdtBase 179 opal/datatype/opal_datatype_add.c if( ((disp + true_lb) >= pdtBase->true_ub) || pdtBase 180 opal/datatype/opal_datatype_add.c ((disp + true_ub) <= pdtBase->true_lb) ) { pdtBase 191 opal/datatype/opal_datatype_add.c if( (pdtAdd->flags ^ pdtBase->flags) & OPAL_DATATYPE_FLAG_USER_LB ) { pdtBase 192 opal/datatype/opal_datatype_add.c if( pdtBase->flags & OPAL_DATATYPE_FLAG_USER_LB ) { pdtBase 193 opal/datatype/opal_datatype_add.c lb = pdtBase->lb; /* base type has a user provided lb */ pdtBase 195 opal/datatype/opal_datatype_add.c pdtBase->flags |= OPAL_DATATYPE_FLAG_USER_LB; pdtBase 198 opal/datatype/opal_datatype_add.c lb = LMIN( pdtBase->lb, lb ); pdtBase 205 opal/datatype/opal_datatype_add.c if( (pdtBase->flags ^ pdtAdd->flags) & OPAL_DATATYPE_FLAG_USER_UB ) { pdtBase 206 opal/datatype/opal_datatype_add.c if( pdtBase->flags & OPAL_DATATYPE_FLAG_USER_UB ) { pdtBase 207 opal/datatype/opal_datatype_add.c ub = pdtBase->ub; pdtBase 209 opal/datatype/opal_datatype_add.c pdtBase->flags |= OPAL_DATATYPE_FLAG_USER_UB; pdtBase 213 opal/datatype/opal_datatype_add.c ub = LMAX( pdtBase->ub, ub ); pdtBase 219 opal/datatype/opal_datatype_add.c pdtBase->lb = lb; pdtBase 220 opal/datatype/opal_datatype_add.c pdtBase->ub = ub; pdtBase 223 opal/datatype/opal_datatype_add.c pdtBase->align = IMAX( pdtBase->align, pdtAdd->align ); pdtBase 231 opal/datatype/opal_datatype_add.c if( !(pdtBase->flags & OPAL_DATATYPE_FLAG_USER_UB) ) { pdtBase 232 opal/datatype/opal_datatype_add.c epsilon = (pdtBase->ub - pdtBase->lb) % pdtBase->align; pdtBase 234 opal/datatype/opal_datatype_add.c pdtBase->ub += (pdtBase->align - epsilon); pdtBase 238 opal/datatype/opal_datatype_add.c pdtBase->flags |= OPAL_DATATYPE_FLAG_DATA; pdtBase 257 opal/datatype/opal_datatype_add.c pdtBase->size += count * pdtAdd->size; pdtBase 258 opal/datatype/opal_datatype_add.c if( 0 == pdtBase->nbElems ) old_true_ub = disp; pdtBase 259 opal/datatype/opal_datatype_add.c else old_true_ub = pdtBase->true_ub; pdtBase 260 opal/datatype/opal_datatype_add.c if( 0 != pdtBase->size ) { pdtBase 261 opal/datatype/opal_datatype_add.c pdtBase->true_lb = LMIN( true_lb, pdtBase->true_lb ); pdtBase 262 opal/datatype/opal_datatype_add.c pdtBase->true_ub = LMAX( true_ub, pdtBase->true_ub ); pdtBase 264 opal/datatype/opal_datatype_add.c pdtBase->true_lb = true_lb; pdtBase 265 opal/datatype/opal_datatype_add.c pdtBase->true_ub = true_ub; pdtBase 268 opal/datatype/opal_datatype_add.c pdtBase->bdt_used |= pdtAdd->bdt_used; pdtBase 269 opal/datatype/opal_datatype_add.c newLength = pdtBase->desc.used + place_needed; pdtBase 270 opal/datatype/opal_datatype_add.c if( newLength > pdtBase->desc.length ) { pdtBase 272 opal/datatype/opal_datatype_add.c pdtBase->desc.desc = (dt_elem_desc_t*)realloc( pdtBase->desc.desc, pdtBase 274 opal/datatype/opal_datatype_add.c pdtBase->desc.length = newLength; pdtBase 276 opal/datatype/opal_datatype_add.c pLast = &(pdtBase->desc.desc[pdtBase->desc.used]); pdtBase 282 opal/datatype/opal_datatype_add.c if( NULL != pdtBase->ptypes ) pdtBase 283 opal/datatype/opal_datatype_add.c pdtBase->ptypes[pdtAdd->id] += count; pdtBase 288 opal/datatype/opal_datatype_add.c pdtBase->desc.used++; pdtBase 295 opal/datatype/opal_datatype_add.c pdtBase->loops += pdtAdd->loops; pdtBase 296 opal/datatype/opal_datatype_add.c pdtBase->flags |= (pdtAdd->flags & OPAL_DATATYPE_FLAG_USER_LB); pdtBase 297 opal/datatype/opal_datatype_add.c pdtBase->flags |= (pdtAdd->flags & OPAL_DATATYPE_FLAG_USER_UB); pdtBase 298 opal/datatype/opal_datatype_add.c if( (NULL != pdtBase->ptypes) && (NULL != pdtAdd->ptypes) ) { pdtBase 300 opal/datatype/opal_datatype_add.c if( pdtAdd->ptypes[i] != 0 ) pdtBase->ptypes[i] += (count * pdtAdd->ptypes[i]); pdtBase 307 opal/datatype/opal_datatype_add.c pdtBase->desc.used++; pdtBase 316 opal/datatype/opal_datatype_add.c pdtBase->loops += 2; pdtBase 317 opal/datatype/opal_datatype_add.c pdtBase->desc.used += 2; pdtBase 330 opal/datatype/opal_datatype_add.c pdtBase->desc.used += pdtAdd->desc.used; pdtBase 346 opal/datatype/opal_datatype_add.c localFlags = pdtBase->flags & pdtAdd->flags; pdtBase 347 opal/datatype/opal_datatype_add.c UNSET_CONTIGUOUS_FLAG(pdtBase->flags); pdtBase 353 opal/datatype/opal_datatype_add.c SET_CONTIGUOUS_FLAG(pdtBase->flags); pdtBase 354 opal/datatype/opal_datatype_add.c if( (ptrdiff_t)pdtBase->size == (pdtBase->ub - pdtBase->lb) ) pdtBase 355 opal/datatype/opal_datatype_add.c SET_NO_GAP_FLAG(pdtBase->flags); pdtBase 359 opal/datatype/opal_datatype_add.c if( pdtBase->flags & OPAL_DATATYPE_FLAG_NO_GAPS ) { pdtBase 360 opal/datatype/opal_datatype_add.c assert( pdtBase->flags & OPAL_DATATYPE_FLAG_CONTIGUOUS ); pdtBase 362 opal/datatype/opal_datatype_add.c pdtBase->nbElems += (count * pdtAdd->nbElems);