Page MenuHomePhabricator

kpn (Kevin P. Neal)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 20 2018, 9:31 AM (275 w, 1 d)

Recent Activity

Tue, May 23

kpn added a comment to D149715: IR: Add llvm.frexp intrinsic.

Would a constrained version of this be needed?

Tue, May 23, 6:11 AM · Restricted Project, Restricted Project

Wed, May 17

kpn added a comment to D150613: [SystemZ][z/OS] Implement yaml2obj for GOFF Object File Format.

There's a lot of code here. I'll try to look at it in the next couple of weeks. I was out last week and I'm a little behind.

Wed, May 17, 11:31 AM · Restricted Project, Restricted Project
kpn added a comment to D149895: [SystemZ][z/OS] Remove ENDRecord class from GOFF.h.

Why delete from class ENDRecord the support for having the entry point specified on the END card? Wouldn't that be useful in a dumping tool at least? Or is this handled somewhere else now?

Wed, May 17, 10:35 AM · Restricted Project, Restricted Project

Wed, May 3

kpn added inline comments to D147932: ValueTracking: Implement computeKnownFPClass for various rounding intrinsics.
Wed, May 3, 10:44 AM · Restricted Project, Restricted Project

Tue, May 2

kpn added inline comments to D149587: InstSimplify: Simplifications for ldexp.
Tue, May 2, 5:27 AM · Restricted Project, Restricted Project
kpn added inline comments to D149588: clang: Start emitting intrinsic for __builtin_ldexp*.
Tue, May 2, 5:24 AM · Restricted Project

May 1 2023

kpn added a comment to D14327: IR: Add llvm.ldexp and llvm.experimental.constrained.ldexp intrinsics.

The constrained intrinsic version is not documented here.

May 1 2023, 8:58 AM · Restricted Project, Restricted Project

Apr 26 2023

kpn accepted D149257: ValueTracking: Restore ordered negative handling for frem.

LGTM

Apr 26 2023, 12:24 PM · Restricted Project, Restricted Project
kpn accepted D98437: [SystemZ][z/OS] Add GOFFObjectFile class support for HDR, ESD and END records.

LGTM as well.

Apr 26 2023, 11:03 AM · Restricted Project, Restricted Project

Apr 21 2023

kpn added a comment to D148858: ValueTracking: Replace CannotBeNegativeZero.

Are we certain that a constrained sqrt() folded away will be as accurate as not folded when the rounding mode is different? There's a lot of permutations of library calls and instructions that constrained sqrt() can be lowered to, and I'm worried that the results will be surprisingly bad with different rounding modes. If we don't fold then the end user can deal with library issues themselves at least, and hopefully square root instructions will be on CPUs that properly handle the different rounding modes.

Apr 21 2023, 10:49 AM · Restricted Project, Restricted Project

Apr 20 2023

kpn added inline comments to D148674: ValueTracking: Handle frem in computeKnownFPClass.
Apr 20 2023, 9:56 AM · Restricted Project, Restricted Project

Apr 18 2023

kpn accepted D148631: ValueTracking: fdiv sign handling in computeKnownFPClass.

Seems reasonable. LGTM.

Apr 18 2023, 11:09 AM · Restricted Project, Restricted Project

Apr 14 2023

kpn accepted D147939: ValueTracking: Handle fptrunc in computeKnownFPClass.

LGTM "for reals" this time.

Apr 14 2023, 8:20 AM · Restricted Project, Restricted Project
kpn committed rGb02bd531d644: [FPEnv][LangRef] Update doc for strictfp attribute (authored by kpn).
[FPEnv][LangRef] Update doc for strictfp attribute
Apr 14 2023, 8:17 AM · Restricted Project, Restricted Project
kpn closed D148138: [FPEnv][LangRef] Update doc for strictfp attribute.
Apr 14 2023, 8:16 AM · Restricted Project, Restricted Project

Apr 13 2023

kpn added inline comments to D147936: ValueTracking: Handle minimum/maximum in computeKnownFPClass.
Apr 13 2023, 7:23 AM · Restricted Project, Restricted Project
kpn added inline comments to D148230: ValueTracking: fadd +0 cannot return -0.
Apr 13 2023, 7:15 AM · Restricted Project, Restricted Project
kpn added a comment to D148138: [FPEnv][LangRef] Update doc for strictfp attribute.

