void test() { default_constructor(); pointer_constructor(); copy_constructor(); move_constructor(); }
extern "C" void __intel_cilk_for_64_offload( int size, void (*copy_constructor)(void*, void*), int target_number, void *raddr, void *closure_object, uint64_t iters, uint64_t grain_size) { OFFLOAD_DEBUG_TRACE(3, "%s\n", __func__); target_number = __offload_myoIsAvailable(target_number); if (target_number >= 0) { struct S { void *M1; uint64_t M2; uint64_t M3; char closure[]; } *args; args = (struct S*) _Offload_shared_malloc(sizeof(struct S) + size); if (args == NULL) LIBOFFLOAD_ERROR(c_malloc); args->M1 = raddr; args->M2 = iters; args->M3 = grain_size; if (copy_constructor == 0) { memcpy(args->closure, closure_object, size); } else { copy_constructor(args->closure, closure_object); } myo_wrapper.Release(); myo_wrapper.GetResult( myo_wrapper.RemoteCall("__intel_cilk_for_64_offload", args, target_number) ); myo_wrapper.Acquire(); _Offload_shared_free(args); ORSL::release(target_number); } else { __cilkrts_cilk_for_64(raddr, closure_object, iters, grain_size); } }
std::ostream &print_copy_constructor(std::ostream &os) { os << std::setw(space1) << std::left; copy_constructor(os) << std::setw(space2) << std::left << "copy_constructor"; return os; }