[all-commits] [llvm/llvm-project] 2b9490: Implement operand bundles for floating-point opera...
Serge Pavlov via All-commits
all-commits at lists.llvm.org
Mon Feb 17 06:32:56 PST 2025
Branch: refs/heads/users/spavloff/floating-point-operator-bundles
Home: https://github.com/llvm/llvm-project
Commit: 2b9490337528ffbbf9b7a5ad1bcbc304af10b545
https://github.com/llvm/llvm-project/commit/2b9490337528ffbbf9b7a5ad1bcbc304af10b545
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M clang/test/CodeGen/X86/strictfp_builtins.c
M clang/test/CodeGen/strictfp_builtins.c
M clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
M llvm/docs/LangRef.rst
M llvm/include/llvm/ADT/FloatingPointMode.h
M llvm/include/llvm/IR/AutoUpgrade.h
M llvm/include/llvm/IR/FPEnv.h
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/InstrTypes.h
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/LLVMContext.h
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/IR/LLVMContext.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/test/Bitcode/operand-bundles-bc-analyzer.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pown.ll
Log Message:
-----------
Implement operand bundles for floating-point operations
Currently floating-point operations in general form (beyond the default
mode) are always represented by calls to constrained intrinsics. In
addition to the side effect, they carry additional information in the
form of metadata arguments. This scheme is not efficient in the case of
intrinsic function calls, as was noted in
https://discourse.llvm.org/t/thought-on-strictfp-support/71453, because
it requires defining a separate intrinsic for the same operation but
used in non-default FP environment. The solution proposed in the
discussion was "to move the complexity about the environment tracking
from the intrinsics themselves to the call instruction".
The way implemented in this change is to use operand bundles
(https://llvm.org/docs/LangRef.html#operand-bundles). This way was tried
previously (https://reviews.llvm.org/D93455), but was not finished.
This change does not add any new functionality, it only adds the new way
of keeping FP related information in LLVM IR. Metadata arguments of
constrained functions are preserved, but they are not used in the
queries like `getRoundingMode` or `getExceptionBehavior`.
Commit: 359a02252c44c3bda5897aca218ed874cc0fac1c
https://github.com/llvm/llvm-project/commit/359a02252c44c3bda5897aca218ed874cc0fac1c
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M clang/test/CodeGen/strictfp_builtins.c
M clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
M llvm/docs/LangRef.rst
M llvm/include/llvm/ADT/FloatingPointMode.h
M llvm/include/llvm/AsmParser/LLParser.h
M llvm/include/llvm/IR/FPEnv.h
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/InstrTypes.h
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/LLVMContext.h
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/FPEnv.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/IR/LLVMContext.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
A llvm/test/Bitcode/auto-upgrade-constrained.ll
A llvm/test/Bitcode/auto-upgrade-constrained.ll.bc
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pown.ll
M llvm/test/Transforms/Attributor/nofpclass.ll
M llvm/test/Transforms/Inline/inline-strictfp.ll
M llvm/test/Verifier/fp-intrinsics.ll
Log Message:
-----------
Use metadata for bundle values
Commit: c376e8d34d4bc2efd173446a61ff380a71f09d6e
https://github.com/llvm/llvm-project/commit/c376e8d34d4bc2efd173446a61ff380a71f09d6e
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M llvm/test/Transforms/EarlyCSE/defaultfp-strictfp.ll
M llvm/test/Transforms/EarlyCSE/ebstrict-strictfp.ll
M llvm/test/Transforms/EarlyCSE/mixed-strictfp.ll
M llvm/test/Transforms/EarlyCSE/nonmixed-strictfp.ll
M llvm/test/Transforms/EarlyCSE/round-dyn-strictfp.ll
M llvm/test/Transforms/EarlyCSE/tfpropagation.ll
Log Message:
-----------
Update tests in Transforms/EarlyCSE
Commit: 4989e7b8a4e6f90e6764ed6974769c37546044b8
https://github.com/llvm/llvm-project/commit/4989e7b8a4e6f90e6764ed6974769c37546044b8
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/AutoUpgrade.h
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
Log Message:
-----------
Small changes: docs, clang-format, revievers' notes
- Fix Doxygen error,
- Fix clang-format error,
- remove unused function declaration,
- remove setting MD_fpmath, it is made by copyMetadata.
Commit: 4f219ea2362721d487b2fb33ded3fb04a3cfa12d
https://github.com/llvm/llvm-project/commit/4f219ea2362721d487b2fb33ded3fb04a3cfa12d
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M llvm/include/llvm/IR/InstrTypes.h
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/LLVMContext.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
M llvm/test/Verifier/fp-intrinsics.ll
Log Message:
-----------
Small fixes
- Add method `hasFloatingPointBundles` to simplify checks,
- Update comments in `TailRecursionElimination.cpp`,
- Updated messages in Verifier,
- Add Verifier tests.
- Rebame remained cases of 'fpe.round' for 'fpe.control'
Commit: cbce2a1fc11864e597f80edfa6311fc5b8f8d337
https://github.com/llvm/llvm-project/commit/cbce2a1fc11864e597f80edfa6311fc5b8f8d337
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/InstrTypes.h
M llvm/lib/IR/Instructions.cpp
Log Message:
-----------
Calculate MemoryEffect
Commit: 8835d69e32be709c2410788d98b4ce066d8c0b51
https://github.com/llvm/llvm-project/commit/8835d69e32be709c2410788d98b4ce066d8c0b51
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M clang/test/CodeGen/SystemZ/strictfp_builtins.c
M clang/test/CodeGen/X86/strictfp_builtins.c
M clang/test/CodeGen/cx-complex-range.c
M clang/test/CodeGen/isfpclass.c
M clang/test/CodeGen/strictfp-elementwise-bulitins.cpp
M clang/test/CodeGen/strictfp_builtins.c
M clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
M llvm/lib/IR/IRBuilder.cpp
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pown.ll
M llvm/test/CodeGen/AMDGPU/global_atomic_optimizer_fp_rtn.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_optimizer_fp_no_rtn.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-rmw-fadd.ll
M llvm/test/Transforms/HardwareLoops/scalar-while-strictfp.ll
Log Message:
-----------
Don't set strictfp on irrelevant calls
Commit: ea5b37e4fc61a65992ca0a917b63f5339bf0dcda
https://github.com/llvm/llvm-project/commit/ea5b37e4fc61a65992ca0a917b63f5339bf0dcda
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M clang/test/CodeGen/SystemZ/strictfp_builtins.c
M clang/test/CodeGen/X86/strictfp_builtins.c
M clang/test/CodeGen/cx-complex-range.c
M clang/test/CodeGen/isfpclass.c
M clang/test/CodeGen/strictfp-elementwise-bulitins.cpp
M clang/test/CodeGen/strictfp_builtins.c
M clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
M llvm/lib/IR/IRBuilder.cpp
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pown.ll
M llvm/test/CodeGen/AMDGPU/global_atomic_optimizer_fp_rtn.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_optimizer_fp_no_rtn.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-rmw-fadd.ll
M llvm/test/Transforms/HardwareLoops/scalar-while-strictfp.ll
Log Message:
-----------
Revert "Don't set strictfp on irrelevant calls"
This change was discussed in
https://github.com/llvm/llvm-project/pull/122735. As it was decided,
current usage of strictfp on call sites remains intact.
Commit: 36dc54bccb399f8d4d1903e470f4319f0006c004
https://github.com/llvm/llvm-project/commit/36dc54bccb399f8d4d1903e470f4319f0006c004
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
Change documentation
Commit: c41809efddd25b005325fc603456baae23f44024
https://github.com/llvm/llvm-project/commit/c41809efddd25b005325fc603456baae23f44024
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M clang/test/CodeGen/cx-complex-range.c
M clang/test/CodeGen/strictfp-elementwise-bulitins.cpp
M clang/test/CodeGen/strictfp_builtins.c
M clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/InstrTypes.h
M llvm/include/llvm/Support/ModRef.h
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pown.ll
M llvm/test/CodeGen/AMDGPU/global_atomic_optimizer_fp_rtn.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_optimizer_fp_no_rtn.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-rmw-fadd.ll
M llvm/unittests/IR/IRBuilderTest.cpp
Log Message:
-----------
Do not use strictfp call attribute as indicator of FPE awareness
Commit: ac4271a3295330772597ead97b50bed165f55a59
https://github.com/llvm/llvm-project/commit/ac4271a3295330772597ead97b50bed165f55a59
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M clang/test/CodeGen/strictfp_builtins.c
M clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/LLVMContext.h
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/LLVMContext.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
M llvm/test/Bitcode/auto-upgrade-constrained.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pown.ll
M llvm/test/CodeGen/AMDGPU/global_atomic_optimizer_fp_rtn.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_optimizer_fp_no_rtn.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-rmw-fadd.ll
M llvm/test/Verifier/fp-intrinsics.ll
M llvm/unittests/IR/IRBuilderTest.cpp
Log Message:
-----------
Rename fpe.* to fp.*
Compare: https://github.com/llvm/llvm-project/compare/868660b970ac...ac4271a32953
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