Though I am wondering if there's any real reason to require anything of an indirect call site

Apr 13 2023, 6:57 AM · Restricted Project, Restricted Project
kpn added inline comments to D147939: ValueTracking: Handle fptrunc in computeKnownFPClass.
Apr 13 2023, 6:38 AM · Restricted Project, Restricted Project
kpn added inline comments to D147938: ValueTracking: Handle exp/exp2 in computeKnownFPClass.
Apr 13 2023, 6:35 AM · Restricted Project, Restricted Project
kpn accepted D147939: ValueTracking: Handle fptrunc in computeKnownFPClass.

LGTM

Apr 13 2023, 6:21 AM · Restricted Project, Restricted Project

Apr 12 2023

kpn added inline comments to D147939: ValueTracking: Handle fptrunc in computeKnownFPClass.
Apr 12 2023, 11:17 AM · Restricted Project, Restricted Project
kpn accepted D147972: ValueTracking: Delete body of isKnownNeverNaN.

Once the prereqs are in place this LGTM.

Apr 12 2023, 10:30 AM · Restricted Project, Restricted Project
kpn requested review of D148138: [FPEnv][LangRef] Update doc for strictfp attribute.
Apr 12 2023, 8:58 AM · Restricted Project, Restricted Project

Apr 7 2023

kpn updated the diff for D146845: [FPEnv] [WIP] Verify strictfp attribute correctness, first part, 2023 edition.

Verify that CallBase::isStrictFP() continues to do what we think it is doing.

Apr 7 2023, 1:37 PM · Restricted Project, Restricted Project

Apr 5 2023

kpn updated the diff for D146845: [FPEnv] [WIP] Verify strictfp attribute correctness, first part, 2023 edition.

Update for review comments.

Apr 5 2023, 10:07 AM · Restricted Project, Restricted Project

Mar 29 2023

kpn added a comment to D146905: [IR] Add llvm.tan.* intrinsic.

I don't see any tests for a constrained/STRICT tan. We do have tests for constrained sin and cos so tan tests where sin and cos are tested is probably appropriate.

Mar 29 2023, 10:50 AM · Restricted Project, Restricted Project

Mar 24 2023

kpn requested review of D146845: [FPEnv] [WIP] Verify strictfp attribute correctness, first part, 2023 edition.
Mar 24 2023, 1:52 PM · Restricted Project, Restricted Project

Mar 21 2023

kpn committed rG2bd413036296: Update checks in advance of an update to D68233. (authored by kpn).
Update checks in advance of an update to D68233.
Mar 21 2023, 11:16 AM · Restricted Project, Restricted Project

Mar 15 2023

kpn added a comment to D146142: InstCombine: Fold is.fpclass nan|zero to fcmp ueq 0.

Where is fpclassTestIsFCmp0 implemented?

Mar 15 2023, 8:35 AM · Restricted Project, Restricted Project

Mar 6 2023

kpn abandoned D106362: [FPEnv][InstSimplify] Enable more folds for constrained fadd.

This is no longer needed as the pieces have all made it into the tree already.

Mar 6 2023, 8:45 AM · Restricted Project, Restricted Project

Mar 3 2023

kpn requested review of D145266: [FPEnv][InstSimplify] Fold fadd X, Inf ==> Inf.
Mar 3 2023, 12:37 PM · Restricted Project, Restricted Project

Feb 23 2023

kpn accepted D144447: [Clang] Teach buildFMulAdd to peek through fneg to find fmul..

LGTM.

Feb 23 2023, 6:25 AM · Restricted Project, Restricted Project

Feb 21 2023

kpn added inline comments to D144447: [Clang] Teach buildFMulAdd to peek through fneg to find fmul..
Feb 21 2023, 7:12 AM · Restricted Project, Restricted Project

Feb 16 2023

kpn added a comment to D142907: LangRef: Add "dynamic" option to "denormal-fp-math".

What's the plan for tying this to strictfp? Because I don't it should be tied to cases where we use the constrained intrinsics but the exceptions are ignored and the default rounding is in stated. Those instructions are supposed to behave the same as the non-constrained instructions. So keying off the presence of the strictfp attribute on the function definition, or the (equivalent) presence of constrained intrinsics, would be too simple.

