Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[libc]Add proxy header hdr/float-macros.h #88674

Closed
wants to merge 4 commits into from
Closed

Conversation

aniplcc
Copy link
Contributor

@aniplcc aniplcc commented Apr 15, 2024

Closes #88433

@aniplcc aniplcc requested a review from rupprecht as a code owner April 15, 2024 01:59
@llvmbot llvmbot added libc bazel "Peripheral" support tier build system: utils/bazel labels Apr 15, 2024
@llvmbot
Copy link
Member

llvmbot commented Apr 15, 2024

@llvm/pr-subscribers-libc

Author: aniplcc (aniplcc)

Changes

Closes #88433


Full diff: https://github.com/llvm/llvm-project/pull/88674.diff

6 Files Affected:

  • (modified) libc/hdr/CMakeLists.txt (+9-2)
  • (added) libc/hdr/float_macros.h (+168)
  • (modified) libc/include/llvm-libc-macros/float-macros.h (+103-60)
  • (modified) libc/src/__support/macros/properties/CMakeLists.txt (+1-1)
  • (modified) libc/src/__support/macros/properties/types.h (+1-1)
  • (modified) utils/bazel/llvm-project-overlay/libc/BUILD.bazel (+7-2)
diff --git a/libc/hdr/CMakeLists.txt b/libc/hdr/CMakeLists.txt
index fb7c342f92b78f..1dd571a8147afb 100644
--- a/libc/hdr/CMakeLists.txt
+++ b/libc/hdr/CMakeLists.txt
@@ -41,6 +41,15 @@ add_proxy_header_library(
     libc.include.fenv
 )
 
