Page MenuHomePhabricator

kbarton (Kit Barton)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 13 2015, 12:58 PM (248 w, 6 d)

Recent Activity

Thu, Sep 26

kbarton committed rG50bc61046084: [LoopFusion] Add ability to fuse guarded loops (authored by kbarton).
[LoopFusion] Add ability to fuse guarded loops
Thu, Sep 26, 2:43 PM
kbarton committed rL373018: [LoopFusion] Add ability to fuse guarded loops.
[LoopFusion] Add ability to fuse guarded loops
Thu, Sep 26, 2:43 PM
kbarton closed D65464: [LoopFusion] Add ability to fuse guarded loops.
Thu, Sep 26, 2:43 PM · Restricted Project
kbarton accepted D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..

LGTM.
Thanks for adding the comment.

Thu, Sep 26, 12:00 PM · Restricted Project

Mon, Sep 23

kbarton added a comment to D66529: [LOOPGUARD] Disable loop with multiple loop exiting blocks..

I don't remember why exactly this was necessary.
Looking at the current definition in LoopInfo.h, it's not immediately obvious to me either.
Could you either update the definition of getLoopGuardBranch in LoopInfo.h to state this case is not handled (and why). Or, if it's something obvious that I'm not seeing, expand the description here to make it clear?

Mon, Sep 23, 1:15 PM · Restricted Project

Aug 30 2019

kbarton added inline comments to D65464: [LoopFusion] Add ability to fuse guarded loops.
Aug 30 2019, 10:19 AM · Restricted Project

Aug 29 2019

kbarton added a comment to D65464: [LoopFusion] Add ability to fuse guarded loops.

Are there any other comments on this?
If not, I'd like to get this committed and start working on the next patch.

Aug 29 2019, 2:41 PM · Restricted Project

Aug 27 2019

kbarton added inline comments to D64662: [FPEnv] [PowerPC] Lower ppc_fp128 StrictFP Nodes to libcalls.
Aug 27 2019, 11:40 AM · Restricted Project
kbarton added a comment to D64662: [FPEnv] [PowerPC] Lower ppc_fp128 StrictFP Nodes to libcalls.

Sorry, I clicked submit before adding general comments.
Thanks for working on this. I think this looks OK, just needs some minor cleaning wrt coding guidelines and the test cases.
I'd like other people weigh in though, as it's been a while since I looked at SD Chains.

Aug 27 2019, 9:26 AM · Restricted Project
kbarton added reviewers for D64662: [FPEnv] [PowerPC] Lower ppc_fp128 StrictFP Nodes to libcalls: jsji, wuzish.
Aug 27 2019, 9:21 AM · Restricted Project
kbarton requested changes to D64662: [FPEnv] [PowerPC] Lower ppc_fp128 StrictFP Nodes to libcalls.
Aug 27 2019, 9:21 AM · Restricted Project

Aug 13 2019

kbarton added inline comments to D65464: [LoopFusion] Add ability to fuse guarded loops.
Aug 13 2019, 9:50 AM · Restricted Project
kbarton updated the diff for D65464: [LoopFusion] Add ability to fuse guarded loops.
  • Assert guard branch is conditional in getNonLoopBlock.
Aug 13 2019, 9:47 AM · Restricted Project

Aug 8 2019

kbarton added a comment to D65464: [LoopFusion] Add ability to fuse guarded loops.

Is there a long-term plan to avoid the code duplication? E.g. refactoring/keeping only the fuseGuardedLoops variant when loop guards become a normal form? One could also add some preprocessing that makes the two loop guards guard both loops, then use the standard fuse code.

Aug 8 2019, 12:01 PM · Restricted Project
kbarton updated the diff for D65464: [LoopFusion] Add ability to fuse guarded loops.
  • Address review comments.
  • Improve haveIdenticalGuards method by ensuring the guards gave the same flow into/around the loop in addition to identical compare instructions.
  • Remove (redundant) increments of FuseCounter statistic.
  • Addressed review comments.
  • Remove old, out of date comments in fuseGuardedLoops method.
Aug 8 2019, 11:56 AM · Restricted Project
kbarton added inline comments to D65464: [LoopFusion] Add ability to fuse guarded loops.
Aug 8 2019, 11:37 AM · Restricted Project
kbarton created D65958: [Loop] Add isRotated method to Loop class..
Aug 8 2019, 9:54 AM · Restricted Project

Aug 6 2019

kbarton updated the diff for D65464: [LoopFusion] Add ability to fuse guarded loops.
  • Addressed review comments.