Feb 16 2023, 10:19 AM · Restricted Project, Restricted Project

Feb 9 2023

kpn added a comment to D143074: [LangRef] improve documentation of SNaN in the default FP environment.

Hold on, that still says that operations assume that all NaNs are quiet. Doesn't that mean that passing a signaling NaN to an operation is potentially undefined behavior? Can we instead say that math operations treat all NaNs as if they were quiet NaNs? Does that run into issues with pow() and friends?

Feb 9 2023, 6:09 AM · Restricted Project, Restricted Project
kpn added a comment to D143074: [LangRef] improve documentation of SNaN in the default FP environment.

Then, LLVM is broken on old MIPS. There's just no way it's okay to spuriously introduce sNaNs when the original program didn't contain sNaNs in the first place. It results in incorrect results, without the original user code breaking any assumptions.

I think I am trying to understand why this is the case.

because, from what I understand, before IEEE 754 specified how to encode quietness for NaNs, MIPS (and PA-RISC) arbitrarily chose the opposite encoding to what IEEE 754-2008 specifies, so LLVM generating quiet NaNs following IEEE 754-2008 produces NaNs that are actually signalling NaNs for old MIPS. MIPS later added a mode bit allowing swapping its interpretation of signalling/quiet NaNs to fall in line with the IEEE 754-2008 spec -- new MIPS has that set to IEEE 754-2008 mode.

So the alternative is to say that if any input is an sNaN, then it may be treated as if it was a qNaN and output NaN have arbitrary quietness, but if there are no sNaN inputs then all output NaN will be quiet.

That works, except for old MIPS, where LLVM's idea of what's quiet/signalling doesn't currently match.

Feb 9 2023, 5:32 AM · Restricted Project, Restricted Project

Feb 8 2023

kpn accepted D143074: [LangRef] improve documentation of SNaN in the default FP environment.

I think that about covers it. LGTM.

Feb 8 2023, 11:14 AM · Restricted Project, Restricted Project
kpn added a comment to D143074: [LangRef] improve documentation of SNaN in the default FP environment.

Agreed - we're not changing the default LLVM behavior with this patch, and I have not heard any reasons why we should. IEEE-754-compliant SNaN handling isn't important enough to the majority of FP users to justify FP performance regressions.

Although I am uncertain about the consequences of changing LLVM's defaults, I would like to point out that there may not actually be a performance impact to handling signaling NaNs correctly. Replacing x * 1.0 (and the like) with x is sound whenever the only uses of x are in quieting floating-point operations (that is, +, -, *, /, fma, rem, sqrt, but not bitwise ops such as negate, abs or copySign). It would pretty much only affect cases where someone was just performing an isolated multiplication by 1 and returning that. (Such as, say, someone trying to quiet a possible-signaling value.)

Feb 8 2023, 6:35 AM · Restricted Project, Restricted Project

Feb 6 2023

kpn added a comment to D143074: [LangRef] improve documentation of SNaN in the default FP environment.

The property of SNaN like SNan + 0.0 -> QNaN is not related to exceptions and must be preserved in default environment also.

Feb 6 2023, 8:04 AM · Restricted Project, Restricted Project

Feb 1 2023

kpn added inline comments to D142907: LangRef: Add "dynamic" option to "denormal-fp-math".
Feb 1 2023, 11:36 AM · Restricted Project, Restricted Project
kpn added a comment to D142907: LangRef: Add "dynamic" option to "denormal-fp-math".

We use "dynamic" for the constrained intrinsics. I'd stay consistent with our terminology and stick with "dynamic" here.

Feb 1 2023, 11:26 AM · Restricted Project, Restricted Project
kpn added a comment to D143074: [LangRef] improve documentation of SNaN in the default FP environment.

I like the new wording. Taking the list of exceptions out was also a good idea.

Feb 1 2023, 10:40 AM · Restricted Project, Restricted Project

Jan 26 2023

kpn added a comment to D137811: InstCombine: Perform basic isnan combines on llvm.is.fpclass.

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.

A transformation that’s valid for !strictfp functions cannot be invalid because of the potential for being inlined into a strictfp function. If this isn’t possible, there is a representational issue the inliner would need to account for.

