kbarton (Kit Barton)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Mon, Aug 27

kbarton committed rL340795: [PPC] Remove Darwin support from POWER backend..
[PPC] Remove Darwin support from POWER backend.
Mon, Aug 27, 6:19 PM
kbarton committed rC340770: [PPC] Remove Darwin support from POWER backend..
[PPC] Remove Darwin support from POWER backend.
Mon, Aug 27, 12:55 PM
kbarton committed rL340770: [PPC] Remove Darwin support from POWER backend..
[PPC] Remove Darwin support from POWER backend.
Mon, Aug 27, 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
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
kbarton added a dependency for D50989: Remove Darwin support from POWER backend.: D50988: Remove Darwin support from POWER backend..
Aug 20 2018, 12:26 PM
kbarton added a dependent revision for D50988: Remove Darwin support from POWER backend.: D50989: Remove Darwin support from POWER backend..
Aug 20 2018, 12:26 PM
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
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

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

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

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

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
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

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

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
kbarton added a comment to D32762: [Atomic] Remove IsStore/IsLoad in the interface, and pass the instruction instead. NFC..

D32763 only handles the trailing fences. Is there going to be another patch that deals with the leading fences as well?

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

Mar 1 2017

kbarton updated subscribers of D29750: [PPC] Enable -fomit-frame-pointer by default for PPC.
Mar 1 2017, 11:00 AM
kbarton updated subscribers of D29881: [PPC] Reduce stack frame size by allocating parameter area on an on-demand basis for ELFv2 ABI.
Mar 1 2017, 10:45 AM
kbarton updated subscribers of D30081: [PPC] Eliminate more compare instructions using record-form operation.
Mar 1 2017, 10:43 AM

Feb 8 2017

kbarton accepted D28249: Improve scheduling with branch coalescing.

Aside from a couple minor comments, this LGTM.

Feb 8 2017, 12:10 PM

Feb 1 2017

kbarton committed rL293769: [PowerPC] Fix sjlj pseduo instructions to use G8RC_NOX0 register class.
[PowerPC] Fix sjlj pseduo instructions to use G8RC_NOX0 register class
Feb 1 2017, 6:45 AM
kbarton closed D29289: [PowerPC] pseudo instruction EH_SjLj_LongJmp64 requires G8RC_NOX0 register by committing rL293769: [PowerPC] Fix sjlj pseduo instructions to use G8RC_NOX0 register class.
Feb 1 2017, 6:45 AM

Jan 13 2017

kbarton accepted D23630: [PPC] Expand ISEL instruction into if-then-else sequence.

Aside from updating two comments, this LGTM.

Jan 13 2017, 9:51 AM

Jan 11 2017

kbarton added inline comments to D23630: [PPC] Expand ISEL instruction into if-then-else sequence.
Jan 11 2017, 11:27 AM

Jan 4 2017

kbarton added a comment to D27251: [PPC] some bugs mainly about sign problem fixed in altivec.h.

Sorry, I don't have time to go through the entire patch in detail right now. But I did notice several places where the lines are too long, which need to get fixed.

Jan 4 2017, 12:03 PM
kbarton added a comment to D23630: [PPC] Expand ISEL instruction into if-then-else sequence.

There are still a few things that need to get cleaned up.

Jan 4 2017, 11:51 AM

Dec 14 2016

kbarton added inline comments to D23630: [PPC] Expand ISEL instruction into if-then-else sequence.
Dec 14 2016, 8:33 PM

Dec 1 2016

kbarton added a comment to D26817: [APFloat] Implement PPCDoubleDouble add and subtract..

I looked through this, but my review is mostly superficial as I don't have the background to be able to comment on the logic here.

Dec 1 2016, 10:01 AM
kbarton accepted D27231: [PowerPC] Fix logic dealing with nop after calls (and tail-call eligibility).

Aside from some minor comments, this LGTM.