+add_proxy_header_library(
+  float_macros
+  HDRS
+    float_macros.h
+  FULL_BUILD_DEPENDS
+    libc.include.llvm-libc-macros.float_macros
+    libc.incude.float
+)
+
 add_proxy_header_library(
   signal_macros
   HDRS
@@ -58,5 +67,3 @@ add_proxy_header_library(
     libc.include.sys_epoll
     libc.include.llvm-libc-macros.sys_epoll_macros
 )
-
-add_subdirectory(types)
diff --git a/libc/hdr/float_macros.h b/libc/hdr/float_macros.h
new file mode 100644
index 00000000000000..c1d10f02f6987f
--- /dev/null
+++ b/libc/hdr/float_macros.h
@@ -0,0 +1,168 @@
+//===-- Definition of macros from float.h ----------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_HDR_FLOAT_MACROS_H
+#define LLVM_LIBC_HDR_FLOAT_MACROS_H
+
+#ifdef LIBC_FULL_BUILD
+
+#include "include/llvm-libc-macros/float-macros.h"
+
+#else // Overlay mode
+
+#include <float.h>
+
+#ifndef FLT_RADIX
+#define FLT_RADIX __FLT_RADIX__
+#endif // FLT_RADIX
+
+#ifndef FLT_EVAL_METHOD
+#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
+#endif // FLT_EVAL_METHOD
+
+#ifndef DECIMAL_DIG
+#define DECIMAL_DIG __DECIMAL_DIG__
+#endif // DECIMAL_DIG
+
+#ifndef FLT_DECIMAL_DIG
+#define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
+#endif // FLT_DECIMAL_DIG
+
+#ifndef DBL_DECIMAL_DIG
+#define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
+#endif // DBL_DECIMAL_DIG
+
+#ifndef LDBL_DECIMAL_DIG
+#define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__
+#endif // LDBL_DECIMAL_DIG
+
+#ifndef FLT_DIG
+#define FLT_DIG __FLT_DIG__
+#endif // FLT_DIG
+
+#ifndef DBL_DIG
+#define DBL_DIG __DBL_DIG__
+#endif // DBL_DIG
+
+#ifndef LDBL_DIG
+#define LDBL_DIG __LDBL_DIG__
+#endif // LDBL_DIG
+
+#ifndef FLT_MANT_DIG
+#define FLT_MANT_DIG __FLT_MANT_DIG__
+#endif // FLT_MANT_DIG
+
+#ifndef DBL_MANT_DIG
+#define DBL_MANT_DIG __DBL_MANT_DIG__
+#endif // DBL_MANT_DIG
+
+#ifndef LDBL_MANT_DIG
+#define LDBL_MANT_DIG __LDBL_MANT_DIG__
+#endif // LDBL_MANT_DIG
+
+#ifndef FLT_MIN
+#define FLT_MIN __FLT_MIN__
+#endif // FLT_MIN
+
+#ifndef DBL_MIN
+#define DBL_MIN __DBL_MIN__
+#endif // DBL_MIN
+
+#ifndef LDBL_MIN
+#define LDBL_MIN __LDBL_MIN__
+#endif // LDBL_MIN
+
+#ifndef FLT_MAX
+#define FLT_MAX __FLT_MAX__
+#endif // FLT_MAX
+
+#ifndef DBL_MAX
+#define DBL_MAX __DBL_MAX__
+#endif // DBL_MAX
+
+#ifndef LDBL_MAX
+#define LDBL_MAX __LDBL_MAX__
+#endif // LDBL_MAX
+
+#ifndef FLT_TRUE_MIN
+#define FLT_TRUE_MIN __FLT_TRUE_MIN__
+#endif // FLT_TRUE_MIN
+
+#ifndef DBL_TRUE_MIN
+#define DBL_TRUE_MIN __DBL_TRUE_MIN__
+#endif // DBL_TRUE_MIN
+
+#ifndef LDBL_TRUE_MIN
+#define LDBL_TRUE_MIN __LDBL_TRUE_MIN__
+#endif // LDBL_TRUE_MIN
+
+#ifndef FLT_EPSILON
+#define FLT_EPSILON __FLT_EPSILON__
+#endif // FLT_EPSILON
+
+#ifndef DBL_EPSILON
+#define DBL_EPSILON __DBL_EPSILON__
+#endif // DBL_EPSILON
+
+#ifndef LDBL_EPSILON
+#define LDBL_EPSILON __LDBL_EPSILON__
+#endif // LDBL_EPSILON
+
+#ifndef FLT_MIN_EXP
+#define FLT_MIN_EXP __FLT_MIN_EXP__
+#endif // FLT_MIN_EXP
+
+#ifndef DBL_MIN_EXP
+#define DBL_MIN_EXP __DBL_MIN_EXP__
+#endif // DBL_MIN_EXP
+
+#ifndef LDBL_MIN_EXP
+#define LDBL_MIN_EXP __LDBL_MIN_EXP__
+#endif // LDBL_MIN_EXP
+
+#ifndef FLT_MIN_10_EXP
+#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
+#endif // FLT_MIN_10_EXP
+
+#ifndef DBL_MIN_10_EXP
+#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
+#endif // DBL_MIN_10_EXP
+
+#ifndef LDBL_MIN_10_EXP
+#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
+#endif // LDBL_MIN_10_EXP
+
+#ifndef FLT_MAX_EXP
+#define FLT_MAX_EXP __FLT_MAX_EXP__
+#endif // FLT_MAX_EXP
+
+#ifndef DBL_MAX_EXP
+#define DBL_MAX_EXP __DBL_MAX_EXP__
+#endif // DBL_MAX_EXP
+
+#ifndef LDBL_MAX_EXP
+#define LDBL_MAX_EXP __LDBL_MAX_EXP__
+#endif // LDBL_MAX_EXP
+
+#ifndef FLT_MAX_10_EXP
+#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
+#endif // FLT_MAX_10_EXP
+
+#ifndef DBL_MAX_10_EXP
+#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
+#endif // DBL_MAX_10_EXP
+
+#ifndef LDBL_MAX_10_EXP
+#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
+#endif // LDBL_MAX_10_EXP
+
+// TODO: Add FLT16 and FLT128 constants.
+
+#endif // LLVM_LIBC_FULL_BUILD
+
+#endif // LLVM_LIBC_HDR_FLOAT_MACROS_H
diff --git a/libc/include/llvm-libc-macros/float-macros.h b/libc/include/llvm-libc-macros/float-macros.h
index 4fe8590c5f70c8..0f15b909eb19ac 100644
--- a/libc/include/llvm-libc-macros/float-macros.h
+++ b/libc/include/llvm-libc-macros/float-macros.h
@@ -9,163 +9,206 @@
 #ifndef LLVM_LIBC_MACROS_FLOAT_MACROS_H
 #define LLVM_LIBC_MACROS_FLOAT_MACROS_H
 
-// Suppress `#include_next is a language extension` warnings.
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wgnu-include-next"
-#pragma clang diagnostic ignored "-Winclude-next-absolute-path"
-#else // gcc
-#pragma GCC system_header
-#endif //__clang__
-
-#include_next <float.h>
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif //__clang__
-
-#ifndef FLT_RADIX
+#ifdef __FLT_RADIX__
 #define FLT_RADIX __FLT_RADIX__
+#else 
+#define FLT_RADIX 2
 #endif // FLT_RADIX
 
-#ifndef FLT_EVAL_METHOD
+#ifdef FLT_EVAL_METHOD
 #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
 #endif // FLT_EVAL_METHOD
 
-#ifndef DECIMAL_DIG
+#ifdef DECIMAL_DIG
 #define DECIMAL_DIG __DECIMAL_DIG__
+#else 
+#define DECIMAL_DIG 10
 #endif // DECIMAL_DIG
 
-#ifndef FLT_DECIMAL_DIG
+#ifdef FLT_DECIMAL_DIG 
 #define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
+#else 
+#define FLT_DECIMAL_DIG 6
 #endif // FLT_DECIMAL_DIG
 
-#ifndef DBL_DECIMAL_DIG
+#ifdef DBL_DECIMAL_DIG
 #define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
+#else 
+#define DBL_DECIMAL_DIG 10
 #endif // DBL_DECIMAL_DIG
 
-#ifndef LDBL_DECIMAL_DIG
+#ifdef LDBL_DECIMAL_DIG
 #define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__
+#else 
+#define LDBL_DECIMAL_DIG 10
 #endif // LDBL_DECIMAL_DIG
 
-#ifndef FLT_DIG
+#ifdef FLT_DIG
 #define FLT_DIG __FLT_DIG__
+#else 
+#define FLT_DIG 6
 #endif // FLT_DIG
 
-#ifndef DBL_DIG
+#ifdef DBL_DIG
 #define DBL_DIG __DBL_DIG__
+#else 
+#define DBL_DIG 10
 #endif // DBL_DIG
 
-#ifndef LDBL_DIG
+#ifdef LDBL_DIG
 #define LDBL_DIG __LDBL_DIG__
+#else 
+#define LDBL_DIG 10
 #endif // LDBL_DIG
 
-#ifndef FLT_MANT_DIG
+#ifdef FLT_MANT_DIG
 #define FLT_MANT_DIG __FLT_MANT_DIG__
+#else 
+#define FLT_MANT_DIG 24
 #endif // FLT_MANT_DIG
 
-#ifndef DBL_MANT_DIG
+#ifdef DBL_MANT_DIG
 #define DBL_MANT_DIG __DBL_MANT_DIG__
+#else 
+#define DBL_MANT_DIG 53
 #endif // DBL_MANT_DIG
 
-#ifndef LDBL_MANT_DIG
+#ifdef LDBL_MANT_DIG
 #define LDBL_MANT_DIG __LDBL_MANT_DIG__
+#else 
+#define LDBL_MANT_DIG 113
 #endif // LDBL_MANT_DIG
 
-#ifndef FLT_MIN
+#ifdef FLT_MIN
 #define FLT_MIN __FLT_MIN__
+#else 
+#define FLT_MIN 1E-37
 #endif // FLT_MIN
 
-#ifndef DBL_MIN
+#ifdef DBL_MIN
 #define DBL_MIN __DBL_MIN__
+#else 
+#define DBL_MIN 1E-37
 #endif // DBL_MIN
 
-#ifndef LDBL_MIN
+#ifdef LDBL_MIN
 #define LDBL_MIN __LDBL_MIN__
+#else 
+#define LDBL_MIN 1E-37  
 #endif // LDBL_MIN
 
-#ifndef FLT_MAX
+#ifdef FLT_MAX
 #define FLT_MAX __FLT_MAX__
+#else 
+#define FLT_MAX 1E+37
 #endif // FLT_MAX
 
-#ifndef DBL_MAX
+#ifdef DBL_MAX
 #define DBL_MAX __DBL_MAX__
+#else 
+#define DBL_MAX 1E+37
 #endif // DBL_MAX
 
-#ifndef LDBL_MAX
+#ifdef LDBL_MAX
 #define LDBL_MAX __LDBL_MAX__
+#else 
+#define LDBL_MAX 1E+37
 #endif // LDBL_MAX
 
-#ifndef FLT_TRUE_MIN
-#define FLT_TRUE_MIN __FLT_TRUE_MIN__
-#endif // FLT_TRUE_MIN
-
-#ifndef DBL_TRUE_MIN
-#define DBL_TRUE_MIN __DBL_TRUE_MIN__
-#endif // DBL_TRUE_MIN
-
-#ifndef LDBL_TRUE_MIN
-#define LDBL_TRUE_MIN __LDBL_TRUE_MIN__
-#endif // LDBL_TRUE_MIN
-
-#ifndef FLT_EPSILON
+// #ifdef FLT_TRUE_MIN
+// #define FLT_TRUE_MIN __FLT_DNORM_MIN //acc to Clang's define [remove after review]
+// #else 
+// #define FLT_TRUE_MIN 1E-37
+// #endif // FLT_TRUE_MIN
+// 
+// #ifdef DBL_TRUE_MIN
+// #define DBL_TRUE_MIN __DBL_DENORM_MIN__ //acc to Clang's define [remove after review] 
+// #else 
+// #define DBL_TRUE_MIN 1E-37
+// #endif // DBL_TRUE_MIN
+// 
+// #ifdef LDBL_TRUE_MIN
+// #define LDBL_TRUE_MIN __LDBL_DENORM_MIN__ //acc to Clang's define [remove after review] 
+// #else 
+// #define LDBL_TRUE_MIN 1E-37  
+// #endif // LDBL_TRUE_MIN
+
+#ifdef FLT_EPSILON
 #define FLT_EPSILON __FLT_EPSILON__
+#else 
+#define FLT_EPSILON 1E-5 
 #endif // FLT_EPSILON
 
-#ifndef DBL_EPSILON
+#ifdef DBL_EPSILON
 #define DBL_EPSILON __DBL_EPSILON__
+#else 
+#define DBL_EPSILON 1E-9
 #endif // DBL_EPSILON
 
-#ifndef LDBL_EPSILON
+#ifdef LDBL_EPSILON
 #define LDBL_EPSILON __LDBL_EPSILON__
+#else 
+#define LDBL_EPSILON 1E-9
 #endif // LDBL_EPSILON
 
-#ifndef FLT_MIN_EXP
+#ifdef FLT_MIN_EXP
 #define FLT_MIN_EXP __FLT_MIN_EXP__
 #endif // FLT_MIN_EXP
 
-#ifndef DBL_MIN_EXP
+#ifdef DBL_MIN_EXP
 #define DBL_MIN_EXP __DBL_MIN_EXP__
 #endif // DBL_MIN_EXP
 
-#ifndef LDBL_MIN_EXP
+#ifdef LDBL_MIN_EXP
 #define LDBL_MIN_EXP __LDBL_MIN_EXP__
 #endif // LDBL_MIN_EXP
 
-#ifndef FLT_MIN_10_EXP
+#ifdef FLT_MIN_10_EXP
 #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
+#else 
+#define FLT_MIN_10_EXP -37
 #endif // FLT_MIN_10_EXP
 
-#ifndef DBL_MIN_10_EXP
+#ifdef DBL_MIN_10_EXP
 #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
+#else 
+#define DBL_MIN_10_EXP -37
 #endif // DBL_MIN_10_EXP
 
-#ifndef LDBL_MIN_10_EXP
+#ifdef LDBL_MIN_10_EXP
 #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
+#else 
+#define LDBL_MIN_10_EXP -37
 #endif // LDBL_MIN_10_EXP
 
-#ifndef FLT_MAX_EXP
+#ifdef FLT_MAX_EXP
 #define FLT_MAX_EXP __FLT_MAX_EXP__
 #endif // FLT_MAX_EXP
 
-#ifndef DBL_MAX_EXP
+#ifdef DBL_MAX_EXP
 #define DBL_MAX_EXP __DBL_MAX_EXP__
 #endif // DBL_MAX_EXP
 
-#ifndef LDBL_MAX_EXP
+#ifdef LDBL_MAX_EXP
 #define LDBL_MAX_EXP __LDBL_MAX_EXP__
 #endif // LDBL_MAX_EXP
 
-#ifndef FLT_MAX_10_EXP
+#ifdef FLT_MAX_10_EXP
 #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
+#else 
+#define FLT_MAX_10_EXP +37
 #endif // FLT_MAX_10_EXP
 
-#ifndef DBL_MAX_10_EXP
+#ifdef DBL_MAX_10_EXP
 #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
+#else 
+#define DBL_MAX_10_EXP +37
 #endif // DBL_MAX_10_EXP
 
-#ifndef LDBL_MAX_10_EXP
+#ifdef LDBL_MAX_10_EXP
 #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
+#else 
+#define LDBL_MAX_10_EXP +37
 #endif // LDBL_MAX_10_EXP
 
 // TODO: Add FLT16 and FLT128 constants.
diff --git a/libc/src/__support/macros/properties/CMakeLists.txt b/libc/src/__support/macros/properties/CMakeLists.txt
index bbc45650f3fca3..7718aeaa3de5af 100644
--- a/libc/src/__support/macros/properties/CMakeLists.txt
+++ b/libc/src/__support/macros/properties/CMakeLists.txt
@@ -33,6 +33,6 @@ add_header_library(
     .compiler
     .cpu_features
     .os
-    libc.include.llvm-libc-macros.float_macros
+    libc.hdr.float_macros
     libc.include.llvm-libc-types.float128
 )
diff --git a/libc/src/__support/macros/properties/types.h b/libc/src/__support/macros/properties/types.h
index d43cf99e6859be..0e75af15849935 100644
--- a/libc/src/__support/macros/properties/types.h
+++ b/libc/src/__support/macros/properties/types.h
@@ -10,7 +10,7 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_MACROS_PROPERTIES_TYPES_H
 #define LLVM_LIBC_SRC___SUPPORT_MACROS_PROPERTIES_TYPES_H
 
-#include "include/llvm-libc-macros/float-macros.h" // LDBL_MANT_DIG
+#include "hdr/float_macros.h" // LDBL_MANT_DIG
 #include "include/llvm-libc-types/float128.h"      // float128
 #include "src/__support/macros/properties/architectures.h"
 #include "src/__support/macros/properties/compiler.h"
diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
index 9270a9d75b01c4..a1179133e4960b 100644
--- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
@@ -98,7 +98,7 @@ libc_support_library(
         "@platforms//os:linux": [],
         "//conditions:default": ["@platforms//:incompatible"],
     }),