Thinking about this more, I think any situation where this could be an issue would be malformed to begin with. You had a piece of code that was expecting exceptions to be enabled calling into code where exceptions were disabled without turning exceptions off

If exceptions were turned off, the call was made, and exceptions were turned back on then there would be no correctness issue. Inlining the called function wouldn't change that. The toggling of the exception enablement would be invisible to LLVM. Thus we can't categorically say that a strictfp function calling a !strictfp function is malformed.

On most targets turning off FP exceptions means reading content of FP control register, changing value of mask bits and putting the modified register value back. It is expensive operation and cannot be made invisible to LLVM. Some targets (like RISCV) do not have possibility to mask FP exceptions at all, so at IR level there is no way to turn exception off. Default FP environment supposes that the exceptions are ignored, not disabled. In general case they are raised always.

Jan 26 2023, 9:54 AM · Restricted Project, Restricted Project

Jan 20 2023

kpn added a comment to D137811: InstCombine: Perform basic isnan combines on llvm.is.fpclass.

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.

A transformation that’s valid for !strictfp functions cannot be invalid because of the potential for being inlined into a strictfp function. If this isn’t possible, there is a representational issue the inliner would need to account for.

Thinking about this more, I think any situation where this could be an issue would be malformed to begin with. You had a piece of code that was expecting exceptions to be enabled calling into code where exceptions were disabled without turning exceptions off

Jan 20 2023, 7:14 AM · Restricted Project, Restricted Project

Jan 19 2023

kpn added a comment to D137811: InstCombine: Perform basic isnan combines on llvm.is.fpclass.

inlining may require conversion to a form that uses constrained intrinsics

Functions which are not strictfp are allowed to introduce "spurious" fp flag writes; for example, we can flatten control flow that contains floating-point ops. Inlining the function doesn't change that general rule. The inliner converts fp operations just to ensure that later optimizations don't move those operations around.

I didn't think we had code in the tree to convert normal FP instructions into constrained intrinsics. Andy Kaylor had a ticket with code to do this, but I didn't think it ever went in. Where is this code used by the inliner?

Here it is: https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Utils/CloneFunction.cpp#L390

Jan 19 2023, 6:47 AM · Restricted Project, Restricted Project

Jan 18 2023

kpn added a comment to D137811: InstCombine: Perform basic isnan combines on llvm.is.fpclass.

inlining may require conversion to a form that uses constrained intrinsics

Functions which are not strictfp are allowed to introduce "spurious" fp flag writes; for example, we can flatten control flow that contains floating-point ops. Inlining the function doesn't change that general rule. The inliner converts fp operations just to ensure that later optimizations don't move those operations around.

Jan 18 2023, 11:49 AM · Restricted Project, Restricted Project

Jan 17 2023

kpn added inline comments to D141765: [FPEnv] Fix complex operations in strictfp mode.
Jan 17 2023, 3:53 PM · Restricted Project, Restricted Project
kpn added a comment to D141765: [FPEnv] Fix complex operations in strictfp mode.

Are we testing _Complex multiply or subtraction anywhere? I have a vague memory of multiply not working correctly.

Jan 17 2023, 8:13 AM · Restricted Project, Restricted Project

Dec 19 2022

kpn added inline comments to D139629: clang: Stop emitting "strictfp".
Dec 19 2022, 7:24 AM · Restricted Project
kpn added inline comments to D139629: clang: Stop emitting "strictfp".
Dec 19 2022, 4:52 AM · Restricted Project

Dec 13 2022

kpn added inline comments to D138867: [RFC] Add new intrinsics and attribute to control accuracy of FP calls.
Dec 13 2022, 11:54 AM · Restricted Project, Restricted Project
kpn added inline comments to D112932: Use llvm.is_fpclass to implement FP classification functions.
Dec 13 2022, 10:53 AM · Restricted Project, Restricted Project

Dec 8 2022

kpn added a comment to D139316: ValueTracking: Teach isKnownNeverInfinity about rounding intrinsics.

Assuming we don't have to worry about the new, 8 and 16 bit FP formats I'm happy to see this move forward.

Dec 8 2022, 10:06 AM · Restricted Project, Restricted Project
kpn added a comment to D139629: clang: Stop emitting "strictfp".

It looks like clang does have at least one test that checks for the strictfp attribute on function definitions. We also have a number that test for the strictfp attribute on function calls. So I think our test coverage is in good shape.

