[all-commits] [llvm/llvm-project] 070711: Class for checking floating-point properties
Serge Pavlov via All-commits
all-commits at lists.llvm.org
Mon Jun 22 09:43:01 PDT 2026
Branch: refs/heads/users/spavloff/fpopt
Home: https://github.com/llvm/llvm-project
Commit: 07071121f2740cb170d94828b83c76830f8d3339
https://github.com/llvm/llvm-project/commit/07071121f2740cb170d94828b83c76830f8d3339
Author: Serge Pavlov <sepavloff at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/InstSimplifyFolder.h
M llvm/include/llvm/Analysis/InstructionSimplify.h
M llvm/include/llvm/Analysis/TargetFolder.h
M llvm/include/llvm/IR/ConstantFolder.h
M llvm/include/llvm/IR/FMF.h
M llvm/include/llvm/IR/FPEnv.h
A llvm/include/llvm/IR/FPTransformChecker.h
M llvm/include/llvm/IR/IRBuilderFolder.h
M llvm/include/llvm/IR/NoFolder.h
M llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
M llvm/lib/Analysis/InlineCost.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/IR/CMakeLists.txt
A llvm/lib/IR/FPTransformChecker.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/InstCombine/fdim.ll
M llvm/test/Transforms/InstCombine/fma.ll
M llvm/test/Transforms/NewGVN/commute.ll
Log Message:
-----------
Class for checking floating-point properties
Applicability of a particular transformation to floating-point
expressions may depend on many parameters. Previously these parameters
were mainly represented by fast-math flags, and in some cases they were
supplemented by rounding mode and exception behavior, and all were
passed as separate arguments to the relevant functions. Implementing
more elaborated support of floating-point requires access to other
properties, including function attributes (such as denormal mode or sNaN
support). Passing these parameters as separate arguments is
inconvenient. To address this problem a special class that collects all
the necessary information is introduced in this commit.
The class is a wrapper over an integer value, where various bit fields
represent properties, that transformations may depend on. This allows
instances of the class to be passed by value. It incorporates fast-math
flags and borrows part of the FastMathFlags interface.
This change was intended to be NFC, but in some cases, the behavior
differs, because the floating-point operation information could
previously be lost when traveling throughout function call stack.
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