yaxunl added a comment.

In D79526#2025761 <https://reviews.llvm.org/D79526#2025761>, @tra wrote:

> I've tested the patch on our sources and it still breaks tensorflow 
> compilation, though in a different way:
>
>   In file included from 
> third_party/tensorflow/core/kernels/slice_op_gpu.cu.cc:22:
>   In file included from 
> ./third_party/tensorflow/core/framework/register_types.h:20:
>   In file included from 
> ./third_party/tensorflow/core/framework/numeric_types.h:28:
>   In file included from ./third_party/tensorflow/core/platform/types.h:22:
>   In file included from ./third_party/tensorflow/core/platform/tstring.h:24:
>   In file included from ./third_party/tensorflow/core/platform/cord.h:23:
>   In file included from 
> ./third_party/tensorflow/core/platform/google/cord.h:19:
>   In file included from ./third_party/absl/strings/cord.h:89:
>   ./third_party/absl/strings/internal/cord_internal.h:34:16: error: no 
> matching constructor for initialization of 'std::atomic<int32_t>' (aka 
> 'atomic<int>')
>     Refcount() : count_{1} {}
>                  ^     ~~~
>   
> third_party/crosstool/v18/llvm_unstable/toolchain/bin/../include/c++/v1/atomic:1778:8:
>  note: candidate constructor (the implicit copy constructor) not viable: no 
> known conversion from 'int' to 'const std::__u::atomic<int>' for 1st argument
>   struct atomic
>          ^
>   
> third_party/crosstool/v18/llvm_unstable/toolchain/bin/../include/c++/v1/atomic:1784:5:
>  note: candidate constructor not viable: requires 0 arguments, but 1 was 
> provided
>       atomic() _NOEXCEPT _LIBCPP_DEFAULT
>       ^
>   
> third_party/crosstool/v18/llvm_unstable/toolchain/bin/../include/c++/v1/atomic:1807:52:
>  error: call to deleted constructor of 
> '__atomic_base<base::scheduling::Schedulable *>'
>       _LIBCPP_CONSTEXPR atomic(_Tp* __d) _NOEXCEPT : __base(__d) {}
>                                                      ^      ~~~
>   ./third_party/absl/base/internal/thread_identity.h:162:66: note: in 
> instantiation of member function 
> 'std::__u::atomic<base::scheduling::Schedulable *>::atomic' requested here
>       std::atomic<base::scheduling::Schedulable*> bound_schedulable{nullptr};
>                                                                    ^
>   
> third_party/crosstool/v18/llvm_unstable/toolchain/bin/../include/c++/v1/atomic:1675:5:
>  note: '__atomic_base' has been explicitly marked deleted here
>       __atomic_base(const __atomic_base&) = delete;
>       ^
>   
> third_party/crosstool/v18/llvm_unstable/toolchain/bin/../include/c++/v1/atomic:1786:51:
>  error: call to implicitly-deleted copy constructor of '__atomic_base<long>'
>       _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
>                                                     ^      ~~~
>   ./third_party/absl/synchronization/mutex.h:927:25: note: in instantiation 
> of member function 'std::__u::atomic<long>::atomic' requested here
>   inline Mutex::Mutex() : mu_(0) {
>                           ^
>   
> third_party/crosstool/v18/llvm_unstable/toolchain/bin/../include/c++/v1/atomic:1698:7:
>  note: copy constructor of '__atomic_base<long, true>' is implicitly deleted 
> because base class '__atomic_base<long, false>' has a deleted copy constructor
>       : public __atomic_base<_Tp, false>
>         ^
>   
> third_party/crosstool/v18/llvm_unstable/toolchain/bin/../include/c++/v1/atomic:1675:5:
>  note: '__atomic_base' has been explicitly marked deleted here
>       __atomic_base(const __atomic_base&) = delete;
>       ^
>  
>


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.


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

https://reviews.llvm.org/D79526



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to