Dec 8 2022, 8:57 AM · Restricted Project
kpn added a reviewer for D139629: clang: Stop emitting "strictfp": andrew.w.kaylor.
Dec 8 2022, 7:39 AM · Restricted Project
kpn added a comment to D139316: ValueTracking: Teach isKnownNeverInfinity about rounding intrinsics.

Are we certain that a value that is very close to infinity won't trip over into infinity after rounding?

Dec 8 2022, 5:41 AM · Restricted Project, Restricted Project

Dec 5 2022

kpn accepted D139317: ValueTracking: Teach isKnownNeverInfinity about sqrt.

I believe this is correct. I'm looking at n3054 Annex F and it says that sqrt(+inf) returns +inf. But since you are checking that the input cannot be inf it follows that the output cannot be inf.

Dec 5 2022, 1:46 PM · Restricted Project, Restricted Project
kpn accepted D139318: ValueTracking: Teach isKnownNeverInfinity about llvm.sin/llvm.cos.

LGTM

Dec 5 2022, 1:22 PM · Restricted Project, Restricted Project
kpn accepted D139309: InstCombine: Fold fabs (copysign x, y) -> fabs x.

LGTM

Dec 5 2022, 11:20 AM · Restricted Project, Restricted Project
kpn added inline comments to D138867: [RFC] Add new intrinsics and attribute to control accuracy of FP calls.
Dec 5 2022, 10:59 AM · Restricted Project, Restricted Project

Oct 28 2022

kpn committed rG5eb1fbd10973: [clang][Docs] Correct typo: "may_trap" is rejected, the value is "maytrap". (authored by kpn).
[clang][Docs] Correct typo: "may_trap" is rejected, the value is "maytrap".
Oct 28 2022, 8:42 AM · Restricted Project, Restricted Project

Oct 24 2022

kpn abandoned D115737: [IPSCCP] Partial support for constrained intrinsics.

Abandoned in favor of D136466.

Oct 24 2022, 8:45 AM · Restricted Project, Restricted Project
kpn committed rGcfb88ee3ba70: [StrictFP][IPSCCP] Constant fold intrinsics with metadata arguments (authored by kpn).
[StrictFP][IPSCCP] Constant fold intrinsics with metadata arguments
Oct 24 2022, 8:43 AM · Restricted Project, Restricted Project
kpn closed D136466: [StrictFP][IPSCCP] Constant fold constrained intrinsics.
Oct 24 2022, 8:43 AM · Restricted Project, Restricted Project
kpn updated the diff for D136466: [StrictFP][IPSCCP] Constant fold constrained intrinsics.

Update for review comments: allow folding for more than constrained intrinsics.

Oct 24 2022, 8:17 AM · Restricted Project, Restricted Project

Oct 21 2022

kpn requested review of D136466: [StrictFP][IPSCCP] Constant fold constrained intrinsics.
Oct 21 2022, 9:42 AM · Restricted Project, Restricted Project

Oct 18 2022

kpn added a comment to D136097: InstSimplify: Fold fdiv nnan nsz x, 0 -> inf.

Ah, thanks for clearing that up. The "nsz" wording has always been a less solid than I'd like, but I'm not sure how to change it.
I suspect this transform would cause some fallout with users because it's a stretch to go from -0.0 isn't different than 0.0, therefore, -Inf isn't different than +Inf. There was a suggestion in a previous discussion that we really need entirely new FP types to use with fast-math-flags, so it's clear that -0.0, Inf, or NaN values simply do not exist when the corresponding compile flag is used, but I don't think anyone has looked seriously at implementing that. There's more discussion about the general problem here:
https://github.com/llvm/llvm-project/issues/51601

Oct 18 2022, 7:59 AM · Restricted Project, Restricted Project
kpn committed rG1b06307aa43c: [LangRef][FMF] Clarify ambiguity. (authored by kpn).
[LangRef][FMF] Clarify ambiguity.
Oct 18 2022, 7:57 AM · Restricted Project, Restricted Project

Oct 17 2022

kpn added inline comments to D136098: InstCombine: Fold fdiv nnan x, 0 -> copysign(inf, x).
Oct 17 2022, 12:52 PM · Restricted Project, Restricted Project
kpn requested changes to D136097: InstSimplify: Fold fdiv nnan nsz x, 0 -> inf.

