Page MenuHomePhabricator

laytonio (Layton Kifer)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 15 2020, 5:28 PM (33 w, 7 h)

Recent Activity

Yesterday

laytonio added a comment to D92246: [DAGCombiner][NFC] Replace duplicate implementation flipBoolean with DAG.getLogicalNOT.

Thanks for the review! If no one else objects, could you commit this for me? Layton Kifer <laytonkifer@gmail.com>

Tue, Dec 1, 11:02 AM · Restricted Project

Mon, Nov 30

laytonio updated the diff for D91589: [DAGCombiner] Fold (sext (not i1 x)) -> (add (zext i1 x), -1).

Address comments

Mon, Nov 30, 3:56 PM · Restricted Project
laytonio added a comment to D90349: [DAGCombiner] Improve shift by select of constant.

ping

Mon, Nov 30, 9:33 AM · Restricted Project

Fri, Nov 27

laytonio updated the diff for D92246: [DAGCombiner][NFC] Replace duplicate implementation flipBoolean with DAG.getLogicalNOT.

The extra lines were only because I thought it was more readable. Not having needing to pass the VT would also help in that regard though.

Fri, Nov 27, 2:22 PM · Restricted Project
laytonio added a comment to D92246: [DAGCombiner][NFC] Replace duplicate implementation flipBoolean with DAG.getLogicalNOT.

