Page MenuHomePhabricator

NickGuy (Nicholas Guy)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 23 2020, 7:14 AM (41 w, 6 d)

Recent Activity

Wed, Mar 24

NickGuy updated the diff for D97947: [AArch64] Force runtime unrolling for in-order scheduling models.

This will still unroll the remainders of vectorized loops, which will be quite common but generally unhelpful to unroll. Can we try to prevent unrolling there too?

It seems to be difficult to identify the remainder loop; Checking the llvm.loop.isvectorized attribute (like in ARMTargetTransformInfo) caused all gains to be negated, and caused a slight regression when compared to without this change. I've instead included a check for the llvm.loop.unroll.disable attribute, which was seen on the remainder loop IR. This check causes no difference to the benchmark numbers. (Though thinking about it now, that might be due to it being handled elsewhere, making this check redundant)

Wed, Mar 24, 8:53 AM · Restricted Project

Mar 8 2021

NickGuy updated the diff for D97947: [AArch64] Force runtime unrolling for in-order scheduling models.

I've done some more benchmarks with the provided suggestions;

Mar 8 2021, 5:11 AM · Restricted Project

Mar 4 2021

NickGuy requested review of D97947: [AArch64] Force runtime unrolling for in-order scheduling models.
Mar 4 2021, 6:40 AM · Restricted Project

Feb 8 2021

NickGuy committed rGcd880442ae66: [CodeGen][AArch64] Add TargetInstrInfo hook to modify the TailDuplicateSize… (authored by NickGuy).
[CodeGen][AArch64] Add TargetInstrInfo hook to modify the TailDuplicateSize…
Feb 8 2021, 5:28 AM
NickGuy closed D95631: [CodeGen][AArch64] Add TargetInstrInfo hook to modify the TailDuplicateSize default threshold.
Feb 8 2021, 5:28 AM · Restricted Project

Feb 5 2021

NickGuy updated the diff for D95631: [CodeGen][AArch64] Add TargetInstrInfo hook to modify the TailDuplicateSize default threshold.

If this version is working that's great, but check it's still OK.

Feb 5 2021, 7:47 AM · Restricted Project

Feb 3 2021

NickGuy updated the diff for D95631: [CodeGen][AArch64] Add TargetInstrInfo hook to modify the TailDuplicateSize default threshold.

just have a brief look if there are any meaningful codegen difference in e.g. TSVC/Searching-dbl/Searching-dbl.test.

Feb 3 2021, 7:32 AM · Restricted Project

Feb 2 2021

NickGuy updated the diff for D95631: [CodeGen][AArch64] Add TargetInstrInfo hook to modify the TailDuplicateSize default threshold.

I don't think I would mind merging this with D95632 to keep things in one place; don't think separating brings much value in this case.

Feb 2 2021, 8:01 AM · Restricted Project
NickGuy abandoned D95632: [AArch64] Specify Tail Duplication Size Override.

Abandoning this and combining it with D95631.

Feb 2 2021, 8:01 AM · Restricted Project

Jan 28 2021

NickGuy requested review of D95632: [AArch64] Specify Tail Duplication Size Override.
Jan 28 2021, 9:57 AM · Restricted Project
NickGuy requested review of D95631: [CodeGen][AArch64] Add TargetInstrInfo hook to modify the TailDuplicateSize default threshold.
Jan 28 2021, 9:57 AM · Restricted Project

Jan 18 2021

NickGuy committed rG16bf02c3a19d: Reland "[AArch64] Attempt to sink mul operands"" (authored by NickGuy).
Reland "[AArch64] Attempt to sink mul operands""
Jan 18 2021, 8:01 AM
NickGuy committed rGf5fcbe4e3c68: [AArch64] Further restricts when a dup(*ext) can be rearranged (authored by NickGuy).
[AArch64] Further restricts when a dup(*ext) can be rearranged
Jan 18 2021, 8:00 AM
NickGuy closed D94778: [AArch64] Further restricts when a dup(*ext) can be rearranged.
Jan 18 2021, 8:00 AM · Restricted Project
NickGuy updated the diff for D94778: [AArch64] Further restricts when a dup(*ext) can be rearranged.

Addressed comments

Jan 18 2021, 2:48 AM · Restricted Project

Jan 15 2021

NickGuy requested review of D94778: [AArch64] Further restricts when a dup(*ext) can be rearranged.
Jan 15 2021, 6:51 AM · Restricted Project

