<div><div dir="auto">The host code is affected with Clang 9 at this moment. I was originally reporting the host code can not be compiled with -fopemp-targets.</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 25, 2019 at 19:50 Doerfert, Johannes <<a href="mailto:jdoerfert@anl.gov">jdoerfert@anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Now, and in future releases, host code should not be impacted.<br>
<br>
________________________________________<br>
From: Itaru Kitayama <<a href="mailto:itaru.kitayama@gmail.com" target="_blank">itaru.kitayama@gmail.com</a>><br>
Sent: Thursday, July 25, 2019 05:28<br>
To: Doerfert, Johannes<br>
Cc: Jeff Hammond; <a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a><br>
Subject: Re: [Openmp-dev] Math symbols are not found during configuration<br>
<br>
In future releases, is NAN supported at least in host code? It's scattered everywhere in the codebase I am currently working.<br>
<br>
On Thu, Jul 25, 2019 at 12:13 PM Doerfert, Johannes <<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a><mailto:<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a>>> wrote:<br>
You are correct, there is a regression but also a major improvement:<br>
<br>
Clang 8.0: M_PI  works in host code and NVPTX-device code<br>
Clang 8.0: std::sin etc. works in host code but not NVPTX-device code<br>
Clang 9.0: M_PI works in host code but not in NVPTX-device code<br>
Clang 9.0: std::sin etc. works in host code and NVPTX-device code<br>
<br>
So we basically traded in system math declarations that had a valid implementation<br>
for NVPTX-devices, thus no vector intrinsics, inline assembly etc., for specialized math<br>
declarations that are distributed with Clang CUDA (as builtin math functions).<br>
<br>
I hope this does not cause too much trouble for you and you can benefit from the<br>
additional support. Know that we are working to get both up and running.<br>
<br>
Does this help?<br>
<br>
________________________________________<br>
From: Itaru Kitayama <<a href="mailto:itaru.kitayama@gmail.com" target="_blank">itaru.kitayama@gmail.com</a><mailto:<a href="mailto:itaru.kitayama@gmail.com" target="_blank">itaru.kitayama@gmail.com</a>>><br>
Sent: Wednesday, July 24, 2019 19:47<br>
To: Doerfert, Johannes<br>
Cc: Jeff Hammond; <a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>><br>
Subject: Re: [Openmp-dev] Math symbols are not found during configuration<br>
<br>
Johannes,<br>
Clang 8.0.0 works without making modifications to the source code, thus I am confused as to<br>
what needs to be done.<br>
<br>
On Thu, Jul 25, 2019 at 5:32 AM Doerfert, Johannes <<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a><mailto:<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a>><mailto:<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a><mailto:<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a>>>> wrote:<br>
#define works, the preprocessor works.<br>
<br>
When the target region is compiled we do not include math.h. This will<br>
change once we get support for variants. Till then, it is either no math<br>
functions or only he ones Clang CUDA provides automatically, which seems<br>
not to include these defines, maybe because they are not ISO C but POSIX<br>
extensions.<br>
<br>
<br>
On 07/24, Jeff Hammond wrote:<br>
> How does #define not act on the full source code? How is that a compliant implementation of the preprocessor?<br>
><br>
> Jeff<br>
><br>
> > On Jul 24, 2019, at 12:25 PM, Doerfert, Johannes via Openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>>>> wrote:<br>
> ><br>
> > Hi Itaru,<br>
> ><br>
> > For now, you need to define them yourself when you need them in the target region.<br>
> > We are working on a permanent solution.<br>
> ><br>
> > Thanks,<br>
> >  Johannes<br>
> ><br>
> > ________________________________________<br>
> > From: Openmp-dev <<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a><mailto:<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a>><mailto:<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a><mailto:<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a>>>> on behalf of Itaru Kitayama via Openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>>>><br>
> > Sent: Tuesday, July 23, 2019 22:58<br>
> > To: <a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a><mailto:<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>>><br>
> > Subject: [Openmp-dev] Math symbols are not found during configuration<br>
> ><br>
> > Hi,<br>
> > Adding the flag -fopenmp-targets=nvptx64 makes math symbols M_E and M_PI defined in cmath not detected during the execution of CMake. How do I work around this? I am using the latest trunk Clang at this moment, and without the above flag, both symbols are detected properly.<br>
> ><br>
> > Thanks,<br>
> > Itaru.<br>
> > _______________________________________________<br>
> > Openmp-dev mailing list<br>
> > <a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><mailto:<a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a>><mailto:<a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><mailto:<a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a>>><br>
> > <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a><br>
<br>
--<br>
<br>
Johannes Doerfert<br>
Researcher<br>
<br>
Argonne National Laboratory<br>
Lemont, IL 60439, USA<br>
<br>
<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a><mailto:<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a>><mailto:<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a><mailto:<a href="mailto:jdoerfert@anl.gov" target="_blank">jdoerfert@anl.gov</a>>><br>
</blockquote></div></div>