[libc-commits] [libc] [llvm] [libc] Clean up unused math_utils.(h|cpp). (PR #88036)
via libc-commits
libc-commits at lists.llvm.org
Mon Apr 8 13:20:44 PDT 2024
https://github.com/lntue created https://github.com/llvm/llvm-project/pull/88036
None
>From 40405adbfb4a5a4000bd8f252aa06bc71d7821fd Mon Sep 17 00:00:00 2001
From: Tue Ly <lntue.h at gmail.com>
Date: Mon, 8 Apr 2024 20:19:20 +0000
Subject: [PATCH] [libc] Clean up unused math_utils.(h|cpp).
---
.../__support/FPUtil/generic/CMakeLists.txt | 1 -
libc/src/__support/FPUtil/generic/FMod.h | 1 -
libc/src/math/generic/CMakeLists.txt | 14 ---
libc/src/math/generic/exp_utils.cpp | 1 -
libc/src/math/generic/explogxf.h | 1 -
libc/src/math/generic/math_utils.cpp | 21 ----
libc/src/math/generic/math_utils.h | 95 -------------------
.../llvm-project-overlay/libc/BUILD.bazel | 16 ----
8 files changed, 150 deletions(-)
delete mode 100644 libc/src/math/generic/math_utils.cpp
delete mode 100644 libc/src/math/generic/math_utils.h
diff --git a/libc/src/__support/FPUtil/generic/CMakeLists.txt b/libc/src/__support/FPUtil/generic/CMakeLists.txt
index 0ae62f40dc6163..17b1fffea82ec5 100644
--- a/libc/src/__support/FPUtil/generic/CMakeLists.txt
+++ b/libc/src/__support/FPUtil/generic/CMakeLists.txt
@@ -41,5 +41,4 @@ add_header_library(
libc.src.__support.FPUtil.fp_bits
libc.src.__support.FPUtil.rounding_mode
libc.src.__support.macros.optimization
- libc.src.math.generic.math_utils
)
diff --git a/libc/src/__support/FPUtil/generic/FMod.h b/libc/src/__support/FPUtil/generic/FMod.h
index 24fb264b779b73..211ab926d28b0e 100644
--- a/libc/src/__support/FPUtil/generic/FMod.h
+++ b/libc/src/__support/FPUtil/generic/FMod.h
@@ -15,7 +15,6 @@
#include "src/__support/FPUtil/FEnvImpl.h"
#include "src/__support/FPUtil/FPBits.h"
#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
-#include "src/math/generic/math_utils.h"
namespace LIBC_NAMESPACE {
namespace fputil {
diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt
index afbcdea3cf7abb..574e000b82a8fc 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -95,18 +95,6 @@ add_entrypoint_object(
libc.src.__support.FPUtil.nearest_integer_operations
)
-add_object_library(
- math_utils
- SRCS
- math_utils.cpp
- HDRS
- math_utils.h
- DEPENDS
- libc.hdr.math_macros
- libc.include.errno
- libc.src.errno.errno
-)
-
add_header_library(
range_reduction
HDRS
@@ -749,8 +737,6 @@ add_object_library(
exp_utils.h
SRCS
exp_utils.cpp
- DEPENDS
- .math_utils
)
add_entrypoint_object(
diff --git a/libc/src/math/generic/exp_utils.cpp b/libc/src/math/generic/exp_utils.cpp
index afdaea347478d4..ad13919578ec11 100644
--- a/libc/src/math/generic/exp_utils.cpp
+++ b/libc/src/math/generic/exp_utils.cpp
@@ -7,7 +7,6 @@
//===----------------------------------------------------------------------===//
#include "exp_utils.h"
-#include "math_utils.h"
namespace LIBC_NAMESPACE {
diff --git a/libc/src/math/generic/explogxf.h b/libc/src/math/generic/explogxf.h
index 8817ba1011a8ce..f7d04f517ce57d 100644
--- a/libc/src/math/generic/explogxf.h
+++ b/libc/src/math/generic/explogxf.h
@@ -10,7 +10,6 @@
#define LLVM_LIBC_SRC_MATH_GENERIC_EXPLOGXF_H
#include "common_constants.h"
-#include "math_utils.h"
#include "src/__support/CPP/bit.h"
#include "src/__support/CPP/optional.h"
#include "src/__support/FPUtil/FEnvImpl.h"
diff --git a/libc/src/math/generic/math_utils.cpp b/libc/src/math/generic/math_utils.cpp
deleted file mode 100644
index 14bbb2babc60a7..00000000000000
--- a/libc/src/math/generic/math_utils.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//===-- Implementation of math utils --------------------------------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-
-#include "math_utils.h"
-
-namespace LIBC_NAMESPACE {
-
-constexpr float XFlowValues<float>::OVERFLOW_VALUE = 0x1p97f;
-constexpr float XFlowValues<float>::UNDERFLOW_VALUE = 0x1p-95f;
-constexpr float XFlowValues<float>::MAY_UNDERFLOW_VALUE = 0x1.4p-75f;
-
-constexpr double XFlowValues<double>::OVERFLOW_VALUE = 0x1p769;
-constexpr double XFlowValues<double>::UNDERFLOW_VALUE = 0x1p-767;
-constexpr double XFlowValues<double>::MAY_UNDERFLOW_VALUE = 0x1.8p-538;
-
-} // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/math_utils.h b/libc/src/math/generic/math_utils.h
deleted file mode 100644
index 3ddfeccfd64837..00000000000000
--- a/libc/src/math/generic/math_utils.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//===-- Collection of utils for implementing math functions -----*- C++ -*-===//
-//
-// 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_SRC_MATH_GENERIC_MATH_UTILS_H
-#define LLVM_LIBC_SRC_MATH_GENERIC_MATH_UTILS_H
-
-#include "hdr/math_macros.h"
-#include "src/__support/CPP/bit.h"
-#include "src/__support/CPP/type_traits.h"
-#include "src/__support/common.h"
-#include "src/errno/libc_errno.h"
-
-#include <stdint.h>
-
-// TODO: evaluate which functions from this file are actually used.
-
-namespace LIBC_NAMESPACE {
-
-// TODO: Remove this, or move it to exp_utils.cpp which is its only user.
-LIBC_INLINE double as_double(uint64_t x) { return cpp::bit_cast<double>(x); }
-
-// Values to trigger underflow and overflow.
-template <typename T> struct XFlowValues;
-
-template <> struct XFlowValues<float> {
- static const float OVERFLOW_VALUE;
- static const float UNDERFLOW_VALUE;
- static const float MAY_UNDERFLOW_VALUE;
-};
-
-template <> struct XFlowValues<double> {
- static const double OVERFLOW_VALUE;
- static const double UNDERFLOW_VALUE;
- static const double MAY_UNDERFLOW_VALUE;
-};
-
-template <typename T> LIBC_INLINE T with_errno(T x, int err) {
- if (math_errhandling & MATH_ERRNO)
- libc_errno = err;
- return x;
-}
-
-template <typename T> LIBC_INLINE void force_eval(T x) {
- volatile T y LIBC_UNUSED = x;
-}
-
-template <typename T> LIBC_INLINE T opt_barrier(T x) {
- volatile T y = x;
- return y;
-}
-
-template <typename T> struct IsFloatOrDouble {
- static constexpr bool
- Value = // NOLINT so that this Value can match the ones for IsSame
- cpp::is_same_v<T, float> || cpp::is_same_v<T, double>;
-};
-
-template <typename T>
-using EnableIfFloatOrDouble = cpp::enable_if_t<IsFloatOrDouble<T>::Value, int>;
-
-template <typename T, EnableIfFloatOrDouble<T> = 0>
-T xflow(uint32_t sign, T y) {
- // Underflow happens when two extremely small values are multiplied.
- // Likewise, overflow happens when two large values are multiplied.
- y = opt_barrier(sign ? -y : y) * y;
- return with_errno(y, ERANGE);
-}
-
-template <typename T, EnableIfFloatOrDouble<T> = 0> T overflow(uint32_t sign) {
- return xflow(sign, XFlowValues<T>::OVERFLOW_VALUE);
-}
-
-template <typename T, EnableIfFloatOrDouble<T> = 0> T underflow(uint32_t sign) {
- return xflow(sign, XFlowValues<T>::UNDERFLOW_VALUE);
-}
-
-template <typename T, EnableIfFloatOrDouble<T> = 0>
-T may_underflow(uint32_t sign) {
- return xflow(sign, XFlowValues<T>::MAY_UNDERFLOW_VALUE);
-}
-
-template <typename T, EnableIfFloatOrDouble<T> = 0>
-LIBC_INLINE constexpr float invalid(T x) {
- T y = (x - x) / (x - x);
- return isnan(x) ? y : with_errno(y, EDOM);
-}
-
-} // namespace LIBC_NAMESPACE
-
-#endif // LLVM_LIBC_SRC_MATH_GENERIC_MATH_UTILS_H
diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
index fd5309e688c30e..e8d8320a42e982 100644
--- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
@@ -702,7 +702,6 @@ libc_support_library(
":__support_cpp_type_traits",
":__support_fputil_fenv_impl",
":__support_fputil_fp_bits",
- ":math_utils",
],
)
@@ -1243,19 +1242,6 @@ libc_function(
################################ math targets ################################
-libc_support_library(
- name = "math_utils",
- srcs = ["src/math/generic/math_utils.cpp"],
- hdrs = ["src/math/generic/math_utils.h"],
- deps = [
- "__support_cpp_bit",
- "__support_cpp_type_traits",
- ":__support_common",
- ":errno",
- ":hdr_math_macros",
- ],
-)
-
libc_support_library(
name = "common_constants",
srcs = ["src/math/generic/common_constants.cpp"],
@@ -1304,7 +1290,6 @@ libc_support_library(
":__support_fputil_nearest_integer",
":__support_fputil_polyeval",
":common_constants",
- ":math_utils",
],
)
@@ -1712,7 +1697,6 @@ libc_math_function(
":__support_fputil_rounding_mode",
":__support_macros_optimization",
":inv_trigf_utils",
- ":math_utils",
],
)
More information about the libc-commits
mailing list