Jan 14 2021

NickGuy added a comment to D91271: [AArch64] Attempt to sink mul operands.

This broke compilation of some sources...

Jan 14 2021, 7:53 AM · Restricted Project

Jan 13 2021

NickGuy committed rGdda60035e9f0: [AArch64] Attempt to sink mul operands (authored by NickGuy).
[AArch64] Attempt to sink mul operands
Jan 13 2021, 7:24 AM
NickGuy closed D91271: [AArch64] Attempt to sink mul operands.
Jan 13 2021, 7:23 AM · Restricted Project
NickGuy updated the diff for D91271: [AArch64] Attempt to sink mul operands.

Addressed comments; modifying checks and updating tests.

Jan 13 2021, 6:00 AM · Restricted Project

Jan 11 2021

NickGuy updated the diff for D91271: [AArch64] Attempt to sink mul operands.
Jan 11 2021, 5:25 AM · Restricted Project

Jan 8 2021

NickGuy added inline comments to D94234: [AArch64] Fix crash caused by invalid vector element type.
Jan 8 2021, 4:08 AM · Restricted Project
NickGuy committed rGed23229a64ae: [AArch64] Fix crash caused by invalid vector element type (authored by NickGuy).
[AArch64] Fix crash caused by invalid vector element type
Jan 8 2021, 4:03 AM
NickGuy closed D94234: [AArch64] Fix crash caused by invalid vector element type.
Jan 8 2021, 4:03 AM · Restricted Project

Jan 7 2021

NickGuy updated the diff for D94234: [AArch64] Fix crash caused by invalid vector element type.

this needs a test?

Jan 7 2021, 8:47 AM · Restricted Project
NickGuy added a comment to D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

This commit caused a crash on our bots with a null LLVMTy at changeExtendedVectorElementType. Reduced case: https://godbolt.org/z/7ehffx

Jan 7 2021, 7:44 AM · Restricted Project
NickGuy requested review of D94234: [AArch64] Fix crash caused by invalid vector element type.
Jan 7 2021, 7:43 AM · Restricted Project
NickGuy updated the diff for D91271: [AArch64] Attempt to sink mul operands.

Made the return value respect whether any operands are to be sunk.

Jan 7 2021, 2:52 AM · Restricted Project

Jan 6 2021

NickGuy committed rG350247a93c07: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)) (authored by NickGuy).
[AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup))
Jan 6 2021, 8:10 AM
NickGuy closed D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Jan 6 2021, 8:10 AM · Restricted Project
NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Addressed comments, updating the checks and tests

Jan 6 2021, 4:59 AM · Restricted Project

Jan 5 2021

NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Added test case for non-splat shuffles

Jan 5 2021, 2:29 AM · Restricted Project

Dec 31 2020

NickGuy added inline comments to D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Dec 31 2020, 5:01 AM · Restricted Project
NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Dec 31 2020, 5:01 AM · Restricted Project
NickGuy accepted D93833: [AArch64] Handle any extend whilst lowering addw/addl/subw/subl.

I can't see any issues with this, LGTM

Dec 31 2020, 3:16 AM · Restricted Project

Dec 18 2020

NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Fixed incorrect error-handling

Dec 18 2020, 5:49 AM · Restricted Project
NickGuy added inline comments to D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Dec 18 2020, 3:02 AM · Restricted Project
NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Addressed Comments

Dec 18 2020, 2:56 AM · Restricted Project

Dec 16 2020

NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Addressed comments, and re-added a couple of "Unsupported combines" tests.

Dec 16 2020, 7:14 AM · Restricted Project

Dec 15 2020

NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Fixed formatting, and removed "Unsupported combines" tests as they were failing due to a separate issue (and contribute very little value to this patch)

Dec 15 2020, 3:08 AM · Restricted Project
NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Fixed broken commit

Dec 15 2020, 1:37 AM · Restricted Project

Dec 14 2020

NickGuy added inline comments to D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Dec 14 2020, 12:26 AM · Restricted Project
NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Dec 14 2020, 12:26 AM · Restricted Project

Dec 8 2020

NickGuy added inline comments to D91271: [AArch64] Attempt to sink mul operands.
Dec 8 2020, 3:01 AM · Restricted Project
NickGuy updated the diff for D91271: [AArch64] Attempt to sink mul operands.