It looks like by 754 sec 7.3 a (-x)/(+0) == -Inf, but the nsz is documented as saying the sign of the result is "insignificant", so I think we're good here.

LGTM

"nsz" means the sign of a zero result is insignificant, not any result. -42.0 / 0.0 should be -Inf, not +Inf?

Oct 17 2022, 12:11 PM · Restricted Project, Restricted Project
kpn added a comment to D136098: InstCombine: Fold fdiv nnan x, 0 -> copysign(inf, x).

Precommit tests?

Oct 17 2022, 12:07 PM · Restricted Project, Restricted Project
kpn accepted D136097: InstSimplify: Fold fdiv nnan nsz x, 0 -> inf.

It looks like by 754 sec 7.3 a (-x)/(+0) == -Inf, but the nsz is documented as saying the sign of the result is "insignificant", so I think we're good here.

Oct 17 2022, 11:51 AM · Restricted Project, Restricted Project
kpn accepted D136096: InstSimplify: Fold fdiv nnan ninf x, 0 -> poison.

Looks like IEEE 754-2019 section 7.3 says this should result in Infinity, but the ninf flag excludes Infinity, so poison seems correct.

Oct 17 2022, 11:29 AM · Restricted Project, Restricted Project

Oct 3 2022

kpn updated the diff for D115737: [IPSCCP] Partial support for constrained intrinsics.

Update to use more targeted tests.

Oct 3 2022, 11:51 AM · Restricted Project, Restricted Project
kpn added a comment to D115737: [IPSCCP] Partial support for constrained intrinsics.

Why isn't this already handled by ConstantFoldCall?

Oct 3 2022, 11:49 AM · Restricted Project, Restricted Project

Sep 23 2022

kpn added a comment to D118392: [SCCP][FuncSpec] Switch away from Instruction::isSafeToRemove().

D118387 was my ticket, and it was handled that way to preserve the existing behavior. I don't believe a wrapper is needed in this case.

Sep 23 2022, 12:42 PM · Restricted Project, Restricted Project
kpn updated the diff for D118392: [SCCP][FuncSpec] Switch away from Instruction::isSafeToRemove().

Update for review comment: just use wouldInstructionBeTriviallyDead().

Sep 23 2022, 11:02 AM · Restricted Project, Restricted Project

Aug 16 2022

kpn committed rG7f768371a12d: Fix build error: [FPEnv][EarlyCSE] Support for CSE when exception behavior is… (authored by kpn).
Fix build error: [FPEnv][EarlyCSE] Support for CSE when exception behavior is…
Aug 16 2022, 5:48 AM · Restricted Project, Restricted Project
kpn committed rG05ac82de4009: [FPEnv][EarlyCSE] Support for CSE when exception behavior is "ignore" or… (authored by kpn).
[FPEnv][EarlyCSE] Support for CSE when exception behavior is "ignore" or…
Aug 16 2022, 5:32 AM · Restricted Project, Restricted Project
kpn closed D112256: [FPEnv][EarlyCSE] Add support for CSE of constrained FP intrinsics, take 2.
Aug 16 2022, 5:31 AM · Restricted Project, Restricted Project

Aug 12 2022

kpn updated the diff for D112256: [FPEnv][EarlyCSE] Add support for CSE of constrained FP intrinsics, take 2.

I was thinking that adding a test for strict exception behavior might make it look intentional that this true/false propagation isn't happening. But a test case with a note is perfectly fine.

Aug 12 2022, 12:29 PM · Restricted Project, Restricted Project

Aug 11 2022

kpn committed rGde64d0076ecc: [FPEnv][InstSimplify] Fix formatting error. (authored by kpn).
[FPEnv][InstSimplify] Fix formatting error.
Aug 11 2022, 9:10 AM · Restricted Project, Restricted Project
kpn committed rG7bdb010d7c58: [FPEnv][InstSimplify] 0.0 - -X ==> X (authored by kpn).
[FPEnv][InstSimplify] 0.0 - -X ==> X
Aug 11 2022, 8:36 AM · Restricted Project, Restricted Project
kpn closed D131607: [FPEnv][InstSimplify] 0.0 - -X ==> X.
Aug 11 2022, 8:36 AM · Restricted Project, Restricted Project