Dec 1 2016, 9:33 AM
kbarton requested changes to D27251: [PPC] some bugs mainly about sign problem fixed in altivec.h.

Please make explicit the signed for the parameters to the functions you are changing and remove unnecessary casts. I marked the first few that I found, but stopped marking them after the first several.

Dec 1 2016, 9:14 AM
kbarton requested changes to D23630: [PPC] Expand ISEL instruction into if-then-else sequence.

Need to address Hal's comments and post a subsequent patch. Thanks.

Dec 1 2016, 8:16 AM
kbarton added a comment to D23630: [PPC] Expand ISEL instruction into if-then-else sequence.

I've been thinking about how difficult it might be to handle the case where multiple isels use the same condition. I don't think it would be too difficult to support this: As you iterate through the isels in each block, keep track of the true block, false block and condition for the last expanded isel. If this isel has the same condition as the last one, then scan between them to make sure that nothing defines this isel's input registers in between the two isels and that this isel does not depend on the last one. If that's true, then insert the generated instructions into the blocks from the last isel instead of making new ones.

Dec 1 2016, 8:12 AM

Nov 22 2016

kbarton accepted D26546: [PPC] Add vec_insert4b/vec_extract4b to altivec.h.

LGTM, but I'd like @nemanjai to have a quick look at the builtin_vsx_insertword and builtin_vsx_extractuword too.

Nov 22 2016, 2:28 PM
kbarton accepted D26861: [POWERPC][LE] prevent vxs load and store from expanding to lxvd2x/xxswapd and xxswapd/stxvd2x for aligned vectors.

LGTM

Nov 22 2016, 10:53 AM

Nov 21 2016

kbarton requested changes to D23630: [PPC] Expand ISEL instruction into if-then-else sequence.

There are some things that need to get cleaned up.

Nov 21 2016, 1:32 PM
kbarton accepted D26066: [PowerPC] Improvements for BUILD_VECTOR Vol. 4.

LGTM

Nov 21 2016, 11:55 AM

Nov 18 2016

kbarton requested changes to D26861: [POWERPC][LE] prevent vxs load and store from expanding to lxvd2x/xxswapd and xxswapd/stxvd2x for aligned vectors.

The patterns for the int_ppc_vsx_lxvw4x and int_ppc_vsx_stxvw4x are still here.
These patterns should be intercepted and dealt with earlier, but if they are not they will match here and end up generating correct code. Can you please remove these patterns for LE. That way if they survive to this point, the program should fail to compile instead of generating incorrect code.

Nov 18 2016, 11:12 AM
kbarton accepted D26544: [PPC] support for arithmetic builtins in the FE.

LGTM

Nov 18 2016, 10:25 AM

Nov 15 2016

kbarton requested changes to D26066: [PowerPC] Improvements for BUILD_VECTOR Vol. 4.
Nov 15 2016, 3:17 PM
kbarton added a comment to D26546: [PPC] Add vec_insert4b/vec_extract4b to altivec.h.

Did you upload a new patch? The diff doesn't appear to change for me.

Nov 15 2016, 6:09 AM
kbarton requested changes to D26544: [PPC] support for arithmetic builtins in the FE.
Nov 15 2016, 6:03 AM
kbarton added a comment to D26544: [PPC] support for arithmetic builtins in the FE.

There are several inline comments that need to be addressed.
I also think it's worthwhile putting a comment at the top of the review indicating the (assumed) semantics for the vec_sube and vec_subec instructions that are being implemented (i.e., the behaviour mimics the vec_subeuqm instructions and thus uses one's compliment plus the carry)

Nov 15 2016, 6:03 AM

Nov 12 2016

kbarton added inline comments to D26546: [PPC] Add vec_insert4b/vec_extract4b to altivec.h.
Nov 12 2016, 11:22 PM
kbarton accepted D26551: [Power9] Add patterns for vnegd, vnegw.

LGTM

