Skip to content

Clang + LLVM-libc Sharing Code for Floating Point Operations #114109

Open
@michaelrj-google

Description

@michaelrj-google
Contributor

Proposed name for this project: Hand-Eye Coordination

This is a tracking issue for the overall effort.

Summary: Clang needs support for math functions on APFloat for two main uses - compile time constant folding, and providing constexpr builtins for libc++. We can't just call the host platform's libc since it may not match the behavior of the libc on the target platform. Based on Project Hand-In-Hand we hope to be able to reuse code from LLVM-libc for this purpose.

Current TODOs (edit as needed):

  • Create an RFC for this project
    • Specify the utilities that clang needs, and explain how they're different from the standard libc interface
    • Explain the potential issues (e.g. runtime rounding modes, fast math)
    • Propose a design for how this will actually work
  • update this list once we have a design

cc: @AaronBallman @lntue @nickdesaulniers @vonosmas

Activity

llvmbot

llvmbot commented on Oct 29, 2024

@llvmbot
Member

@llvm/issue-subscribers-libc

Author: Michael Jones (michaelrj-google)

Proposed name for this project: Hand-Eye Coordination

This is a tracking issue for the overall effort.

Summary: Clang needs support for math functions on APFloat for two main uses - compile time constant folding, and providing constexpr builtins for libc++. We can't just call the host platform's libc since it may not match the behavior of the libc on the target platform. Based on Project Hand-In-Hand we hope to be able to reuse code from LLVM-libc for this purpose.

Current TODOs (edit as needed):

  • Create an RFC for this project
    • Specify the utilities that clang needs, and explain how they're different from the standard libc interface
    • Explain the potential issues (e.g. runtime rounding modes, fast math)
    • Propose a design for how this will actually work
  • update this list once we have a design

cc: @AaronBallman @lntue @nickdesaulniers @vonosmas

jcranmer-intel

jcranmer-intel commented on Oct 29, 2024

@jcranmer-intel
Contributor

Summary: Clang needs support for math functions on APFloat for two main uses - compile time constant folding, and providing constexpr builtins for libc++. We can't just call the host platform's libc since it may not match the behavior of the libc on the target platform. Based on Project Hand-In-Hand we hope to be able to reuse code from LLVM-libc for this purpose.

It's more than just clang; llvm should be able to rely on it too. APFloat itself is mostly owned by LLVM rather than Clang.

c8ef

c8ef commented on Oct 30, 2024

@c8ef
Contributor

Summary: Clang needs support for math functions on APFloat for two main uses - compile time constant folding, and providing constexpr builtins for libc++. We can't just call the host platform's libc since it may not match the behavior of the libc on the target platform. Based on Project Hand-In-Hand we hope to be able to reuse code from LLVM-libc for this purpose.

It's more than just clang; llvm should be able to rely on it too. APFloat itself is mostly owned by LLVM rather than Clang.

It would be great if constant folding libcall could utilize these utilities instead of directly calling the host libc and checking each libcall to ensure there is no under/overflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @jcranmer-intel@llvmbot@michaelrj-google@c8ef

        Issue actions

          Clang + LLVM-libc Sharing Code for Floating Point Operations · Issue #114109 · llvm/llvm-project