__kmpc_reduce_nowait() correctly swapped the teams for reductions
in a teams construct. Apply the same logic to __kmpc_reduce() and
__kmpc_reduce_end().
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
openmp/trunk/runtime/test/misc_bugs/teams-reduction.c | ||
---|---|---|
33–34 | The compiler only aligns this to 4 byte, the size of one int32_t. This results in a SIGBUS error on Power because the runtime stores a pointer so the memory location needs to be aligned to 8 bytes. I've solved this in rL319811 with typedef union { // The global will be used as pointer, so we need to make sure that the // compiler correctly aligns the global... void *ptr; int32_t data[8]; } kmp_critical_name; If somebody has a less ugly idea, I'm happy to listen but I didn't want to use compiler dependent alignment directives... |
The compiler only aligns this to 4 byte, the size of one int32_t. This results in a SIGBUS error on Power because the runtime stores a pointer so the memory location needs to be aligned to 8 bytes. I've solved this in rL319811 with
If somebody has a less ugly idea, I'm happy to listen but I didn't want to use compiler dependent alignment directives...