Nov 12 2016, 9:38 PM
kbarton accepted D26547: [PPC] add intrinsics mapping to the extractuw/insertw instructions.

LGTM

Nov 12 2016, 6:37 PM

Nov 11 2016

kbarton accepted D26536: [PPC] Add intrinsic mapping to the xscvhpsp instruction (VSX Scalar Convert Half-Precision to Single-Precision).

LGTM

Nov 11 2016, 1:48 PM
kbarton accepted D26534: [PPC] add altivec.h functions for converting a vector of half precision to a vector of single precision.

LGTM

Nov 11 2016, 1:45 PM
kbarton accepted D26520: [PowerPC] Implement BE VSX load/store builtins - llvm portion..

LGTM

Nov 11 2016, 1:43 PM
kbarton accepted D26519: [PowerPC] Implement BE VSX load/store builtins - clang portion..

LGTM

Nov 11 2016, 1:38 PM

Nov 10 2016

kbarton accepted D25912: [PowerPC] Improvements for BUILD_VECTOR Vol. 1.

LGTM

Nov 10 2016, 1:01 PM
kbarton added inline comments to D25912: [PowerPC] Improvements for BUILD_VECTOR Vol. 1.
Nov 10 2016, 11:54 AM
kbarton accepted D25221: [PPC][DAGCombine] Convert SETCC to subtract when the result is zero extended.

Aside from some minor formatting of comments, this LGTM.

Nov 10 2016, 11:46 AM
kbarton accepted D26479: [PowerPC] Implement remaining permute builtins in altivec.h - Clang portion.

LGTM

Nov 10 2016, 11:17 AM
kbarton accepted D26480: [PowerPC] Implement remaining vector permute builtins in altivec.h - LLVM portion.

LGTM

Nov 10 2016, 11:17 AM

Nov 9 2016

kbarton accepted D26023: [PowerPC] Improvements for BUILD_VECTOR Vol. 3.

One minor question, more for my own curiosity, that we can likely address offline. Aside from that, LGTM.

Nov 9 2016, 12:32 PM
kbarton added inline comments to D25912: [PowerPC] Improvements for BUILD_VECTOR Vol. 1.
Nov 9 2016, 11:45 AM

Nov 8 2016

kbarton accepted D26304: [Power9] vector load/store with length - clang portion.

With the suggestions above, this LGTM.

Nov 8 2016, 10:36 AM
kbarton accepted D26308: [PowerPC] Add vector conversion builtins to altivec.h - clang portion.

LGTM

Nov 8 2016, 10:34 AM
kbarton accepted D26307: [PowerPC] Add vector conversion builtins to altivec.h - LLVM portion.

LGTM

Nov 8 2016, 10:18 AM
kbarton accepted D26282: [PowerPC] Implement plain VSX load/store builtins..

LGTM

Nov 8 2016, 9:52 AM

Nov 7 2016

kbarton accepted D26305: [Power9] vector load/store with length - llvm portion.

LGTM

Nov 7 2016, 8:07 PM
kbarton accepted D26272: [PPC] add intrinsics for vector extract exponent/vector extract significand/vector test data class .

LGTM

Nov 7 2016, 7:51 PM
kbarton accepted D26271: [PPC] add extract significand/ extract exponent/test data class for vector float and vector double -- clang portion.

LGTM

Nov 7 2016, 7:48 PM
kbarton accepted D26160: [PowerPC] Implement remaining vector comparison builtins.

LGTM

Nov 7 2016, 7:46 PM

Oct 31 2016

kbarton requested changes to D26023: [PowerPC] Improvements for BUILD_VECTOR Vol. 3.

I think the loop on line 10619 needs to be reworked a bit (or I don't understand what it's trying to do).

Oct 31 2016, 6:38 PM
kbarton added a comment to D25980: [PowerPC] Improvements for BUILD_VECTOR Vol. 2.

Aside from some nits about comments and formatting this LGTM.

Oct 31 2016, 5:57 PM