Aug 6 2019, 3:14 PM · Restricted Project
kbarton updated the diff for D65464: [LoopFusion] Add ability to fuse guarded loops.
  • Remove (redundant) increments of FuseCounter statistic.
Aug 6 2019, 8:57 AM · Restricted Project
kbarton created D65811: Minor change to readme file..
Aug 6 2019, 8:47 AM · Restricted Project

Jul 30 2019

kbarton updated the diff for D65464: [LoopFusion] Add ability to fuse guarded loops.
  • Improve haveIdenticalGuards method by ensuring the guards gave the same flow into/around the loop in addition to identical compare instructions.
Jul 30 2019, 3:08 PM · Restricted Project
kbarton added inline comments to D65464: [LoopFusion] Add ability to fuse guarded loops.
Jul 30 2019, 2:17 PM · Restricted Project
kbarton updated the diff for D65464: [LoopFusion] Add ability to fuse guarded loops.
  • Address review comments.
Jul 30 2019, 12:30 PM · Restricted Project
kbarton added inline comments to D65464: [LoopFusion] Add ability to fuse guarded loops.
Jul 30 2019, 12:30 PM · Restricted Project
kbarton updated subscribers of D65464: [LoopFusion] Add ability to fuse guarded loops.
Jul 30 2019, 11:44 AM · Restricted Project
kbarton created D65464: [LoopFusion] Add ability to fuse guarded loops.
Jul 30 2019, 11:37 AM · Restricted Project
kbarton committed rGde0b6339991d: [LoopFusion] Extend use of OptimizationRemarkEmitter (authored by kbarton).
[LoopFusion] Extend use of OptimizationRemarkEmitter
Jul 30 2019, 9:01 AM
kbarton committed rL367327: [LoopFusion] Extend use of OptimizationRemarkEmitter.
[LoopFusion] Extend use of OptimizationRemarkEmitter
Jul 30 2019, 9:01 AM
kbarton closed D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.
Jul 30 2019, 9:00 AM · Restricted Project

Jul 29 2019

kbarton added a comment to D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.

@etiotto Any additional comments?

Jul 29 2019, 1:18 PM · Restricted Project

Jul 24 2019

kbarton added a comment to D65164: Define some basic terminology around loops in our documentation.

I think this is really good - thanks for taking the time to start this!
Most of my comments are minor/grammatical.

Jul 24 2019, 1:18 PM · Restricted Project

Jul 23 2019

kbarton added a comment to D63885: [LOOPINFO] Introduce the loop guard API. .

LGTM w/required changes before submit.

p.s. Your next step after this lands needs to be finding a consumer. I'm willing to approve this speculatively, but if it sits in tree unused for long, it will be deleted.

Jul 23 2019, 8:30 AM · Restricted Project

Jul 16 2019

kbarton added a reviewer for D61249: [NFC] Refactor the systemZ scheduler strategy to adapt with the new schedule state forwarding infrastructure: uweigand.
Jul 16 2019, 6:50 AM · Restricted Project
kbarton added a comment to D63885: [LOOPINFO] Introduce the loop guard API. .

I'm not sure an API this general is the most relevant. I would have expected something more tightly tied to the loop itself instead of the region of code which contains the loop. Thinking about how transforms might want to use this, I suspect a much tighter definition would be useful.

Consider a transform which figures out a condition C under which loop L is a noop. Modifying the guard (as defined here) would not be valid, but a guard which controls the preheader directly w/no side effects possible inside the guarded region, but outside the loop would be exactly what was needed. Not sure what other transforms need off the top of my head, but I think that needs to be explored.

Jul 16 2019, 6:35 AM · Restricted Project

Jul 15 2019

kbarton updated the diff for D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.
  • Rename InvalidTripCount to UnknownTripCount as per review comments.
Jul 15 2019, 1:21 PM · Restricted Project
kbarton updated the diff for D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.

Address the following review comments:

  1. Create a function template to report successful and missed loop fusion opportunities.
  2. Cleanup debug metadata in the test cases.
  3. Address other minor comments (pre-increment of stats, function name, missing asserts).
Jul 15 2019, 1:14 PM · Restricted Project

Jun 27 2019

kbarton added inline comments to D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.
Jun 27 2019, 9:57 AM · Restricted Project

Jun 26 2019

kbarton added reviewers for D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter: etiotto, Whitney.
Jun 26 2019, 2:30 PM · Restricted Project
kbarton added reviewers for D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter: jdoerfert, Meinersbur, dmgreen.
Jun 26 2019, 2:30 PM · Restricted Project
kbarton created D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.
Jun 26 2019, 2:21 PM · Restricted Project

Jun 3 2019

kbarton closed D50989: Remove Darwin support from POWER backend..

