Page MenuHomePhabricator
Feed Advanced Search

Tue, Jul 16

kbarton added a reviewer for D61249: [NFC] Refactor the systemZ scheduler strategy to adapt with the new schedule state forwarding infrastructure: uweigand.
Tue, Jul 16, 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.

Tue, Jul 16, 6:35 AM · Restricted Project

Mon, Jul 15

kbarton updated the diff for D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.
  • Rename InvalidTripCount to UnknownTripCount as per review comments.
Mon, Jul 15, 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).
Mon, Jul 15, 1:14 PM · Restricted Project

Thu, Jun 27

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

Wed, Jun 26

kbarton added reviewers for D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter: etiotto, Whitney.
Wed, Jun 26, 2:30 PM · Restricted Project
kbarton added reviewers for D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter: jdoerfert, Meinersbur, dmgreen.
Wed, Jun 26, 2:30 PM · Restricted Project
kbarton created D63844: [LoopFusion] Extend use of OptimizationRemarkEmitter.
Wed, Jun 26, 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
kbarton added a comment to D45308: [IPRA] Do not collect register usage information on functions that can be derefined.

Change looks good to me. But please fix the new test case as suggested by @nemanjai
In this new test do you see improvement in register allocation due to IPRA? If test-case does not show any benefit due to IPRA then it is not suitable test for this patch.
Also I hope this patch is also tested with other architecture which have LIT based test-cases for IPRA. It is very unlikely that such test-case will have function with linkage type which return true for isInterposableLinkage() but if such case is there then this change may break such tests.

Jun 6 2018, 7:06 PM · Restricted Project

Apr 4 2018

kbarton created D45308: [IPRA] Do not collect register usage information on functions that can be derefined.
Apr 4 2018, 7:51 PM · Restricted Project

Oct 24 2017

kbarton accepted D34160: [Power9] Exploit vinserth instruction.

LGTM

Oct 24 2017, 3:27 PM
kbarton added inline comments to D39173: [MachineCSE] Add new callback for is caller preserved or constant physregs..
Oct 24 2017, 6:52 AM

Oct 23 2017

kbarton accepted D34630: [Power9] Add additional patterns to recognize and transform insertelt/extractelt to vinsert[h|b]/vextractu[h|b] instructions..

LGTM

Oct 23 2017, 8:07 PM
kbarton added inline comments to D34160: [Power9] Exploit vinserth instruction.
Oct 23 2017, 8:03 PM
kbarton added inline comments to D39173: [MachineCSE] Add new callback for is caller preserved or constant physregs..
Oct 23 2017, 6:46 AM

Aug 22 2017

kbarton accepted D34757: [PowerPC] better instruction selection for OR (XOR) with a 32-bit immediate.

LGTM

Aug 22 2017, 1:43 PM
kbarton accepted D33574: PPC: Verify that branch fixups fit within the range..

LGTM

Aug 22 2017, 1:40 PM
kbarton requested changes to D34630: [Power9] Add additional patterns to recognize and transform insertelt/extractelt to vinsert[h|b]/vextractu[h|b] instructions..

Did @nemanjai comment about the vector extracts get addressed?

Aug 22 2017, 1:36 PM
kbarton accepted D32776: [PowerPC] Update branch coalescing to be a PowerPC specific pass.

I would change the summary of this review to reflect the fact we are moving this pass back to the PPC target.
Aside from that, this LGTM.

Aug 22 2017, 1:26 PM
kbarton accepted D34497: [Power9] Exploit vinsertb instruction.

Aside from some minor changes to the comments, this LGTM.

Aug 22 2017, 1:20 PM
kbarton committed rL311486: [Docs] Update release notes for PPC.
[Docs] Update release notes for PPC
Aug 22 2017, 12:57 PM

Jul 10 2017

kbarton accepted D34337: [PPC] Fix two bugs in frame lowering..

LGTM. Just some minor updates in the comments.

Jul 10 2017, 9:15 AM

Jun 13 2017

kbarton committed rL305309: Test commit - NFC..
Test commit - NFC.
Jun 13 2017, 10:36 AM

Jun 12 2017

kbarton accepted D34092: [PPC] Enhance altivec conversion function macros implementation..

LGTM

Jun 12 2017, 12:53 PM
kbarton accepted D33690: [PowerPC] Match vec_revb builtins to P9 instructions..

LGTM

Jun 12 2017, 11:04 AM

Jun 5 2017

kbarton added a comment to D32536: Extend memcpy expansion in Transform/Utils to handle wider operand types..

I'm OK with this patch and then a follow-up patch to enable the new behaviour by default.
@arsenm Are you OK with this approach or do you prefer a different approach?

Jun 5 2017, 11:30 AM
kbarton added a comment to D32998: [SROA] enable splitting for non-whole-alloca loads and stores.

This looks OK to me, but I don't have enough knowledge of SROA to accept this.

Jun 5 2017, 11:17 AM
kbarton requested changes to D33715: [PPC] exploit rotate-left-then-mask-insert instructions for bitfield insert.

If I understand this correctly, you're trying to use the tryBitfieldInsert before the tryBitPermutation function because you can get cleaner code out of some cases of tryBitfieldInsert. However, you only want to use the tryBitfieldInsert on some cases, not on all. Is this correct?
If so, I think it makes sense to refactor the tryBitfieldInsert to focus on the specific cases you want to try and identify and then call the existing tryBitPermutation and the remaining tryBitfieldInsert afterwards. There may be some code duplication as a result (hopefully that can be minimal) but the logic will be easier to understand.

Jun 5 2017, 11:12 AM
kbarton added inline comments to D33690: [PowerPC] Match vec_revb builtins to P9 instructions..
Jun 5 2017, 10:54 AM
kbarton accepted D33519: [PPC] Lower llvm.ppc.cfence(constant) to no-op..

LGTM.

Jun 5 2017, 10:39 AM
kbarton added inline comments to D33574: PPC: Verify that branch fixups fit within the range..
Jun 5 2017, 10:35 AM

May 25 2017

kbarton accepted D33482: [PPC] Fix assertion failure during binary encoding with -mcpu=pwr9 .

Aside from a spelling mistake, LGTM.

May 25 2017, 3:35 PM
kbarton accepted D33510: [Power9] Exploit vector integer extend instructions.

LGTM

May 25 2017, 3:04 PM
kbarton added inline comments to D33519: [PPC] Lower llvm.ppc.cfence(constant) to no-op..
May 25 2017, 2:51 PM
kbarton added inline comments to D33404: [PowerPC] Fix a performance bug for PPC::XXPERMDI..
May 25 2017, 11:23 AM

May 16 2017

kbarton accepted D32763: [PPC] Lower load acquire/seq_cst trailing fence to cmp + bne + isync..

LGTM.
Thanks for adding the additional test case!

May 16 2017, 12:58 PM

May 12 2017

kbarton added inline comments to D32763: [PPC] Lower load acquire/seq_cst trailing fence to cmp + bne + isync..
May 12 2017, 12:55 PM

May 4 2017

kbarton accepted D32776: [PowerPC] Update branch coalescing to be a PowerPC specific pass.

Aside from two minor comments, this LGTM.
Please make sure to update the release notes when this gets committed.

May 4 2017, 8:04 PM
kbarton added inline comments to D32774: CodeGen: Power: Add lowering for shifts of v1i128..
May 4 2017, 7:55 PM
kbarton accepted D32781: [PowerPC] Implement vec_xxsldwi and vec_xxpermdi builtins - llvm portion..

Please add the PR that this problem is addressing to the summary.

May 4 2017, 7:49 PM