[PATCH v2 0/1] libgccjit: Add gcc_jit_type_is_floating_point
Antoni Boucher via Sourceware Forge
forge-bot+antoyo@forge-stage.sourceware.org
Fri May 22 14:26:12 GMT 2026
Hi gcc-patches mailing list,
Antoni Boucher via Sourceware Forge <forge-bot+antoyo@forge-stage.sourceware.org> has requested that the following forgejo pull request
be published on the mailing list.
Created on: 2025-09-05 15:05:17+00:00
Latest update: 2026-05-22 14:26:12+00:00
Changes: 6 changed files, 108 additions, 3 deletions
Head revision: antoyo/gcc ref gccjit-is-floating-point commit 5702d95898f2aee93e7f5b76af877f5c34117701
Base revision: gcc/gcc-TEST ref trunk commit 6c01778628d93c5135536e051dc39f8d85198d06 r16-4563-g6c01778628d93c
Merge base: 6c01778628d93c5135536e051dc39f8d85198d06
Full diff url: https://forge.sourceware.org/gcc/gcc-TEST/pulls/74.diff
Discussion: https://forge.sourceware.org/gcc/gcc-TEST/pulls/74
Requested Reviewers: dmalcolm
```
gcc/jit/ChangeLog:
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_35): New ABI tag.
* docs/topics/types.rst: Document gcc_jit_type_is_floating_point.
* libgccjit.cc (gcc_jit_type_is_floating_point): New function.
* libgccjit.h (gcc_jit_type_is_floating_point): New function.
* libgccjit.map: New function.
gcc/testsuite/ChangeLog:
* jit.dg/test-reflection.c: Add test for
gcc_jit_type_is_floating_point.
```
Changed files:
- M: gcc/jit/docs/topics/compatibility.rst
- M: gcc/jit/docs/topics/types.rst
- M: gcc/jit/libgccjit.cc
- M: gcc/jit/libgccjit.h
- M: gcc/jit/libgccjit.map
- M: gcc/testsuite/jit.dg/test-reflection.c
Antoni Boucher (1):
libgccjit: Add gcc_jit_type_is_floating_point
gcc/jit/docs/topics/compatibility.rst | 8 ++++
gcc/jit/docs/topics/types.rst | 12 +++++
gcc/jit/libgccjit.cc | 17 +++++++
gcc/jit/libgccjit.h | 6 +++
gcc/jit/libgccjit.map | 5 ++
gcc/testsuite/jit.dg/test-reflection.c | 63 ++++++++++++++++++++++++--
6 files changed, 108 insertions(+), 3 deletions(-)
Range-diff against v1:
1: 90ab6e135e23 ! 1: 5702d95898f2 libgccjit: Add gcc_jit_type_is_floating_point
@@ Commit message
Co-authored-by: Robert Zakrzewski <robert.zakrzewski1@stellantis.com>
## gcc/jit/docs/topics/compatibility.rst ##
-@@ gcc/jit/docs/topics/compatibility.rst: temporary variable:
- ``LIBGCCJIT_ABI_34`` covers the addition of
-
- * :func:`gcc_jit_context_set_output_ident`
+@@ gcc/jit/docs/topics/compatibility.rst: information:
+ --------------------
+ ``LIBGCCJIT_ABI_37`` covers the addition of
+ :func:`gcc_jit_context_new_array_type_u64`
+
-+.. _LIBGCCJIT_ABI_35:
++.. _LIBGCCJIT_ABI_38:
+
-+``LIBGCCJIT_ABI_35``
++``LIBGCCJIT_ABI_38``
+--------------------
-+``LIBGCCJIT_ABI_35`` covers the addition of
++``LIBGCCJIT_ABI_38`` covers the addition of
+
+ * :func:`gcc_jit_type_is_floating_point`
@@ gcc/jit/docs/topics/types.rst: Reflection API
+
+ .. code-block:: c
+
-+ #ifdef LIBGCCJIT_HAVE_gcc_jit_context_set_output_ident
++ #ifdef LIBGCCJIT_HAVE_gcc_jit_type_is_floating_point
+
.. function:: gcc_jit_type *\
gcc_jit_type_is_pointer (gcc_jit_type *type)
@@ gcc/jit/libgccjit.h: gcc_jit_function_type_get_param_type (gcc_jit_function_type
extern gcc_jit_type *
## gcc/jit/libgccjit.map ##
-@@ gcc/jit/libgccjit.map: LIBGCCJIT_ABI_34 {
+@@ gcc/jit/libgccjit.map: LIBGCCJIT_ABI_37 {
global:
- gcc_jit_context_set_output_ident;
- } LIBGCCJIT_ABI_33;
+ gcc_jit_context_new_array_type_u64;
+ } LIBGCCJIT_ABI_36;
+
-+LIBGCCJIT_ABI_35 {
++LIBGCCJIT_ABI_38 {
+ global:
+ gcc_jit_type_is_floating_point;
-+} LIBGCCJIT_ABI_34;
++} LIBGCCJIT_ABI_37;
## gcc/testsuite/jit.dg/test-reflection.c ##
@@ gcc/testsuite/jit.dg/test-reflection.c: verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_DOUBLE);
CHECK_VALUE (gcc_jit_function_get_return_type(builtin_sin), double_type);
CHECK (!gcc_jit_type_is_integral(double_type));
-+ CHECK (gcc_jit_type_is_floating_point(double_type));
++ CHECK (gcc_jit_type_is_floating_point (double_type));
+
+ gcc_jit_type *float_type =
+ gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT);
-+ CHECK (!gcc_jit_type_is_bool(float_type));
-+ CHECK (!gcc_jit_type_is_integral(float_type));
-+ CHECK (gcc_jit_type_is_floating_point(float_type));
-+
-+ gcc_jit_target_info *target_info = gcc_jit_context_get_target_info(ctxt);
-+ if (target_info != NULL && gcc_jit_target_info_supports_target_dependent_type(target_info, GCC_JIT_TYPE_FLOAT16))
++ CHECK (!gcc_jit_type_is_bool (float_type));
++ CHECK (!gcc_jit_type_is_integral (float_type));
++ CHECK (gcc_jit_type_is_floating_point (float_type));
++
++ gcc_jit_target_info *target_info = gcc_jit_context_get_target_info (ctxt);
++ if (target_info != NULL &&
++ gcc_jit_target_info_supports_target_dependent_type (target_info,
++ GCC_JIT_TYPE_FLOAT16))
+ {
-+ gcc_jit_type *float16_type = gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT16);
-+ CHECK (!gcc_jit_type_is_bool(float16_type));
-+ CHECK (!gcc_jit_type_is_integral(float16_type));
-+ CHECK (gcc_jit_type_is_floating_point(float16_type));
++ gcc_jit_type *float16_type
++ = gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT16);
++ CHECK (!gcc_jit_type_is_bool (float16_type));
++ CHECK (!gcc_jit_type_is_integral (float16_type));
++ CHECK (gcc_jit_type_is_floating_point (float16_type));
+ }
+
-+ if (target_info != NULL && gcc_jit_target_info_supports_target_dependent_type(target_info, GCC_JIT_TYPE_FLOAT32))
++ if (target_info != NULL &&
++ gcc_jit_target_info_supports_target_dependent_type (target_info,
++ GCC_JIT_TYPE_FLOAT32))
+ {
-+ gcc_jit_type *float32_type = gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT32);
-+ CHECK (!gcc_jit_type_is_bool(float32_type));
-+ CHECK (!gcc_jit_type_is_integral(float32_type));
-+ CHECK (gcc_jit_type_is_floating_point(float32_type));
++ gcc_jit_type *float32_type
++ = gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT32);
++ CHECK (!gcc_jit_type_is_bool (float32_type));
++ CHECK (!gcc_jit_type_is_integral (float32_type));
++ CHECK (gcc_jit_type_is_floating_point (float32_type));
+ }
+
-+ if (target_info != NULL && gcc_jit_target_info_supports_target_dependent_type(target_info, GCC_JIT_TYPE_FLOAT64))
++ if (target_info != NULL &&
++ gcc_jit_target_info_supports_target_dependent_type (target_info,
++ GCC_JIT_TYPE_FLOAT64))
+ {
-+ gcc_jit_type *float64_type = gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT64);
-+ CHECK (!gcc_jit_type_is_bool(float64_type));
-+ CHECK (!gcc_jit_type_is_integral(float64_type));
-+ CHECK (gcc_jit_type_is_floating_point(float64_type));
++ gcc_jit_type *float64_type
++ = gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT64);
++ CHECK (!gcc_jit_type_is_bool (float64_type));
++ CHECK (!gcc_jit_type_is_integral (float64_type));
++ CHECK (gcc_jit_type_is_floating_point (float64_type));
+ }
+
-+ if (target_info != NULL && gcc_jit_target_info_supports_target_dependent_type(target_info, GCC_JIT_TYPE_FLOAT128))
++ if (target_info != NULL &&
++ gcc_jit_target_info_supports_target_dependent_type (target_info,
++ GCC_JIT_TYPE_FLOAT128))
+ {
-+ gcc_jit_type *float128_type = gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT128);
-+ CHECK (!gcc_jit_type_is_bool(float128_type));
-+ CHECK (!gcc_jit_type_is_integral(float128_type));
-+ CHECK (gcc_jit_type_is_floating_point(float128_type));
++ gcc_jit_type *float128_type
++ = gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT128);
++ CHECK (!gcc_jit_type_is_bool (float128_type));
++ CHECK (!gcc_jit_type_is_integral (float128_type));
++ CHECK (gcc_jit_type_is_floating_point (float128_type));
+ }
gcc_jit_type *bool_type =
gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_BOOL);
- CHECK (gcc_jit_type_is_bool(bool_type));
- CHECK (!gcc_jit_type_is_integral(bool_type));
-+ CHECK (!gcc_jit_type_is_floating_point(bool_type));
+- CHECK (gcc_jit_type_is_bool(bool_type));
+- CHECK (!gcc_jit_type_is_integral(bool_type));
++ CHECK (gcc_jit_type_is_bool (bool_type));
++ CHECK (!gcc_jit_type_is_integral (bool_type));
++ CHECK (!gcc_jit_type_is_floating_point (bool_type));
gcc_jit_type *aligned_bool_type =
gcc_jit_type_get_aligned(gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_BOOL), 8);
+- CHECK (gcc_jit_type_is_bool(aligned_bool_type));
++ CHECK (gcc_jit_type_is_bool (aligned_bool_type));
+ CHECK (bool_type != aligned_bool_type);
+ CHECK_VALUE (gcc_jit_type_unqualified(aligned_bool_type), bool_type);
+
@@ gcc/testsuite/jit.dg/test-reflection.c: verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
gcc_jit_type *int64 =
gcc_jit_context_get_int_type(ctxt, 8, 1);
--
2.54.0
More information about the Jit
mailing list