jhuber6 wrote:

> Could you please provide a minimal reproducer to explain the issue. Based on 
> the limited description, it sounds like user tries to compile codes with hip 
> source code with OpenMP threading and the hip part was reactive to 
> `__OPENMP__`. It is complicated to ask hip mode supporting full OpenMP logics 
> (not just predefined macro but also API header files, directives). CUDA / HIP 
> offloading should not supports OpenMP at all.
> 
> My recommendation will be asking users to spin off the hip code as separate 
> functions in cpp file without openmp, the old cpp file then doesn't need to 
> be compiled in hip mode.

The test file is the reproducer:
```
#include <omp.h>

const char ompver_str[] = {'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'M', 
'P', '-',
                           'd', 'a', 't', 'e', '[',
                           ('0' + ((_OPENMP / 100000) % 10)),
                           ('0' + ((_OPENMP / 10000) % 10)),
                           ('0' + ((_OPENMP / 1000) % 10)),
                           ('0' + ((_OPENMP / 100) % 10)),
                           ('0' + ((_OPENMP / 10) % 10)),
                           ('0' + ((_OPENMP / 1) % 10)),
                           ']', '\0'};

int main(void) {
  return 0;
}
```
This is what CMake uses to test OpenMP. As you can see there are no checks for 
whether or not it's defined because it assumes if you pass `-fopenmp` it will 
be defines (As per the standard.) We could probably work around this as the 
user with `-Xarch_device -D_OPENMP=0` or something.

https://github.com/llvm/llvm-project/pull/176791
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to