Addressed comments, and rebased on top of the changes in the parent revision.

Dec 8 2020, 3:01 AM · Restricted Project

Dec 7 2020

NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Fixed more formatting issues (that were apparently missed by clang-format before?)

Dec 7 2020, 7:17 AM · Restricted Project
NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Can you run clang-format on the patch to make it more readable?

Done, sorry about that (Guess I should have another look at my pre-commit hooks)

Dec 7 2020, 2:25 AM · Restricted Project

Dec 2 2020

NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Removed redundant/useless debug prints that were erroneously included in the patch.

Dec 2 2020, 8:15 AM · Restricted Project
NickGuy added inline comments to D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Dec 2 2020, 7:48 AM · Restricted Project
NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

Addressed comments, and changed to be more targeted. The rearrangement will only be performed if the pattern feeds into a mul instruction, and only if the type combination is valid for smull/umull folding.

Dec 2 2020, 7:48 AM · Restricted Project

Nov 11 2020

NickGuy added inline comments to D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Nov 11 2020, 8:48 AM · Restricted Project
NickGuy updated the diff for D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).

This looks like two separate patches to me.

Nov 11 2020, 8:48 AM · Restricted Project
NickGuy requested review of D91271: [AArch64] Attempt to sink mul operands.
Nov 11 2020, 8:47 AM · Restricted Project
NickGuy added inline comments to D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Nov 11 2020, 7:05 AM · Restricted Project
NickGuy added inline comments to D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Nov 11 2020, 6:27 AM · Restricted Project
NickGuy requested review of D91255: [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)).
Nov 11 2020, 6:22 AM · Restricted Project

Nov 3 2020

NickGuy committed rG54d8627852a6: [AArch64] Redundant masks in downcast long multiply (authored by NickGuy).
[AArch64] Redundant masks in downcast long multiply
Nov 3 2020, 2:12 AM
NickGuy closed D89956: [AArch64] Redundant masks in downcast long multiply.
Nov 3 2020, 2:12 AM · Restricted Project

Nov 2 2020

NickGuy updated the diff for D89956: [AArch64] Redundant masks in downcast long multiply.

This pattern isn't needed I don't think

Nov 2 2020, 8:30 AM · Restricted Project
NickGuy updated the diff for D89956: [AArch64] Redundant masks in downcast long multiply.
Nov 2 2020, 7:32 AM · Restricted Project
NickGuy updated the diff for D89956: [AArch64] Redundant masks in downcast long multiply.
Nov 2 2020, 2:39 AM · Restricted Project

Oct 29 2020

NickGuy committed rGeb9fe24eaf2d: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz (authored by NickGuy).
[ARM] Fix IT block generation after Thumb2SizeReduce with -Oz
Oct 29 2020, 8:18 AM
NickGuy committed rG7b8de9fc6bce: [ARM] Add IT block generation test (authored by NickGuy).
[ARM] Add IT block generation test
Oct 29 2020, 8:18 AM
NickGuy closed D88496: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.
Oct 29 2020, 8:17 AM · Restricted Project
NickGuy closed D90398: [ARM] Add IT block generation test.
Oct 29 2020, 8:17 AM · Restricted Project
NickGuy requested review of D90398: [ARM] Add IT block generation test.
Oct 29 2020, 8:07 AM · Restricted Project
NickGuy updated the diff for D88496: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.

I appreciate that the history and context for this has been a bit obscured. Most of it can be gathered on the patch D83667

Oct 29 2020, 7:03 AM · Restricted Project
NickGuy updated the diff for D88496: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.

I think a MIR test would be better here.

Oct 29 2020, 5:07 AM · Restricted Project

Oct 26 2020

NickGuy added inline comments to D89956: [AArch64] Redundant masks in downcast long multiply.
Oct 26 2020, 7:09 AM · Restricted Project
NickGuy updated the diff for D89956: [AArch64] Redundant masks in downcast long multiply.

Looks nice to me. Is it worth adding mul (sext_inreg, sext i32) patterns too in case one operand is sext and the other is being masked? mul is commutative so I think it would only be two extra patterns, one for sext and one for zext.

Oct 26 2020, 7:08 AM · Restricted Project

Oct 22 2020

NickGuy requested review of D89956: [AArch64] Redundant masks in downcast long multiply.
Oct 22 2020, 6:25 AM · Restricted Project

Oct 21 2020

