<div dir="ltr">Ravi thanks for the confirmation.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 1, 2019 at 1:05 AM Narayanaswamy, Ravi <<a href="mailto:ravi.narayanaswamy@intel.com">ravi.narayanaswamy@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_8727001240700806160WordSection1">
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Support for virtual functions will be in 5.1<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Ravi<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<div>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11pt;font-family:Calibri,sans-serif">From:</span></b><span style="font-size:11pt;font-family:Calibri,sans-serif"> Openmp-dev [mailto:<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a>]
<b>On Behalf Of </b>Alexey Bataev via Openmp-dev<br>
<b>Sent:</b> Friday, September 27, 2019 7:14 PM<br>
<b>To:</b> Itaru Kitayama <<a href="mailto:itaru.kitayama@gmail.com" target="_blank">itaru.kitayama@gmail.com</a>><br>
<b>Cc:</b> openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>><br>
<b>Subject:</b> Re: [Openmp-dev] Libomptarget fatal error 1: failure of target construct while offloading is mandatory<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">1. If the is trivial, it is guaranteed to be offloaded correctly.  
<u></u><u></u></p>
<div>
<p class="MsoNormal" style="margin-bottom:12pt">2. No, 5.0 does not add anything like this.<u></u><u></u></p>
<div>
<p class="MsoNormal">Best regards, <u></u><u></u></p>
<div>
<p class="MsoNormal">Alexey Bataev<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<u></u><u></u></p>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<p class="MsoNormal" style="margin-bottom:12pt">27 сент. 2019 г., в 21:59, Itaru Kitayama <<a href="mailto:itaru.kitayama@gmail.com" target="_blank">itaru.kitayama@gmail.com</a>> написал(а):<u></u><u></u></p>
</blockquote>
</div>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<div>
<p class="MsoNormal">Do you mean, depending the type it might be offloaded correctly? Is this situation improved once 5.0 API is supported in trunk?<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Sat, Sep 28, 2019 at 10:22 Alexey Bataev <<a href="mailto:a.bataev@hotmail.com" target="_blank">a.bataev@hotmail.com</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">Non trivial types are not guaranteed to be offloaded correctly.
<br>
<br>
Best regards,<br>
Alexey Bataev<br>
<br>
> 27 сент. 2019 г., в 21:17, Itaru Kitayama via Openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>> написал(а):<br>
> <br>
> <br>
> Hi,<br>
> This simple C++ program:<br>
> <br>
> #include <iostream><br>
> <br>
> class Abstract {<br>
> public:<br>
>         virtual int f() = 0;<br>
> };<br>
> class Derived : public Abstract {<br>
>         public:<br>
>         int f() { return 1; };<br>
> };<br>
> <br>
> int main() {<br>
>         Abstract *p[10];<br>
>         for (int i=0;i<10;i++) {<br>
>             p[i] = new Derived;<br>
>         }<br>
>         int sum=0;<br>
> #pragma omp target parallel for map(p[:10]) reduction(+: sum)<br>
>         for (int i=0;i<10;i++) {<br>
>                 sum += p[i]->f();<br>
>         }<br>
>         std::cout << "sum " << sum << std::endl;<br>
> }<br>
> <br>
> can be built with the offloading flags of Clang and runs fine on host, but on<br>
> the device it crashes at runtime leaving the error message:<br>
> <br>
> ==60659== NVPROF is profiling process 60659, command: ./a.out<br>
> Libomptarget fatal error 1: failure of target construct while offloading is mandatory<br>
> ==60659== Profiling application: ./a.out<br>
> ==60659== Warning: 5 records have invalid timestamps due to insufficient device buffer space. You can configure the buffer space using the option --device-buffer-size.<br>
> ==60659== Warning: 4 records have invalid timestamps due to insufficient semaphore pool size. You can configure the pool size using the option --profiling-semaphore-pool-size.<br>
> ==60659== Profiling result:<br>
> No kernels were profiled.<br>
> <br>
> Does this just indicate the limitation of the current trunk Clang implementation?<br>
> <br>
> _______________________________________________<br>
> Openmp-dev mailing list<br>
> <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" target="_blank">
https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a><u></u><u></u></p>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>

</blockquote></div>