This landed in https://reviews.llvm.org/rL340770.

Jun 3 2019, 7:52 AM

May 30 2019

kbarton added a comment to D62430: [PPC] Correctly adjust branch probability in PPCReduceCRLogicals.

Hi Carrot,
I agree with this change, conceptually. Have you done any performance measurements to see what the impact is?

May 30 2019, 9:22 AM · Restricted Project
kbarton added inline comments to D62607: LoopDistribute/LAA: Respect convergent.
May 30 2019, 9:04 AM

May 23 2019

kbarton committed rG987fdfd9a719: Revert [LOOPINFO] Extend Loop object to add utilities to get the loop… (authored by kbarton).
Revert [LOOPINFO] Extend Loop object to add utilities to get the loop…
May 23 2019, 1:51 PM
kbarton committed rL361553: Revert [LOOPINFO] Extend Loop object to add utilities to get the loop….
Revert [LOOPINFO] Extend Loop object to add utilities to get the loop…
May 23 2019, 1:50 PM
kbarton committed rG2049e4dd8f61: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step… (authored by kbarton).
[LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step…
May 23 2019, 10:55 AM
kbarton committed rL361517: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step….
[LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step…
May 23 2019, 10:55 AM

May 22 2019

kbarton accepted D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..

Aside from a few minor comments, this LGTM.

May 22 2019, 1:25 PM · Restricted Project

May 17 2019

kbarton added a comment to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..

I discussed this with @Whitney and I think at this point it makes sense to remove the getGuard and getPotentialGuard methods as there still seems to be some discussions about the right approach for that.
Aside from that, I think everything else looks pretty good, aside from some specific style-related comments.

May 17 2019, 11:41 AM · Restricted Project

May 15 2019

kbarton added a comment to D53157: Teach the IRBuilder about constrained fadd and friends.

I think this looks straightforward, as long as people agree to have a separate CreateConstrained* version of these functions. I'm not qualified to weigh in on that as I don't know Clang at all and can't comment about the tradeoffs (although I think they have been well articulated in the discussion). From what I can see, that is the only thing blocking this from getting approved (unless there is something else I missed while reading the discussion).

May 15 2019, 11:52 AM · Restricted Project
kbarton added a comment to D43515: More math intrinsics for conservative math handling.

A few minor comments about commoning asserts and using dyn_cast instead of cast<>.
Aside from that, I think this looks good. That said, I'm by no means an expert in this area so don't feel I'm qualified to give a final approval to commit.

May 15 2019, 10:13 AM

May 14 2019

kbarton added a comment to D55506: [RFC v2] Allow target to handle STRICT floating-point nodes.

Aside from two minor comments, I think this looks fine.
However, I don't think I'm qualified to give the final approval for this to land as I'm just starting to learn the background here.

May 14 2019, 2:58 PM · Restricted Project
kbarton committed rG37b7922daa92: Save the induction binary operator in IVDescriptors for non FP induction… (authored by kbarton).
Save the induction binary operator in IVDescriptors for non FP induction…
May 14 2019, 6:27 AM
kbarton committed rL360671: Save the induction binary operator in IVDescriptors for non FP induction….
Save the induction binary operator in IVDescriptors for non FP induction…
May 14 2019, 6:27 AM
kbarton closed D61329: Save the induction binary operator in IVDescriptors for non FP induction variables..
May 14 2019, 6:26 AM · Restricted Project

May 13 2019

kbarton requested changes to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..
May 13 2019, 12:55 PM · Restricted Project

Apr 30 2019

kbarton requested changes to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, and loop induction variable..
Apr 30 2019, 8:33 AM · Restricted Project

Apr 24 2019

kbarton committed rG8e64f0a64988: Fix unused variable warning in LoopFusion pass. (authored by kbarton).
Fix unused variable warning in LoopFusion pass.
Apr 24 2019, 7:09 PM
kbarton committed rL359161: Fix unused variable warning in LoopFusion pass..
Fix unused variable warning in LoopFusion pass.
Apr 24 2019, 7:08 PM
kbarton closed D61035: Fix unused variable warning in LoopFusion pass.
Apr 24 2019, 7:08 PM · Restricted Project

Apr 23 2019

kbarton created D61035: Fix unused variable warning in LoopFusion pass.
Apr 23 2019, 12:27 PM · Restricted Project

Apr 17 2019

kbarton committed rG3cdf87940f05: Add basic loop fusion pass. (authored by kbarton).
Add basic loop fusion pass.
Apr 17 2019, 11:52 AM
kbarton committed rL358607: Add basic loop fusion pass..
Add basic loop fusion pass.
Apr 17 2019, 11:51 AM
kbarton closed D55851: Implement basic loop fusion pass.
Apr 17 2019, 11:51 AM · Restricted Project

Apr 16 2019

kbarton committed rGab70da07286e: Add basic loop fusion pass. (authored by kbarton).
Add basic loop fusion pass.
Apr 16 2019, 6:36 PM
kbarton committed rL358543: Add basic loop fusion pass..
Add basic loop fusion pass.
Apr 16 2019, 6:35 PM
kbarton added a comment to D55851: Implement basic loop fusion pass.

All comments have been addressed. I will be committing this soon.

Apr 16 2019, 10:41 AM · Restricted Project

Apr 11 2019

kbarton added a comment to D45308: [IPRA] Do not collect register usage information on functions that can be derefined.

Is this patch dead? Does @kbarton or perhaps @jonpa have any interest in seeing this through so IPRA can be enabled on PPC/SystemZ?

Apr 11 2019, 9:43 AM · Restricted Project
kbarton closed D50988: Remove Darwin support from POWER backend..

This landed in https://reviews.llvm.org/rL340795.

Apr 11 2019, 9:41 AM · Restricted Project

Mar 26 2019

kbarton added a comment to D55851: Implement basic loop fusion pass.

Thanks @dmgreen!
The only outstanding issue was from @Meinersbur regarding the constructor for FusionCandidate. The concern was keeping the logic in the constructor, vs moving it out into a createFusionCandidate method to wrap the constructor and add all the logic to that method. I don't have a preference one way or the other, but will happily make the change if people feel strongly about it.

Mar 26 2019, 9:14 AM · Restricted Project

Mar 25 2019

kbarton updated the diff for D55851: Implement basic loop fusion pass.

Address review comments as follows:

  1. Strengthen dependence checks between any value used in Loop 1 to ensure it is not defined in loop 0.
  2. Do not add a tree update to insert an edge between FC0.Latch and FC1.Header when FC0.ExitingBlock is the same as FC0.Latch. This edge has already been inserted into the tree updates earlier and will cause an assertion to fail while performing the updates.
  3. Rename ExitingBlocks to ExitingBlock since we are only concerned with loops with a single exiting block.
Mar 25 2019, 8:24 PM · Restricted Project
kbarton added inline comments to D55851: Implement basic loop fusion pass.
Mar 25 2019, 8:18 PM · Restricted Project

Mar 22 2019

kbarton added inline comments to D55851: Implement basic loop fusion pass.
Mar 22 2019, 2:08 PM · Restricted Project

Mar 1 2019

kbarton updated the diff for D55851: Implement basic loop fusion pass.

Addressed most of the review comments.

Mar 1 2019, 10:02 AM · Restricted Project
kbarton added a comment to D55851: Implement basic loop fusion pass.

Addressed some more comments. I'll upload a new patch momentarily.

Mar 1 2019, 9:03 AM · Restricted Project

Feb 12 2019

kbarton added a comment to D55851: Implement basic loop fusion pass.

I've addressed almost all of the comments.
I will work on an update to the problem that dmgreen provided an example for and post a new version of the patch when that is done.
In the meantime, if my understanding of the comments is incorrect, someone please correct me :)

Feb 12 2019, 9:59 AM · Restricted Project

Jan 18 2019

kbarton added a comment to D56906: Prototype of update to file headers for relicensing..

You probably realize this, but the link https://llvm.org/LICENSE.txt currently doesn't work ;)
Are you planning on including a copy of the LICENSE.txt file in the source tree as well?

Jan 18 2019, 8:52 AM

Jan 17 2019

kbarton updated the diff for D55851: Implement basic loop fusion pass.

Addressed comments from dmgreen.

Jan 17 2019, 1:59 PM · Restricted Project
kbarton added a comment to D55851: Implement basic loop fusion pass.

I've addressed most of these comments (except the ones I have some questions about). I will be refreshing the patch momentarily.

Jan 17 2019, 1:58 PM · Restricted Project

Dec 20 2018

kbarton added inline comments to D55851: Implement basic loop fusion pass.
Dec 20 2018, 12:51 PM · Restricted Project
kbarton updated the diff for D55851: Implement basic loop fusion pass.

Addressed all but two of the review comments.
The only outstanding comments are the use of std::set (which I tried to address with comments) and the logic inside the FusionCandidate constructor (which I'm waiting for feedback on the review).

Dec 20 2018, 12:41 PM · Restricted Project
kbarton updated the summary of D55851: Implement basic loop fusion pass.
Dec 20 2018, 9:28 AM · Restricted Project
kbarton added a comment to D55851: Implement basic loop fusion pass.

Responded to two of the comments. Most of the others will be addressed in the next revision, which I should hopefully be uploading soon.

Dec 20 2018, 9:26 AM · Restricted Project

Dec 18 2018

kbarton created D55851: Implement basic loop fusion pass.
Dec 18 2018, 12:52 PM · Restricted Project

Aug 27 2018

kbarton committed rL340795: [PPC] Remove Darwin support from POWER backend..
[PPC] Remove Darwin support from POWER backend.
Aug 27 2018, 6:19 PM
kbarton committed rC340770: [PPC] Remove Darwin support from POWER backend..
[PPC] Remove Darwin support from POWER backend.
Aug 27 2018, 12:55 PM
kbarton committed rL340770: [PPC] Remove Darwin support from POWER backend..
[PPC] Remove Darwin support from POWER backend.
Aug 27 2018, 12:55 PM

Aug 20 2018

kbarton added a comment to D50988: Remove Darwin support from POWER backend..

Actually can you explain the removal of llvm/test/tools/dsymutil/PowerPC/sibling.test?

Aug 20 2018, 12:50 PM · Restricted Project
kbarton added a comment to D50988: Remove Darwin support from POWER backend..

I personally can't think of a reason why not to do this. But I think sending an RFC to llvm-dev is in order here.

Aug 20 2018, 12:44 PM · Restricted Project
kbarton added a parent revision for D50989: Remove Darwin support from POWER backend.: D50988: Remove Darwin support from POWER backend..
Aug 20 2018, 12:26 PM
kbarton added a child revision for D50988: Remove Darwin support from POWER backend.: D50989: Remove Darwin support from POWER backend..
Aug 20 2018, 12:26 PM · Restricted Project
kbarton created D50989: Remove Darwin support from POWER backend..
Aug 20 2018, 12:25 PM
kbarton created D50988: Remove Darwin support from POWER backend..
Aug 20 2018, 12:20 PM · Restricted Project
kbarton added a reviewer for D50965: [PowerPC] Fix label address calculation for ppc64: sfertile.

I'm not overly familiar with this. I think @sfertile is more familiar with this, so I've added him as a reviewer.

Aug 20 2018, 10:40 AM

Jul 24 2018

kbarton updated the diff for D45308: [IPRA] Do not collect register usage information on functions that can be derefined.

Created a new function (isSafeForIPRA) to consistently check whether IPRA can be performed. This check is used in RegUsageInfoCollector as well as isSafeForNoCSROpt. I also went back to the original checks in isSafeForNoCSROpt to check for LocalLinkage.

Jul 24 2018, 2:52 AM · Restricted Project

Jul 17 2018

kbarton added inline comments to D45308: [IPRA] Do not collect register usage information on functions that can be derefined.
Jul 17 2018, 10:42 AM · Restricted Project

Jul 5 2018

kbarton added a comment to D45308: [IPRA] Do not collect register usage information on functions that can be derefined.

Thanks @vivekvpandya for getting back to me.
I'll work on updating the patch now. I think we're on the same page with the potential problems.
Essentially, there seems to be some assumptions that when EnableIIPRA is set, it will work properly and add additional information that can be used. Now, with the early exit due to isDefinitionExact, that is not necessarily the case. So, I'm trying to put a check in to validate that IPRA was successful before using the information. This way, if we extend the checks in IPRA in the future, we don't need to continually replicate them in other places that rely on IPRA being successful.

Jul 5 2018, 8:23 AM · Restricted Project

Jun 27 2018

kbarton added a comment to D45308: [IPRA] Do not collect register usage information on functions that can be derefined.

@vivekvpandya You're right - the change will allow noCSROpt to run on functions with external linkage, which is not correct.
I think what we really want here is the isSafeForNoCSROpt to check for the existing conditions (i.e., prior to this patch, when it looks for local linkage) and also whether IPRA was successful for this function. I added the isDefinitionExact() call, to try and replicate the necessary conditions for IPRA, but now I'm wondering if it would be better to query the PRUI and make sure it contains a valid RegMask for the given function. Does this seem reasonable to you?

Jun 27 2018, 1:01 PM · Restricted Project

Jun 25 2018

kbarton accepted D48550: [PowerPC] Fix incorrectly encoded wait instruction.

LGTM.

Jun 25 2018, 11:59 AM

Jun 6 2018

kbarton updated the diff for D45308: [IPRA] Do not collect register usage information on functions that can be derefined.

Added the isDefinitionExact check to isSafeForNoCSROpt method.
Updated the test case to use -print-regusage to check for exact register clobbers computed by IPRA.

Jun 6 2018, 7:16 PM · Restricted Project