[all-commits] [llvm/llvm-project] 65a829: [flang][cuda] Transfer device data used in host op...

Valentin Clement (バレンタイン クレメン) via All-commits all-commits at lists.llvm.org
Sat Oct 3 15:36:56 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 65a82906cff9c7a7a33844812d35ce159d88a354
      https://github.com/llvm/llvm-project/commit/65a82906cff9c7a7a33844812d35ce159d88a354
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2026-10-03 (Sat, 03 Oct 2026)

  Changed paths:
    M flang/include/flang/Evaluate/tools.h
    M flang/lib/Evaluate/tools.cpp
    M flang/test/Lower/CUDA/cuda-data-transfer.cuf
    M flang/test/Semantics/CUDA/cuf18.cuf

  Log Message:
  -----------
  [flang][cuda] Transfer device data used in host operations (#228292)

An assignment to host data from an expression with device data is
lowered
as an implicit data transfer only when the expression also contains a
constant or a host symbol. Constants in subscripts are ignored, so
expressions such as a(3)*a(4), -a(3), -d1, or a conversion a(3) from
real(8) to real(4) were lowered as plain transfers. The scalar result
was
then computed on the host directly from device memory and stored to the
left-hand side, and array expressions failed the cuf.data_transfer
verifier.

Treat any right-hand side with device data that is not a variable as an
implicit transfer. The device data is copied to a host temporary and the
expression is evaluated on the host. An assignment of such an expression
to device data is now diagnosed as an unsupported transfer, as a = a +
10
already is.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list