[all-commits] [llvm/llvm-project] 1f9953: [clang] Make -fveclib={ArmPL, SLEEF} imply -fno-mat...
Benjamin Maxwell via All-commits
all-commits at lists.llvm.org
Wed Oct 23 06:17:01 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 1f9953c055d4bf57935a43ea28a73e5fcda7cd96
https://github.com/llvm/llvm-project/commit/1f9953c055d4bf57935a43ea28a73e5fcda7cd96
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2024-10-23 (Wed, 23 Oct 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/autocomplete.c
M clang/test/Driver/fveclib.c
Log Message:
-----------
[clang] Make -fveclib={ArmPL,SLEEF} imply -fno-math-errno (#112580)
These two veclibs are only available for AArch64 targets, and as
mentioned in https://discourse.llvm.org/t/rfc-should-fveclib-imply-fno-math-errno-for-all-targets/81384,
we (Arm) think that `-fveclib` should imply `-fno-math-errno`. By
setting `-fveclib` the user shows they intend to use the vector math
functions, which implies they don't care about errno. However,
currently, the vector mappings won't be used in many cases without
setting `-fno-math-errno` separately.
Making this change would also help resolve some inconsistencies in how
vector mappings are applied (see https://github.com/llvm/llvm-project/pull/108980#discussion_r1766555560).
Note: Both SLEEF and ArmPL state that they do not set `errno`:
- https://developer.arm.com/documentation/101004/2410/General-information/Arm-Performance-Libraries-math-functions
* "The vector functions in libamath which are available on Linux may not set errno nor raise exceptions"
- https://sleef.org/2-references/libm/
* "These functions do not set errno nor raise an exception."
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