[flang-commits] [flang] 3ba0791 - [flang][runtime] Added missing routines into CUDA build. (#90272)
via flang-commits
flang-commits at lists.llvm.org
Mon Apr 29 08:18:55 PDT 2024
Author: Slava Zakharin
Date: 2024-04-29T08:18:51-07:00
New Revision: 3ba079183f82191d8b6a26dedfebc4a031a3fb6d
URL: https://github.com/llvm/llvm-project/commit/3ba079183f82191d8b6a26dedfebc4a031a3fb6d
DIFF: https://github.com/llvm/llvm-project/commit/3ba079183f82191d8b6a26dedfebc4a031a3fb6d.diff
LOG: [flang][runtime] Added missing routines into CUDA build. (#90272)
Apparently, nvcc does not compile for device the routines whose
definitions
are not marked with device attribute (note that the forward declarations
are already marked). It looks like it is different for class members,
i.e. marking just the declarations is enough.
Added:
Modified:
flang/runtime/CMakeLists.txt
flang/runtime/file.cpp
flang/runtime/namelist.cpp
Removed:
################################################################################
diff --git a/flang/runtime/CMakeLists.txt b/flang/runtime/CMakeLists.txt
index 9f25c5dfcad11d..bc81e1b1887b77 100644
--- a/flang/runtime/CMakeLists.txt
+++ b/flang/runtime/CMakeLists.txt
@@ -192,6 +192,7 @@ set(supported_files
environment.cpp
extrema.cpp
external-unit.cpp
+ file.cpp
findloc.cpp
format.cpp
inquiry.cpp
diff --git a/flang/runtime/file.cpp b/flang/runtime/file.cpp
index acd5d33d4bb87b..79db17e70acd90 100644
--- a/flang/runtime/file.cpp
+++ b/flang/runtime/file.cpp
@@ -457,22 +457,22 @@ std::int64_t SizeInBytes(const char *path) {
return -1;
}
#else // defined(RT_DEVICE_COMPILATION)
-bool IsATerminal(int fd) {
+RT_API_ATTRS bool IsATerminal(int fd) {
Terminator{__FILE__, __LINE__}.Crash("%s: unsupported", RT_PRETTY_FUNCTION);
}
-bool IsExtant(const char *path) {
+RT_API_ATTRS bool IsExtant(const char *path) {
Terminator{__FILE__, __LINE__}.Crash("%s: unsupported", RT_PRETTY_FUNCTION);
}
-bool MayRead(const char *path) {
+RT_API_ATTRS bool MayRead(const char *path) {
Terminator{__FILE__, __LINE__}.Crash("%s: unsupported", RT_PRETTY_FUNCTION);
}
-bool MayWrite(const char *path) {
+RT_API_ATTRS bool MayWrite(const char *path) {
Terminator{__FILE__, __LINE__}.Crash("%s: unsupported", RT_PRETTY_FUNCTION);
}
-bool MayReadAndWrite(const char *path) {
+RT_API_ATTRS bool MayReadAndWrite(const char *path) {
Terminator{__FILE__, __LINE__}.Crash("%s: unsupported", RT_PRETTY_FUNCTION);
}
-std::int64_t SizeInBytes(const char *path) {
+RT_API_ATTRS std::int64_t SizeInBytes(const char *path) {
Terminator{__FILE__, __LINE__}.Crash("%s: unsupported", RT_PRETTY_FUNCTION);
}
#endif // defined(RT_DEVICE_COMPILATION)
diff --git a/flang/runtime/namelist.cpp b/flang/runtime/namelist.cpp
index b9eed2101ecfc9..af092de70f7819 100644
--- a/flang/runtime/namelist.cpp
+++ b/flang/runtime/namelist.cpp
@@ -596,7 +596,7 @@ bool IODEF(InputNamelist)(Cookie cookie, const NamelistGroup &group) {
return true;
}
-bool IsNamelistNameOrSlash(IoStatementState &io) {
+RT_API_ATTRS bool IsNamelistNameOrSlash(IoStatementState &io) {
if (auto *listInput{
io.get_if<ListDirectedStatementState<Direction::Input>>()}) {
if (listInput->inNamelistSequence()) {
More information about the flang-commits
mailing list