-    deps = [":llvm_libc_macros_float_macros"],
+    deps = ["include/llvm-libc-macros/linux/float-macros.h"],
 )
 
 libc_support_library(
@@ -118,6 +118,11 @@ libc_support_library(
     hdrs = ["hdr/fenv_macros.h"],
 )
 
+libc_support_library(
+    name = "hdr_float_macros",
+    hdrs = ["hdr/float_macros.h"],
+)
+
 libc_support_library(
     name = "hdr_signal_macros",
     hdrs = ["hdr/signal_macros.h"],
@@ -170,7 +175,7 @@ libc_support_library(
         ":__support_macros_properties_compiler",
         ":__support_macros_properties_cpu_features",
         ":__support_macros_properties_os",
-        ":llvm_libc_macros_float_macros",
+        ":hdr_float_macros",
         ":llvm_libc_types_float128",
     ],
 )

@aniplcc aniplcc marked this pull request as draft April 15, 2024 02:00
Copy link

github-actions bot commented Apr 15, 2024

⚠️ C/C++ code formatter, clang-format found issues in your code. ⚠️

You can test this locally with the following command:
git-clang-format --diff 062f6fe324e98b0994e49bc14eb45b20aa0807c4 067413a29a25de60b96e29a88a7a231488d06438 -- libc/hdr/float_macros.h libc/include/llvm-libc-macros/float-macros.h libc/src/__support/macros/properties/types.h
View the diff from clang-format here.
diff --git a/libc/include/llvm-libc-macros/float-macros.h b/libc/include/llvm-libc-macros/float-macros.h
index 23a8bd8acf..521fa47001 100644
--- a/libc/include/llvm-libc-macros/float-macros.h
+++ b/libc/include/llvm-libc-macros/float-macros.h
@@ -19,14 +19,14 @@
 // #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
 // #endif // FLT_EVAL_METHOD
 // #define FLT_EVAL_METHOD 0
-//clarifiy
+// clarifiy
 
 #ifdef DECIMAL_DIG
 #define DECIMAL_DIG __DECIMAL_DIG__
 #else
 #define DECIMAL_DIG 10
 #endif // DECIMAL_DIG
-//clarify
+// clarify
 
 #ifdef FLT_DECIMAL_DIG
 #define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
@@ -45,7 +45,7 @@
 #else
 #define LDBL_DECIMAL_DIG 10
 #endif // LDBL_DECIMAL_DIG
-//clarify
+// clarify
 
 #ifdef FLT_DIG
 #define FLT_DIG __FLT_DIG__
@@ -64,7 +64,7 @@
 #else
 #define LDBL_DIG 10
 #endif // LDBL_DIG
-//clarify
+// clarify
 
 #ifdef FLT_MANT_DIG
 #define FLT_MANT_DIG __FLT_MANT_DIG__
@@ -83,7 +83,7 @@
 #else
 #define LDBL_MANT_DIG 113
 #endif // LDBL_MANT_DIG
-//clarify
+// clarify
 
 #ifdef FLT_MIN
 #define FLT_MIN __FLT_MIN__
@@ -102,7 +102,7 @@
 #else
 #define LDBL_MIN 1E-37
 #endif // LDBL_MIN
-//clarify
+// clarify
 
 #ifdef FLT_MAX
 #define FLT_MAX __FLT_MAX__
@@ -121,26 +121,26 @@
 #else
 #define LDBL_MAX 1E+37
 #endif // LDBL_MAX
-//clarify
+// clarify
 
 #ifdef FLT_TRUE_MIN
-#define FLT_TRUE_MIN __FLT_DNORM_MIN 
-#else 
-#define FLT_TRUE_MIN 1.40129846432481707092372958328991613e-45F 
+#define FLT_TRUE_MIN __FLT_DNORM_MIN
+#else
+#define FLT_TRUE_MIN 1.40129846432481707092372958328991613e-45F
 #endif // FLT_TRUE_MIN
 
 #ifdef DBL_TRUE_MIN
-#define DBL_TRUE_MIN __DBL_DENORM_MIN__ 
-#else 
-#define DBL_TRUE_MIN 4.94065645841246544176568792868221372e-324L 
+#define DBL_TRUE_MIN __DBL_DENORM_MIN__
+#else
+#define DBL_TRUE_MIN 4.94065645841246544176568792868221372e-324L
 #endif // DBL_TRUE_MIN
 
 #ifdef LDBL_TRUE_MIN
-#define LDBL_TRUE_MIN __LDBL_DENORM_MIN__ 
-#else 
-#define LDBL_TRUE_MIN 1E-37 
+#define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
+#else
+#define LDBL_TRUE_MIN 1E-37
 #endif // LDBL_TRUE_MIN
-//clarify
+// clarify
 
 #ifdef FLT_EPSILON
 #define FLT_EPSILON __FLT_EPSILON__
@@ -151,7 +151,7 @@
 #ifdef DBL_EPSILON
 #define DBL_EPSILON __DBL_EPSILON__
 #else
-#define DBL_EPSILON 2.22044604925031308084726333618164062e-16L 
+#define DBL_EPSILON 2.22044604925031308084726333618164062e-16L
 #endif // DBL_EPSILON
 
 #ifdef LDBL_EPSILON
@@ -159,11 +159,11 @@
 #else
 #define LDBL_EPSILON 1E-9
 #endif // LDBL_EPSILON
-//clarify
+// clarify
 
 #ifdef FLT_MIN_EXP
 #define FLT_MIN_EXP __FLT_MIN_EXP__
-#else 
+#else
 #define FLT_MIN_EXP (-125)
 #endif // FLT_MIN_EXP
 
@@ -176,7 +176,7 @@
 #ifdef LDBL_MIN_EXP
 #define LDBL_MIN_EXP __LDBL_MIN_EXP__
 #endif // LDBL_MIN_EXP
-//clarify
+// clarify
 
 #ifdef FLT_MIN_10_EXP
 #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
@@ -195,7 +195,7 @@
 #else
 #define LDBL_MIN_10_EXP -37
 #endif // LDBL_MIN_10_EXP
-//clarify
+// clarify
 
 #ifdef FLT_MAX_EXP
 #define FLT_MAX_EXP __FLT_MAX_EXP__
@@ -212,7 +212,7 @@
 #ifdef LDBL_MAX_EXP
 #define LDBL_MAX_EXP __LDBL_MAX_EXP__
 #endif // LDBL_MAX_EXP
-//clarify
+// clarify
 
 #ifdef FLT_MAX_10_EXP
 #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
@@ -232,7 +232,8 @@
 #define LDBL_MAX_10_EXP +37
 #endif // LDBL_MAX_10_EXP
 
-#if defined(LIBC_TARGET_ARCH_IS_RISCV64) || defined(LIBC_TARGET_ARCH_IS_ANY_RISCV)
+#if defined(LIBC_TARGET_ARCH_IS_RISCV64) ||                                    \
+    defined(LIBC_TARGET_ARCH_IS_ANY_RISCV)
 
 #endif
 
diff --git a/libc/src/__support/macros/properties/types.h b/libc/src/__support/macros/properties/types.h
index 0e75af1584..781cf1b7a2 100644
--- a/libc/src/__support/macros/properties/types.h
+++ b/libc/src/__support/macros/properties/types.h
@@ -10,7 +10,7 @@
 #ifndef LLVM_LIBC_SRC___SUPPORT_MACROS_PROPERTIES_TYPES_H
 #define LLVM_LIBC_SRC___SUPPORT_MACROS_PROPERTIES_TYPES_H
 
-#include "hdr/float_macros.h" // LDBL_MANT_DIG
+#include "hdr/float_macros.h"                      // LDBL_MANT_DIG
 #include "include/llvm-libc-types/float128.h"      // float128
 #include "src/__support/macros/properties/architectures.h"
 #include "src/__support/macros/properties/compiler.h"

@nickdesaulniers
Copy link
Member

@aniplcc I see this PR is currently marked as a draft. Please unmark it by clicking "Ready for review" when you're ready for us to take a look.

@aniplcc aniplcc force-pushed the floatproxy branch 2 times, most recently from 3d51478 to b8660db Compare April 23, 2024 06:56
@lntue
Copy link
Contributor

lntue commented Apr 29, 2024

@aniplcc Sorry I just got back from vacation. Do you mind syncing the PR to the current HEAD? Thanks,

#endif // FLT_RADIX

#ifndef FLT_EVAL_METHOD
#ifdef FLT_EVAL_METHOD
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be #ifdef __FLT_EVAL_METHOD__. Update similar checks in this file.

#define FLT_MIN __FLT_MIN__
#else
#define FLT_MIN 1E-37
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use hexadecimal constants instead: #define FLT_MIN 0x1.0p-126f

#define DBL_MIN __DBL_MIN__
#else
#define DBL_MIN 1E-37
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0x1.0p-1022

#define LDBL_MIN __LDBL_MIN__
#else
#define LDBL_MIN 1E-37
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This value will depend on CPU architecture + OS.

@aniplcc
Copy link
Contributor Author

aniplcc commented May 6, 2024

apologies for the delay, busy with finals atm. Will update arch dependent ldbl constants soon.

@nickdesaulniers
Copy link
Member

apologies for the delay, busy with finals atm. Will update arch dependent ldbl constants soon.

No problem; good luck! Please mark this PR as "Ready for review" when you'd like for us to take another look at it.

lntue added a commit that referenced this pull request May 28, 2024
This is the continuation of
#88674.

Fixes #88433, #90496.

---------

Co-authored-by: aniplcc <aniplccode@gmail.com>
vg0204 pushed a commit to vg0204/llvm-project that referenced this pull request May 29, 2024
This is the continuation of
llvm#88674.

Fixes llvm#88433, llvm#90496.

---------

Co-authored-by: aniplcc <aniplccode@gmail.com>
@aniplcc aniplcc closed this Oct 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bazel "Peripheral" support tier build system: utils/bazel libc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[libc] Add proxy header hdr/float-macros.h
4 participants