[libc-commits] [libc] 7e88e26 - [libc] Add GPU support for the 'inttypes.h' functions

Joseph Huber via libc-commits libc-commits at lists.llvm.org
Wed Jul 5 15:47:17 PDT 2023


Author: Joseph Huber
Date: 2023-07-05T17:47:10-05:00
New Revision: 7e88e26d3845a30c2831328f902fd3d597b3ef26

URL: https://github.com/llvm/llvm-project/commit/7e88e26d3845a30c2831328f902fd3d597b3ef26
DIFF: https://github.com/llvm/llvm-project/commit/7e88e26d3845a30c2831328f902fd3d597b3ef26.diff

LOG: [libc] Add GPU support for the 'inttypes.h' functions

Another low hanging fruit we can put on the GPU, this ports the tests
over to the hermetic framework so we can run them on the GPU.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D154540

Added: 
    

Modified: 
    libc/config/gpu/api.td
    libc/config/gpu/entrypoints.txt
    libc/config/gpu/headers.txt
    libc/docs/gpu/support.rst
    libc/test/src/inttypes/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/libc/config/gpu/api.td b/libc/config/gpu/api.td
index 5a6a576a85310e..3b55f7dc905729 100644
--- a/libc/config/gpu/api.td
+++ b/libc/config/gpu/api.td
@@ -30,3 +30,7 @@ def StdIOAPI : PublicAPI<"stdio.h"> {
   ];
   let Types = ["size_t", "FILE"];
 }
+
+def IntTypesAPI : PublicAPI<"inttypes.h"> {
+  let Types = ["imaxdiv_t"];
+}

diff  --git a/libc/config/gpu/entrypoints.txt b/libc/config/gpu/entrypoints.txt
index c39de4d476f6b8..e3ac3d2db0a87d 100644
--- a/libc/config/gpu/entrypoints.txt
+++ b/libc/config/gpu/entrypoints.txt
@@ -94,6 +94,12 @@ set(TARGET_LIBC_ENTRYPOINTS
     libc.src.stdio.stdout
     libc.src.stdio.stderr
 
+    # inttypes.h entrypoints
+    libc.src.inttypes.imaxabs
+    libc.src.inttypes.imaxdiv
+    libc.src.inttypes.strtoimax
+    libc.src.inttypes.strtoumax
+
     # gpu/rpc.h entrypoints
     libc.src.gpu.rpc_reset
 )

diff  --git a/libc/config/gpu/headers.txt b/libc/config/gpu/headers.txt
index cd7585afe3c39e..cd96d30cb4c008 100644
--- a/libc/config/gpu/headers.txt
+++ b/libc/config/gpu/headers.txt
@@ -1,6 +1,7 @@
 set(TARGET_PUBLIC_HEADERS
     libc.include.ctype
     libc.include.string
+    libc.include.inttypes
     libc.include.math
     libc.include.fenv
     libc.include.errno

diff  --git a/libc/docs/gpu/support.rst b/libc/docs/gpu/support.rst
index cc3e632f7f8af7..40ab5d5bd83547 100644
--- a/libc/docs/gpu/support.rst
+++ b/libc/docs/gpu/support.rst
@@ -104,6 +104,18 @@ strtoul        |check|
 strtoull       |check|
 =============  =========  ============
 
+inttypes.h
+--------
+
+=============  =========  ============
+Function Name  Available  RPC Required
+=============  =========  ============
+imaxabs        |check|
+imaxdiv        |check|
+strtoimax      |check|
+strtoumax      |check|
+=============  =========  ============
+
 stdio.h
 --------
 

diff  --git a/libc/test/src/inttypes/CMakeLists.txt b/libc/test/src/inttypes/CMakeLists.txt
index cbcd8463747e8c..c7088d3c13e2e8 100644
--- a/libc/test/src/inttypes/CMakeLists.txt
+++ b/libc/test/src/inttypes/CMakeLists.txt
@@ -1,9 +1,9 @@
-add_custom_target(libc_inttypes_unittests)
+add_custom_target(libc_inttypes_tests)
 
-add_libc_unittest(
+add_libc_test(
   strtoimax_test
   SUITE
-    libc_inttypes_unittests
+    libc_inttypes_tests
   SRCS
     strtoimax_test.cpp
   DEPENDS
@@ -11,10 +11,10 @@ add_libc_unittest(
     libc.test.src.stdlib.strtol_test_support
 )
 
-add_libc_unittest(
+add_libc_test(
   strtoumax_test
   SUITE
-    libc_inttypes_unittests
+    libc_inttypes_tests
   SRCS
     strtoumax_test.cpp
   DEPENDS
@@ -22,10 +22,10 @@ add_libc_unittest(
     libc.test.src.stdlib.strtol_test_support
 )
 
-add_libc_unittest(
+add_libc_test(
   imaxdiv_test
   SUITE
-    libc_inttypes_unittests
+    libc_inttypes_tests
   SRCS
     imaxdiv_test.cpp
   HDRS
@@ -35,10 +35,10 @@ add_libc_unittest(
     libc.src.inttypes.imaxdiv
 )
 
-add_libc_unittest(
+add_libc_test(
   imaxabs_test
   SUITE
-    libc_inttypes_unittests
+    libc_inttypes_tests
   SRCS
     imaxabs_test.cpp
   HDRS


        


More information about the libc-commits mailing list