[all-commits] [llvm/llvm-project] d29261: [libc] Clean up GPU math implementations (#83133)

Joseph Huber via All-commits all-commits at lists.llvm.org
Tue Feb 27 09:39:26 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d29261074cd18383f4d3c84e740c66de738cb61f
      https://github.com/llvm/llvm-project/commit/d29261074cd18383f4d3c84e740c66de738cb61f
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-02-27 (Tue, 27 Feb 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCObjectRules.cmake
    M libc/src/math/CMakeLists.txt
    A libc/src/math/amdgpu/CMakeLists.txt
    A libc/src/math/amdgpu/acos.cpp
    A libc/src/math/amdgpu/acosf.cpp
    A libc/src/math/amdgpu/acosh.cpp
    A libc/src/math/amdgpu/acoshf.cpp
    A libc/src/math/amdgpu/asin.cpp
    A libc/src/math/amdgpu/asinf.cpp
    A libc/src/math/amdgpu/asinh.cpp
    A libc/src/math/amdgpu/asinhf.cpp
    A libc/src/math/amdgpu/atan.cpp
    A libc/src/math/amdgpu/atan2.cpp
    A libc/src/math/amdgpu/atan2f.cpp
    A libc/src/math/amdgpu/atanf.cpp
    A libc/src/math/amdgpu/atanh.cpp
    A libc/src/math/amdgpu/atanhf.cpp
    A libc/src/math/amdgpu/ceil.cpp
    A libc/src/math/amdgpu/ceilf.cpp
    A libc/src/math/amdgpu/copysign.cpp
    A libc/src/math/amdgpu/copysignf.cpp
    A libc/src/math/amdgpu/cos.cpp
    A libc/src/math/amdgpu/cosf.cpp
    A libc/src/math/amdgpu/cosh.cpp
    A libc/src/math/amdgpu/coshf.cpp
    A libc/src/math/amdgpu/declarations.h
    A libc/src/math/amdgpu/erf.cpp
    A libc/src/math/amdgpu/erff.cpp
    A libc/src/math/amdgpu/exp.cpp
    A libc/src/math/amdgpu/exp10.cpp
    A libc/src/math/amdgpu/exp10f.cpp
    A libc/src/math/amdgpu/exp2.cpp
    A libc/src/math/amdgpu/exp2f.cpp
    A libc/src/math/amdgpu/expf.cpp
    A libc/src/math/amdgpu/expm1.cpp
    A libc/src/math/amdgpu/expm1f.cpp
    A libc/src/math/amdgpu/fabs.cpp
    A libc/src/math/amdgpu/fabsf.cpp
    A libc/src/math/amdgpu/fdim.cpp
    A libc/src/math/amdgpu/fdimf.cpp
    A libc/src/math/amdgpu/floor.cpp
    A libc/src/math/amdgpu/floorf.cpp
    A libc/src/math/amdgpu/fma.cpp
    A libc/src/math/amdgpu/fmaf.cpp
    A libc/src/math/amdgpu/fmax.cpp
    A libc/src/math/amdgpu/fmaxf.cpp
    A libc/src/math/amdgpu/fmin.cpp
    A libc/src/math/amdgpu/fminf.cpp
    A libc/src/math/amdgpu/fmod.cpp
    A libc/src/math/amdgpu/fmodf.cpp
    A libc/src/math/amdgpu/frexp.cpp
    A libc/src/math/amdgpu/frexpf.cpp
    A libc/src/math/amdgpu/hypot.cpp
    A libc/src/math/amdgpu/hypotf.cpp
    A libc/src/math/amdgpu/ilogb.cpp
    A libc/src/math/amdgpu/ilogbf.cpp
    A libc/src/math/amdgpu/ldexp.cpp
    A libc/src/math/amdgpu/ldexpf.cpp
    A libc/src/math/amdgpu/llrint.cpp
    A libc/src/math/amdgpu/llrintf.cpp
    A libc/src/math/amdgpu/llround.cpp
    A libc/src/math/amdgpu/llroundf.cpp
    A libc/src/math/amdgpu/log.cpp
    A libc/src/math/amdgpu/log10.cpp
    A libc/src/math/amdgpu/log10f.cpp
    A libc/src/math/amdgpu/log1p.cpp
    A libc/src/math/amdgpu/log1pf.cpp
    A libc/src/math/amdgpu/log2.cpp
    A libc/src/math/amdgpu/log2f.cpp
    A libc/src/math/amdgpu/logb.cpp
    A libc/src/math/amdgpu/logbf.cpp
    A libc/src/math/amdgpu/logf.cpp
    A libc/src/math/amdgpu/lrint.cpp
    A libc/src/math/amdgpu/lrintf.cpp
    A libc/src/math/amdgpu/lround.cpp
    A libc/src/math/amdgpu/lroundf.cpp
    A libc/src/math/amdgpu/modf.cpp
    A libc/src/math/amdgpu/modff.cpp
    A libc/src/math/amdgpu/nearbyint.cpp
    A libc/src/math/amdgpu/nearbyintf.cpp
    A libc/src/math/amdgpu/nextafter.cpp
    A libc/src/math/amdgpu/nextafterf.cpp
    A libc/src/math/amdgpu/platform.h
    A libc/src/math/amdgpu/pow.cpp
    A libc/src/math/amdgpu/powf.cpp
    A libc/src/math/amdgpu/remainder.cpp
    A libc/src/math/amdgpu/remainderf.cpp
    A libc/src/math/amdgpu/remquo.cpp
    A libc/src/math/amdgpu/remquof.cpp
    A libc/src/math/amdgpu/rint.cpp
    A libc/src/math/amdgpu/rintf.cpp
    A libc/src/math/amdgpu/round.cpp
    A libc/src/math/amdgpu/roundf.cpp
    A libc/src/math/amdgpu/scalbn.cpp
    A libc/src/math/amdgpu/scalbnf.cpp
    A libc/src/math/amdgpu/sin.cpp
    A libc/src/math/amdgpu/sincos.cpp
    A libc/src/math/amdgpu/sincosf.cpp
    A libc/src/math/amdgpu/sinf.cpp
    A libc/src/math/amdgpu/sinh.cpp
    A libc/src/math/amdgpu/sinhf.cpp
    A libc/src/math/amdgpu/sqrt.cpp
    A libc/src/math/amdgpu/sqrtf.cpp
    A libc/src/math/amdgpu/tan.cpp
    A libc/src/math/amdgpu/tanf.cpp
    A libc/src/math/amdgpu/tanh.cpp
    A libc/src/math/amdgpu/tanhf.cpp
    A libc/src/math/amdgpu/tgamma.cpp
    A libc/src/math/amdgpu/tgammaf.cpp
    A libc/src/math/amdgpu/trunc.cpp
    A libc/src/math/amdgpu/truncf.cpp
    R libc/src/math/gpu/CMakeLists.txt
    R libc/src/math/gpu/ceil.cpp
    R libc/src/math/gpu/ceilf.cpp
    R libc/src/math/gpu/copysign.cpp
    R libc/src/math/gpu/copysignf.cpp
    R libc/src/math/gpu/fabs.cpp
    R libc/src/math/gpu/fabsf.cpp
    R libc/src/math/gpu/floor.cpp
    R libc/src/math/gpu/floorf.cpp
    R libc/src/math/gpu/fma.cpp
    R libc/src/math/gpu/fmaf.cpp
    R libc/src/math/gpu/fmax.cpp
    R libc/src/math/gpu/fmaxf.cpp
    R libc/src/math/gpu/fmin.cpp
    R libc/src/math/gpu/fminf.cpp
    R libc/src/math/gpu/fmod.cpp
    R libc/src/math/gpu/fmodf.cpp
    R libc/src/math/gpu/llround.cpp
    R libc/src/math/gpu/llroundf.cpp
    R libc/src/math/gpu/lround.cpp
    R libc/src/math/gpu/lroundf.cpp
    R libc/src/math/gpu/modf.cpp
    R libc/src/math/gpu/modff.cpp
    R libc/src/math/gpu/nearbyint.cpp
    R libc/src/math/gpu/nearbyintf.cpp
    R libc/src/math/gpu/remainder.cpp
    R libc/src/math/gpu/remainderf.cpp
    R libc/src/math/gpu/rint.cpp
    R libc/src/math/gpu/rintf.cpp
    R libc/src/math/gpu/round.cpp
    R libc/src/math/gpu/roundf.cpp
    R libc/src/math/gpu/sinh.cpp
    R libc/src/math/gpu/sqrt.cpp
    R libc/src/math/gpu/sqrtf.cpp
    R libc/src/math/gpu/tan.cpp
    R libc/src/math/gpu/tanh.cpp
    R libc/src/math/gpu/trunc.cpp
    R libc/src/math/gpu/truncf.cpp
    R libc/src/math/gpu/vendor/CMakeLists.txt
    R libc/src/math/gpu/vendor/acos.cpp
    R libc/src/math/gpu/vendor/acosf.cpp
    R libc/src/math/gpu/vendor/acosh.cpp
    R libc/src/math/gpu/vendor/acoshf.cpp
    R libc/src/math/gpu/vendor/amdgpu/amdgpu.h
    R libc/src/math/gpu/vendor/amdgpu/declarations.h
    R libc/src/math/gpu/vendor/amdgpu/platform.h
    R libc/src/math/gpu/vendor/asin.cpp
    R libc/src/math/gpu/vendor/asinf.cpp
    R libc/src/math/gpu/vendor/asinh.cpp
    R libc/src/math/gpu/vendor/asinhf.cpp
    R libc/src/math/gpu/vendor/atan.cpp
    R libc/src/math/gpu/vendor/atan2.cpp
    R libc/src/math/gpu/vendor/atan2f.cpp
    R libc/src/math/gpu/vendor/atanf.cpp
    R libc/src/math/gpu/vendor/atanh.cpp
    R libc/src/math/gpu/vendor/atanhf.cpp
    R libc/src/math/gpu/vendor/common.h
    R libc/src/math/gpu/vendor/cos.cpp
    R libc/src/math/gpu/vendor/cosf.cpp
    R libc/src/math/gpu/vendor/cosh.cpp
    R libc/src/math/gpu/vendor/coshf.cpp
    R libc/src/math/gpu/vendor/erf.cpp
    R libc/src/math/gpu/vendor/erff.cpp
    R libc/src/math/gpu/vendor/exp.cpp
    R libc/src/math/gpu/vendor/exp10.cpp
    R libc/src/math/gpu/vendor/exp10f.cpp
    R libc/src/math/gpu/vendor/exp2.cpp
    R libc/src/math/gpu/vendor/exp2f.cpp
    R libc/src/math/gpu/vendor/expf.cpp
    R libc/src/math/gpu/vendor/expm1.cpp
    R libc/src/math/gpu/vendor/expm1f.cpp
    R libc/src/math/gpu/vendor/fdim.cpp
    R libc/src/math/gpu/vendor/fdimf.cpp
    R libc/src/math/gpu/vendor/frexp.cpp
    R libc/src/math/gpu/vendor/frexpf.cpp
    R libc/src/math/gpu/vendor/hypot.cpp
    R libc/src/math/gpu/vendor/hypotf.cpp
    R libc/src/math/gpu/vendor/ilogb.cpp
    R libc/src/math/gpu/vendor/ilogbf.cpp
    R libc/src/math/gpu/vendor/ldexp.cpp
    R libc/src/math/gpu/vendor/ldexpf.cpp
    R libc/src/math/gpu/vendor/llrint.cpp
    R libc/src/math/gpu/vendor/llrintf.cpp
    R libc/src/math/gpu/vendor/log.cpp
    R libc/src/math/gpu/vendor/log10.cpp
    R libc/src/math/gpu/vendor/log10f.cpp
    R libc/src/math/gpu/vendor/log1p.cpp
    R libc/src/math/gpu/vendor/log1pf.cpp
    R libc/src/math/gpu/vendor/log2.cpp
    R libc/src/math/gpu/vendor/log2f.cpp
    R libc/src/math/gpu/vendor/logb.cpp
    R libc/src/math/gpu/vendor/logbf.cpp
    R libc/src/math/gpu/vendor/logf.cpp
    R libc/src/math/gpu/vendor/lrint.cpp
    R libc/src/math/gpu/vendor/lrintf.cpp
    R libc/src/math/gpu/vendor/nextafter.cpp
    R libc/src/math/gpu/vendor/nextafterf.cpp
    R libc/src/math/gpu/vendor/nvptx/declarations.h
    R libc/src/math/gpu/vendor/nvptx/nvptx.h
    R libc/src/math/gpu/vendor/pow.cpp
    R libc/src/math/gpu/vendor/powf.cpp
    R libc/src/math/gpu/vendor/remquo.cpp
    R libc/src/math/gpu/vendor/remquof.cpp
    R libc/src/math/gpu/vendor/scalbn.cpp
    R libc/src/math/gpu/vendor/scalbnf.cpp
    R libc/src/math/gpu/vendor/sin.cpp
    R libc/src/math/gpu/vendor/sincos.cpp
    R libc/src/math/gpu/vendor/sincosf.cpp
    R libc/src/math/gpu/vendor/sinf.cpp
    R libc/src/math/gpu/vendor/sinh.cpp
    R libc/src/math/gpu/vendor/sinhf.cpp
    R libc/src/math/gpu/vendor/tan.cpp
    R libc/src/math/gpu/vendor/tanf.cpp
    R libc/src/math/gpu/vendor/tanh.cpp
    R libc/src/math/gpu/vendor/tanhf.cpp
    R libc/src/math/gpu/vendor/tgamma.cpp
    R libc/src/math/gpu/vendor/tgammaf.cpp
    A libc/src/math/nvptx/CMakeLists.txt
    A libc/src/math/nvptx/acos.cpp
    A libc/src/math/nvptx/acosf.cpp
    A libc/src/math/nvptx/acosh.cpp
    A libc/src/math/nvptx/acoshf.cpp
    A libc/src/math/nvptx/asin.cpp
    A libc/src/math/nvptx/asinf.cpp
    A libc/src/math/nvptx/asinh.cpp
    A libc/src/math/nvptx/asinhf.cpp
    A libc/src/math/nvptx/atan.cpp
    A libc/src/math/nvptx/atan2.cpp
    A libc/src/math/nvptx/atan2f.cpp
    A libc/src/math/nvptx/atanf.cpp
    A libc/src/math/nvptx/atanh.cpp
    A libc/src/math/nvptx/atanhf.cpp
    A libc/src/math/nvptx/ceil.cpp
    A libc/src/math/nvptx/ceilf.cpp
    A libc/src/math/nvptx/copysign.cpp
    A libc/src/math/nvptx/copysignf.cpp
    A libc/src/math/nvptx/cos.cpp
    A libc/src/math/nvptx/cosf.cpp
    A libc/src/math/nvptx/cosh.cpp
    A libc/src/math/nvptx/coshf.cpp
    A libc/src/math/nvptx/declarations.h
    A libc/src/math/nvptx/erf.cpp
    A libc/src/math/nvptx/erff.cpp
    A libc/src/math/nvptx/exp.cpp
    A libc/src/math/nvptx/exp10.cpp
    A libc/src/math/nvptx/exp10f.cpp
    A libc/src/math/nvptx/exp2.cpp
    A libc/src/math/nvptx/exp2f.cpp
    A libc/src/math/nvptx/expf.cpp
    A libc/src/math/nvptx/expm1.cpp
    A libc/src/math/nvptx/expm1f.cpp
    A libc/src/math/nvptx/fabs.cpp
    A libc/src/math/nvptx/fabsf.cpp
    A libc/src/math/nvptx/fdim.cpp
    A libc/src/math/nvptx/fdimf.cpp
    A libc/src/math/nvptx/floor.cpp
    A libc/src/math/nvptx/floorf.cpp
    A libc/src/math/nvptx/fma.cpp
    A libc/src/math/nvptx/fmaf.cpp
    A libc/src/math/nvptx/fmax.cpp
    A libc/src/math/nvptx/fmaxf.cpp
    A libc/src/math/nvptx/fmin.cpp
    A libc/src/math/nvptx/fminf.cpp
    A libc/src/math/nvptx/fmod.cpp
    A libc/src/math/nvptx/fmodf.cpp
    A libc/src/math/nvptx/frexp.cpp
    A libc/src/math/nvptx/frexpf.cpp
    A libc/src/math/nvptx/hypot.cpp
    A libc/src/math/nvptx/hypotf.cpp
    A libc/src/math/nvptx/ilogb.cpp
    A libc/src/math/nvptx/ilogbf.cpp
    A libc/src/math/nvptx/ldexp.cpp
    A libc/src/math/nvptx/ldexpf.cpp
    A libc/src/math/nvptx/llrint.cpp
    A libc/src/math/nvptx/llrintf.cpp
    A libc/src/math/nvptx/llround.cpp
    A libc/src/math/nvptx/llroundf.cpp
    A libc/src/math/nvptx/log.cpp
    A libc/src/math/nvptx/log10.cpp
    A libc/src/math/nvptx/log10f.cpp
    A libc/src/math/nvptx/log1p.cpp
    A libc/src/math/nvptx/log1pf.cpp
    A libc/src/math/nvptx/log2.cpp
    A libc/src/math/nvptx/log2f.cpp
    A libc/src/math/nvptx/logb.cpp
    A libc/src/math/nvptx/logbf.cpp
    A libc/src/math/nvptx/logf.cpp
    A libc/src/math/nvptx/lrint.cpp
    A libc/src/math/nvptx/lrintf.cpp
    A libc/src/math/nvptx/lround.cpp
    A libc/src/math/nvptx/lroundf.cpp
    A libc/src/math/nvptx/modf.cpp
    A libc/src/math/nvptx/modff.cpp
    A libc/src/math/nvptx/nearbyint.cpp
    A libc/src/math/nvptx/nearbyintf.cpp
    A libc/src/math/nvptx/nextafter.cpp
    A libc/src/math/nvptx/nextafterf.cpp
    A libc/src/math/nvptx/nvptx.h
    A libc/src/math/nvptx/pow.cpp
    A libc/src/math/nvptx/powf.cpp
    A libc/src/math/nvptx/remainder.cpp
    A libc/src/math/nvptx/remainderf.cpp
    A libc/src/math/nvptx/remquo.cpp
    A libc/src/math/nvptx/remquof.cpp
    A libc/src/math/nvptx/rint.cpp
    A libc/src/math/nvptx/rintf.cpp
    A libc/src/math/nvptx/round.cpp
    A libc/src/math/nvptx/roundf.cpp
    A libc/src/math/nvptx/scalbn.cpp
    A libc/src/math/nvptx/scalbnf.cpp
    A libc/src/math/nvptx/sin.cpp
    A libc/src/math/nvptx/sincos.cpp
    A libc/src/math/nvptx/sincosf.cpp
    A libc/src/math/nvptx/sinf.cpp
    A libc/src/math/nvptx/sinh.cpp
    A libc/src/math/nvptx/sinhf.cpp
    A libc/src/math/nvptx/sqrt.cpp
    A libc/src/math/nvptx/sqrtf.cpp
    A libc/src/math/nvptx/tan.cpp
    A libc/src/math/nvptx/tanf.cpp
    A libc/src/math/nvptx/tanh.cpp
    A libc/src/math/nvptx/tanhf.cpp
    A libc/src/math/nvptx/tgamma.cpp
    A libc/src/math/nvptx/tgammaf.cpp
    A libc/src/math/nvptx/trunc.cpp
    A libc/src/math/nvptx/truncf.cpp

  Log Message:
  -----------
  [libc] Clean up GPU math implementations (#83133)

Summary:
The math directory likes to do architecture specific implementations of
these math functions. For the GPU case it was complicated by the fact
that both NVPTX and AMDGPU had to go through the same code paths. Since
reworking the GPU target this is no longer the case and we can simply
use the same scheme. This patch moves all the old code into two separate
directories. This likely results in a net increase in code, but it's
easier to reason with.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list