NickGuy committed rG9a2d2bedb730: Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate (authored by NickGuy).
Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate
Oct 21 2020, 3:53 AM
NickGuy closed D88494: Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate.
Oct 21 2020, 3:52 AM · Restricted Project
NickGuy updated the diff for D88496: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.

Rebased atop changes to https://reviews.llvm.org/D88494

Oct 21 2020, 3:20 AM · Restricted Project
NickGuy retitled D88494: Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate from Add "IncludeRemovable" parameter to TargetInstrInfo::DefinesPredicate to Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate.
Oct 21 2020, 2:24 AM · Restricted Project

Oct 19 2020

NickGuy updated the diff for D88494: Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate.

I'm a little concerned IfConversion isn't really prepared to deal with the distinction here: in some cases, if conversion doesn't predicate all the instructions in the if-converted block.

Oct 19 2020, 11:02 AM · Restricted Project

Oct 12 2020

NickGuy added a comment to D88494: Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate.

Do we really need the boolean to default to false? There are only two callers, as far as I can tell.

Oct 12 2020, 3:18 AM · Restricted Project

Sep 29 2020

NickGuy added a reviewer for D88494: Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate: efriedma.
Sep 29 2020, 8:24 AM · Restricted Project
NickGuy requested review of D88496: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.
Sep 29 2020, 8:23 AM · Restricted Project
NickGuy requested review of D88494: Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate.
Sep 29 2020, 8:21 AM · Restricted Project

Aug 14 2020

NickGuy added a comment to D83667: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.

Looks like we've lost access to https://crbug.com/1114852, so can't access the build repro. Is this something you can sort out for us?

Aug 14 2020, 12:32 AM · Restricted Project

Aug 13 2020

NickGuy added a comment to D83667: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.

Hi @akhuang, thanks for bringing this up.

Aug 13 2020, 1:16 AM · Restricted Project

Aug 10 2020

NickGuy accepted D85638: [ARM] Unrestrict Armv8-a IT when at minsize.

LGTM, if no one else has any issues.

Aug 10 2020, 5:51 AM · Restricted Project
NickGuy added a comment to D85638: [ARM] Unrestrict Armv8-a IT when at minsize.

Source changes look good to me, just a few test-related points to address.

Aug 10 2020, 5:11 AM · Restricted Project

Aug 3 2020

NickGuy committed rG18279a54b5d3: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz (authored by NickGuy).
[ARM] Fix IT block generation after Thumb2SizeReduce with -Oz
Aug 3 2020, 5:21 AM
NickGuy closed D83667: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.
Aug 3 2020, 5:20 AM · Restricted Project
NickGuy updated the diff for D83667: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.

Addressed comments, and rebased to include D84653 (Which handles the IT-block instruction legality)

Aug 3 2020, 1:17 AM · Restricted Project

Jul 13 2020

NickGuy created D83667: [ARM] Fix IT block generation after Thumb2SizeReduce with -Oz.
Jul 13 2020, 3:36 AM · Restricted Project

Jul 2 2020

NickGuy committed rGdc8e4d856615: [ARM] Rearrange SizeReduction when using -Oz (authored by NickGuy).
[ARM] Rearrange SizeReduction when using -Oz
Jul 2 2020, 1:34 AM
NickGuy closed D82439: [ARM] Rearrange SizeReduction when using -Oz.
Jul 2 2020, 1:34 AM · Restricted Project

Jul 1 2020

NickGuy updated the diff for D82439: [ARM] Rearrange SizeReduction when using -Oz.

Updates some comments. NFC when compared to prior diffs

Jul 1 2020, 2:07 AM · Restricted Project

Jun 26 2020

NickGuy updated the diff for D82439: [ARM] Rearrange SizeReduction when using -Oz.

Addressing inline comments

Jun 26 2020, 5:24 AM · Restricted Project

Jun 24 2020

NickGuy updated the diff for D82439: [ARM] Rearrange SizeReduction when using -Oz.

Reworded/improved summary, and included full patch context

Jun 24 2020, 5:54 AM · Restricted Project
NickGuy updated the summary of D82439: [ARM] Rearrange SizeReduction when using -Oz.
Jun 24 2020, 1:34 AM · Restricted Project
NickGuy created D82439: [ARM] Rearrange SizeReduction when using -Oz.
Jun 24 2020, 1:02 AM · Restricted Project