I'm not sure I understand the concern here. If its just the requirement to specify a VT, maybe we should add an overload of getLogicalNOT that doesn't require one? (and maybe getNOT while we're at it) It seems reusing the VT of whatever you're flipping is probably what you want most of the time anyway.

Fri, Nov 27, 1:42 PM · Restricted Project
laytonio retitled D92246: [DAGCombiner][NFC] Replace duplicate implementation flipBoolean with DAG.getLogicalNOT from [DAGCombiner][NFC] Replace duplicate implementation flipBoolean with DAG.getLogicalNot to [DAGCombiner][NFC] Replace duplicate implementation flipBoolean with DAG.getLogicalNOT.
Fri, Nov 27, 1:42 PM · Restricted Project
laytonio requested review of D92246: [DAGCombiner][NFC] Replace duplicate implementation flipBoolean with DAG.getLogicalNOT.
Fri, Nov 27, 1:04 PM · Restricted Project

Thu, Nov 26

laytonio updated the diff for D91589: [DAGCombiner] Fold (sext (not i1 x)) -> (add (zext i1 x), -1).

Use isBitwiseNot
Avoid folding cases where (not i1 x) can already be folded

Thu, Nov 26, 11:31 AM · Restricted Project

Tue, Nov 24

laytonio added inline comments to D91589: [DAGCombiner] Fold (sext (not i1 x)) -> (add (zext i1 x), -1).
Tue, Nov 24, 9:38 PM · Restricted Project

Mon, Nov 23

laytonio added inline comments to D91589: [DAGCombiner] Fold (sext (not i1 x)) -> (add (zext i1 x), -1).
Mon, Nov 23, 3:50 AM · Restricted Project
laytonio updated the diff for D91589: [DAGCombiner] Fold (sext (not i1 x)) -> (add (zext i1 x), -1).

Remove speculatively create (not i1 x), when not used.

Mon, Nov 23, 3:26 AM · Restricted Project

Fri, Nov 20

laytonio added a comment to D91589: [DAGCombiner] Fold (sext (not i1 x)) -> (add (zext i1 x), -1).

I might have missed something - how are we guarding against these 2 transforms getting into an infinite loop?

Fri, Nov 20, 12:18 PM · Restricted Project

Thu, Nov 19

laytonio added inline comments to D91589: [DAGCombiner] Fold (sext (not i1 x)) -> (add (zext i1 x), -1).
Thu, Nov 19, 4:42 AM · Restricted Project

Wed, Nov 18

laytonio updated the diff for D91589: [DAGCombiner] Fold (sext (not i1 x)) -> (add (zext i1 x), -1).

Thanks!

Wed, Nov 18, 4:09 PM · Restricted Project

Tue, Nov 17

laytonio added a comment to D91671: [DAGCombiner] Precommit Sext Tests.

@RKSimon could you commit these for me? Thanks in advance!

Tue, Nov 17, 5:45 PM · Restricted Project
laytonio requested review of D91671: [DAGCombiner] Precommit Sext Tests.
Tue, Nov 17, 5:43 PM · Restricted Project

Mon, Nov 16

laytonio requested review of D91589: [DAGCombiner] Fold (sext (not i1 x)) -> (add (zext i1 x), -1).
Mon, Nov 16, 10:51 PM · Restricted Project

Tue, Nov 3

laytonio updated the diff for D90658: [X86] Improve lowering of fptoui.

Rebase after rG40f7ac1a8f61

Tue, Nov 3, 10:04 PM · Restricted Project

Nov 2 2020

laytonio added a comment to D90658: [X86] Improve lowering of fptoui.

Prevents some regressions is D90113

Nov 2 2020, 5:43 PM · Restricted Project
laytonio requested review of D90658: [X86] Improve lowering of fptoui.
Nov 2 2020, 5:42 PM · Restricted Project

Oct 29 2020

laytonio added inline comments to D90349: [DAGCombiner] Improve shift by select of constant.
Oct 29 2020, 6:06 AM · Restricted Project

Oct 28 2020

laytonio requested review of D90349: [DAGCombiner] Improve shift by select of constant.
Oct 28 2020, 3:53 PM · Restricted Project
laytonio planned changes to D90113: [DAGCombiner] Fold BinOp into Select containing identity constant.
Oct 28 2020, 11:23 AM · Restricted Project
laytonio added inline comments to D90113: [DAGCombiner] Fold BinOp into Select containing identity constant.
Oct 28 2020, 11:06 AM · Restricted Project

Oct 26 2020

laytonio added inline comments to D90113: [DAGCombiner] Fold BinOp into Select containing identity constant.
Oct 26 2020, 9:16 PM · Restricted Project
laytonio updated the diff for D90113: [DAGCombiner] Fold BinOp into Select containing identity constant.

Fixed some of the regressions.

Oct 26 2020, 9:13 PM · Restricted Project

Oct 24 2020

laytonio added a comment to D90113: [DAGCombiner] Fold BinOp into Select containing identity constant.

First attempt, feedback appreciated.

Oct 24 2020, 11:25 PM · Restricted Project
laytonio added inline comments to D90113: [DAGCombiner] Fold BinOp into Select containing identity constant.
Oct 24 2020, 11:24 PM · Restricted Project
laytonio requested review of D90113: [DAGCombiner] Fold BinOp into Select containing identity constant.
Oct 24 2020, 11:21 PM · Restricted Project

Oct 21 2020

laytonio added a comment to D89839: [InstCombine][NFC] Use ConstantExpr::getBinOpIdentity.

Thanks for the review! Could you commit this for me? Layton Kifer <laytonkifer@gmail.com>

Oct 21 2020, 12:27 PM · Restricted Project

Oct 20 2020

laytonio requested review of D89839: [InstCombine][NFC] Use ConstantExpr::getBinOpIdentity.
Oct 20 2020, 5:13 PM · Restricted Project

Sep 24 2020

laytonio added a comment to D82269: [TRE][NFC] Refactor Basic Block Processing.

Thanks for the review! Could you commit this for me?

Sep 24 2020, 7:49 AM · Restricted Project

Sep 4 2020

laytonio added reviewers for D82269: [TRE][NFC] Refactor Basic Block Processing: Carrot, nlewycky.
Sep 4 2020, 6:10 AM · Restricted Project

Aug 29 2020

laytonio added a comment to D82269: [TRE][NFC] Refactor Basic Block Processing.

ping

Aug 29 2020, 5:35 PM · Restricted Project

Jul 29 2020

laytonio added a comment to D82269: [TRE][NFC] Refactor Basic Block Processing.

ping

Jul 29 2020, 10:50 AM · Restricted Project

Jul 20 2020

laytonio added a comment to D82269: [TRE][NFC] Refactor Basic Block Processing.

ping

Jul 20 2020, 6:50 AM · Restricted Project

Jul 13 2020

laytonio updated the diff for D82269: [TRE][NFC] Refactor Basic Block Processing.

Remove hasAddressTaken check
Update comment
Use pred_empty

Jul 13 2020, 6:10 PM · Restricted Project

Jun 25 2020

laytonio added inline comments to D82085: [TRE] allow TRE for non-capturing calls..
Jun 25 2020, 9:07 AM · Restricted Project, Restricted Project
laytonio added inline comments to D82085: [TRE] allow TRE for non-capturing calls..
Jun 25 2020, 5:47 AM · Restricted Project, Restricted Project

Jun 24 2020

laytonio added inline comments to D82085: [TRE] allow TRE for non-capturing calls..
Jun 24 2020, 9:09 AM · Restricted Project, Restricted Project

Jun 23 2020

laytonio added inline comments to D82269: [TRE][NFC] Refactor Basic Block Processing.
Jun 23 2020, 7:26 PM · Restricted Project
laytonio added a comment to D82269: [TRE][NFC] Refactor Basic Block Processing.

I'll wait and rebase after D82085.

Jun 23 2020, 6:53 AM · Restricted Project

Jun 22 2020

laytonio added inline comments to D82085: [TRE] allow TRE for non-capturing calls..
Jun 22 2020, 3:35 PM · Restricted Project, Restricted Project

Jun 20 2020

laytonio created D82269: [TRE][NFC] Refactor Basic Block Processing.
Jun 20 2020, 4:57 PM · Restricted Project

Jun 18 2020

laytonio added a comment to D82085: [TRE] allow TRE for non-capturing calls..

Relevant llvm-dev thread. Noncapture use of locals disabling TailRecursionElimination

Jun 18 2020, 1:39 PM · Restricted Project, Restricted Project

Jun 4 2020

laytonio abandoned D78765: [TRE] Fix bug in handling of switch statements.

Fixed by D80844

Jun 4 2020, 3:29 PM · Restricted Project

Jun 2 2020

laytonio updated the diff for D80844: [TRE] Allow accumulator elimination when base case returns non-constant.

I added your example as a test case. It is worth noting that even at -O1 clang hoists and merges the recursive calls and then branches to the correct accumulator, which would prevent either from getting removed. Also, the multiply by 2 gets converted to a shift, which would also prevent that path from getting removed. I'm going to take a look at creating another patch after this to convert shifts back to multiplies if it would enable an elimination.

Jun 2 2020, 3:56 PM · Restricted Project

Jun 1 2020

laytonio added a comment to D80844: [TRE] Allow accumulator elimination when base case returns non-constant.

What happens if there are multiple tail calls in a function using different accumulators?

Jun 1 2020, 6:26 PM · Restricted Project
laytonio updated the diff for D80844: [TRE] Allow accumulator elimination when base case returns non-constant.

Add test case for multiple return values while accumulating.

Jun 1 2020, 5:53 PM · Restricted Project

May 29 2020

laytonio created D80844: [TRE] Allow accumulator elimination when base case returns non-constant.
May 29 2020, 3:19 PM · Restricted Project

May 27 2020

laytonio added a comment to rG2bf3fe9b6ded: [TRE] Allow elimination when the returned value is non-constant.

I don't currently have a bugzilla account but I will try to sign up tomorrow so I can reply to this. I'll give a quick run down below though.


May 27 2020, 10:20 PM
laytonio added a comment to D79660: [TRE] Allow elimination when the returned value is non-constant.

Was there anything else I needed to do for this?

May 27 2020, 5:22 AM · Restricted Project

May 16 2020

laytonio added a comment to D79660: [TRE] Allow elimination when the returned value is non-constant.

Thank you. I appreciate the help.

May 16 2020, 2:17 PM · Restricted Project

May 15 2020

laytonio updated the diff for D79660: [TRE] Allow elimination when the returned value is non-constant.

Address comments. Added a test for multiple eliminations.

May 15 2020, 3:47 PM · Restricted Project

May 8 2020

laytonio created D79660: [TRE] Allow elimination when the returned value is non-constant.
May 8 2020, 7:53 PM · Restricted Project

May 5 2020

laytonio added a comment to D79299: [TRE][NFC] Refactor shared state into member variables..

Name and email would be great. Thank you.

May 5 2020, 7:26 PM · Restricted Project
laytonio updated the diff for D79299: [TRE][NFC] Refactor shared state into member variables..

Whoops, deleted one to many static keywords.

May 5 2020, 2:03 PM · Restricted Project
laytonio updated the diff for D79299: [TRE][NFC] Refactor shared state into member variables..

Nevermind, I'm an idiot.

May 5 2020, 2:03 PM · Restricted Project
laytonio updated the diff for D79299: [TRE][NFC] Refactor shared state into member variables..

Ah, I misunderstood, fixed now.

May 5 2020, 2:03 PM · Restricted Project

May 4 2020

laytonio added a comment to D79299: [TRE][NFC] Refactor shared state into member variables..

In general I agree that keeping mutable state in the class like this is not optimal. In this case though, I do believe it is better than needing to trace the variable up though several functions to find were it is declared, when in is only used in the bottom few functions. I added a comment stating that these variables are populated in createTailRecurseLoopHeader to hopefully make them a little easier to understand. As for moving the functions out of the class, I was trying to avoid cluttering the code with a bunch of "TRE->" everywhere, but if we think it is cleaner to have this be a struct that is passes around instead of a class with member functions, I am okay with that.

May 4 2020, 5:13 PM · Restricted Project
laytonio updated the diff for D79299: [TRE][NFC] Refactor shared state into member variables..

Added anonymous namespace. Renamed two variables to be more clear. Added some comments.

May 4 2020, 5:13 PM · Restricted Project

May 2 2020

laytonio created D79299: [TRE][NFC] Refactor shared state into member variables..
May 2 2020, 5:29 PM · Restricted Project
laytonio abandoned D78259: [TailCallElim] Add handling of readonly functions.
May 2 2020, 3:54 PM · Restricted Project

Apr 29 2020

laytonio updated the diff for D78765: [TRE] Fix bug in handling of switch statements.

I have gotten a version of this that does the accumulation at the end mostly working. I will finish cleaning it up and try to split it into a few different patches as I reworked a fair bit, and found a few addition improvements I think we can make. I went ahead and updated this diff in case we want to consider it a first step of incremental improvement.

Apr 29 2020, 9:05 PM · Restricted Project

Apr 27 2020

laytonio added a comment to D78765: [TRE] Fix bug in handling of switch statements.

I'm trying this approach now, but I'm having a hard time seeing a good way to transform this case:

Apr 27 2020, 7:30 AM · Restricted Project

Apr 24 2020

laytonio added a comment to D78765: [TRE] Fix bug in handling of switch statements.

Suppose, instead, the accumulator always starts at zero.

Apr 24 2020, 6:25 PM · Restricted Project
laytonio added inline comments to D78765: [TRE] Fix bug in handling of switch statements.
Apr 24 2020, 3:44 PM · Restricted Project
laytonio updated the diff for D78765: [TRE] Fix bug in handling of switch statements.

This now fixes both repos of the crash. I removed a test that relied on the bug and actually didn't produce valid output. Added the case with a single branch as a test case. However, all this switch handling really does is propagate a constant. Maybe we should remove it entirely and expect that the constant propagation passes do this for us.

Apr 24 2020, 3:44 PM · Restricted Project

Apr 23 2020

laytonio added inline comments to D78259: [TailCallElim] Add handling of readonly functions.
Apr 23 2020, 3:47 PM · Restricted Project
laytonio created D78765: [TRE] Fix bug in handling of switch statements.
Apr 23 2020, 3:47 PM · Restricted Project

Apr 15 2020

laytonio created D78259: [TailCallElim] Add handling of readonly functions.
Apr 15 2020, 6:14 PM · Restricted Project
laytonio updated the diff for D78259: [TailCallElim] Add handling of readonly functions.

noticed minor typo in the regression test

Apr 15 2020, 6:14 PM · Restricted Project