Aug 10 2022

kpn requested review of D131607: [FPEnv][InstSimplify] 0.0 - -X ==> X.
Aug 10 2022, 11:32 AM · Restricted Project, Restricted Project

Aug 5 2022

kpn updated the diff for D112256: [FPEnv][EarlyCSE] Add support for CSE of constrained FP intrinsics, take 2.

Address review comments.

Aug 5 2022, 9:56 AM · Restricted Project, Restricted Project

Aug 1 2022

kpn added a comment to D112256: [FPEnv][EarlyCSE] Add support for CSE of constrained FP intrinsics, take 2.

I'll get back to you on the tfpropagation.ll question. The test precommit:

Aug 1 2022, 6:33 AM · Restricted Project, Restricted Project
kpn added a comment to D112256: [FPEnv][EarlyCSE] Add support for CSE of constrained FP intrinsics, take 2.

I'll update the patch later today with that missing assertion.

Aug 1 2022, 6:15 AM · Restricted Project, Restricted Project

Jul 28 2022

kpn updated the diff for D112256: [FPEnv][EarlyCSE] Add support for CSE of constrained FP intrinsics, take 2.

Update diff after precommit of tests.

Jul 28 2022, 9:13 AM · Restricted Project, Restricted Project
kpn committed rG25a83005ef9d: Precommit tests for D112256 "[FPEnv][EarlyCSE] Add support for CSE of… (authored by kpn).
Precommit tests for D112256 "[FPEnv][EarlyCSE] Add support for CSE of…
Jul 28 2022, 5:59 AM · Restricted Project, Restricted Project

Jul 25 2022

kpn updated the diff for D112256: [FPEnv][EarlyCSE] Add support for CSE of constrained FP intrinsics, take 2.

You know, I now believe that I can simplify this down to just this. The complication to treat constrained intrinsics as a memory update was put in when I added the restrictions on doing CSE across function calls. But since that restriction isn't needed I don't see the need for the rest of the complications. I don't think we need to go to heroics just for exception handlers, at least not at this time. This code is now much simpler.

Jul 25 2022, 1:22 PM · Restricted Project, Restricted Project

Jul 5 2022

kpn added a comment to D112256: [FPEnv][EarlyCSE] Add support for CSE of constrained FP intrinsics, take 2.

Ping

Jul 5 2022, 11:44 AM · Restricted Project, Restricted Project

Jun 28 2022

kpn updated the diff for D118392: [SCCP][FuncSpec] Switch away from Instruction::isSafeToRemove().

Move more of Instruction::isSafeToRemove() into this function. The remainder of isSafeToRemove() isn't needed because we filter out function calls at the top of the changed function.

Jun 28 2022, 12:11 PM · Restricted Project, Restricted Project
kpn added a comment to D115737: [IPSCCP] Partial support for constrained intrinsics.

Ping

Jun 28 2022, 9:25 AM · Restricted Project, Restricted Project

Jun 20 2022

kpn added a comment to D112256: [FPEnv][EarlyCSE] Add support for CSE of constrained FP intrinsics, take 2.

Ping

Jun 20 2022, 9:09 AM · Restricted Project, Restricted Project

Jun 16 2022

kpn updated the diff for D115737: [IPSCCP] Partial support for constrained intrinsics.

Update for review comments. I've also reduced it down to just fcmp and fcmps having a functional impact. I don't have a good way to test the binary operators just yet.

Jun 16 2022, 11:48 AM · Restricted Project, Restricted Project
kpn committed rG1f331224fb17: [strictfp][IPSCCP] Precommit tests for D115737. (authored by kpn).
[strictfp][IPSCCP] Precommit tests for D115737.
Jun 16 2022, 8:24 AM · Restricted Project, Restricted Project

Jun 6 2022

kpn committed rGa1f1bd547b0d: [IPSCCP] Switch away from Instruction::isSafeToRemove() (authored by kpn).
[IPSCCP] Switch away from Instruction::isSafeToRemove()
Jun 6 2022, 6:24 AM · Restricted Project, Restricted Project
kpn closed D118387: [IPSCCP] Switch away from Instruction::isSafeToRemove().
Jun 6 2022, 6:24 AM · Restricted Project, Restricted Project