User Details
- User Since
- Mar 13 2013, 7:26 AM (523 w, 4 h)
Yesterday
I am not proficient in Power ISA and rely on the results of testing mentioned in the patch summary.
Wed, Mar 15
Tue, Mar 14
Mon, Mar 6
What is the advantage of such lowering?
Could you please rebase the patch? Some changes for FPClassTest are already committed.
LGTM.
Thu, Mar 2
Wed, Mar 1
C standard function fesetround accepts rounding mode in the form of target-specific values like FE_TONEAREST. They usually represent corresponding bits in control register, so are different for different targets. llvm.set_rounding in contrast accepts rounding mode as target-independent value, the encoding is same as used in FLT_ROUNDS.
Mon, Feb 27
Sun, Feb 26
Thanks!
Fri, Feb 24
Wed, Feb 22
Tue, Feb 21
Thanks!
Mon, Feb 20
Thanks!
Feb 16 2023
Remove copying StrictFPAttr from InstantiateAttrs
Feb 15 2023
Changed the way to copy strictfp attribute
Feb 13 2023
Feb 8 2023
Feb 6 2023
The property of SNaN like SNan + 0.0 -> QNaN is not related to exceptions and must be preserved in default environment also.
Feb 2 2023
The alternative solution in D136354 was implemented.
Feb 1 2023
Thanks!
Jan 31 2023
LGTM.
Thanks!
Jan 30 2023
Jan 26 2023
LGTM.
Jan 25 2023
Reverse ping.
Jan 24 2023
Thanks!
Jan 23 2023
Use --implicit-check-not in test
Jan 20 2023
Thanks!
Jan 19 2023
Use --implicit-check-not in tests
Jan 18 2023
Updated comment in test as proposed by Kevin
Jan 17 2023
LGTM.
Jan 16 2023
Existing decoration with nnan/ninf has inconvenient semantics. Having more powerfull and consistent solution can enable optimizations that are based on the knowledge of finitness of FP operands.
Early conversion is_fpclass->fcmp may result in incorrect semantics. It make the code:
if (!isnan(x)) { … }
indistinguishable from:
if (x == x) { … }
But they have different behavior if x is signaling NaN. Although the replacement is proposed for strictfp functions only, inlining may require conversion to a form that uses constrained intrinsics. The resulting code would have different behavior than original.
Jan 14 2023
Jan 12 2023
Jan 11 2023
Remove support of __builtin_is{subnormal,zero,signaling}, rebased
Dec 26 2022
Update patch
Dec 25 2022
As mentioned in another review, using fcmp to represent isnormal in IR as well as any other classification function would result in incorrect code in strict mode. The source:
inline __attribute__((always_inline)) _Bool func(float x) { return __builtin_isnormal(x); }
Dec 20 2022
LGTM.
This change can have negative consequences in some cases. Some targets have dedicated instruction to test FP class and often this instruction is faster than arithmetic operations. Replacement of one operation with two arithmetic and two logic plus cost of FP constant materialization does not provide any visible benefit.
Dec 19 2022
Remove __builtin_isfpclass
LGTM.
Dec 16 2022
Dec 15 2022
LGTM.
Dec 14 2022
Some mechanism must exists that applies this transformation or not depending on target. If instruction FCLASS is available, the transformation is profitable. But on targets that do not have such instruction, the replacement may produce inefficient code.
Dec 13 2022
Replace llvm::Optional with std::optional