[PATCH] D79526: [CUDA][HIP] Workaround for resolving host device function against wrong-sided function

Artem Belevich via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri May 8 11:14:46 PDT 2020


tra added a comment.

The latest version of the patch works well enough to compile tensorflow. That's the good news.

In D79526#2026857 <https://reviews.llvm.org/D79526#2026857>, @yaxunl wrote:

> Looks like we went overboard to treat implicit host device candidate as inferior. They should be treated
>  as inferior in device compilation, not in host compilation. Here because they are treated as inferior
>  to same-sided candidate in host compilation, they changed overload resolution in host compilation
>  therefore caused the failure in host compilation.
>
> I have updated the patch to treat implicit host device candidate as inferior in device compilation.


I'm concerned that this creates inconsistency in how overload resolution works during host and device compilation.
In general they should behave the same. I.e. a test where this change is needed during device-side compilation will require the same change on the host side, if you swap H and D attributes on the functions in the test.

Speaking of tests, it would be great to add a test illustrating this scenario.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79526/new/

https://reviews.llvm.org/D79526





More information about the cfe-commits mailing list