Page MenuHomePhabricator

samtebbs (Sam Tebbs)
User

Projects

User does not belong to any projects.

User Details

User Since
May 31 2019, 2:34 AM (85 w, 3 d)

Recent Activity

Fri, Jan 15

samtebbs accepted D94392: [ARM] Add low overhead loops terminators to AnalyzeBranch.

I remember running into issues where analyzeBranch didn't know about LOL instructions. Thanks for updating it.

Fri, Jan 15, 8:28 AM · Restricted Project
samtebbs accepted D94394: [ARM] Align blocks that are not fallthough targets.

Nice and clean 👍🏻

Fri, Jan 15, 8:26 AM · Restricted Project
samtebbs accepted D94034: [ARM] Flatten identity shuffles through vqdmulh nodes.

Nice 👍🏻

Fri, Jan 15, 8:24 AM · Restricted Project
samtebbs accepted D94608: [ARM] Tail predication with constant loop bounds.

LGTM

Fri, Jan 15, 8:23 AM · Restricted Project
samtebbs committed rG1a497ae9b836: [ARM][Block placement] Check the predecessor exists before processing it (authored by samtebbs).
[ARM][Block placement] Check the predecessor exists before processing it
Fri, Jan 15, 7:45 AM
samtebbs closed D94780: [ARM][Block placement] Check the predecessor exists before processing it.
Fri, Jan 15, 7:45 AM · Restricted Project
samtebbs requested review of D94780: [ARM][Block placement] Check the predecessor exists before processing it.
Fri, Jan 15, 7:03 AM · Restricted Project
samtebbs added a comment to D94691: [ARM] Don't run the block placement pass at O0.

Should the pass itself call skipFunction in its runOnMachineFunction method? That's what handles skipping for optnone function and optbisect.

Fri, Jan 15, 6:00 AM · Restricted Project
samtebbs committed rG5e4480b6c0f0: [ARM] Don't run the block placement pass at O0 (authored by samtebbs).
[ARM] Don't run the block placement pass at O0
Fri, Jan 15, 6:00 AM
samtebbs closed D94691: [ARM] Don't run the block placement pass at O0.
Fri, Jan 15, 6:00 AM · Restricted Project

Thu, Jan 14

samtebbs added a comment to D94691: [ARM] Don't run the block placement pass at O0.

Yep, don't think it is useful or necessary to run this at O0.
LGTM.

Thu, Jan 14, 8:28 AM · Restricted Project
samtebbs updated the diff for D94691: [ARM] Don't run the block placement pass at O0.

Merge with if statement below

Thu, Jan 14, 8:28 AM · Restricted Project
samtebbs requested review of D94691: [ARM] Don't run the block placement pass at O0.
Thu, Jan 14, 7:52 AM · Restricted Project

Wed, Jan 13

samtebbs committed rG60fda8ebb6dc: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch (authored by samtebbs).
[ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch
Wed, Jan 13, 9:33 AM
samtebbs closed D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Wed, Jan 13, 9:33 AM · Restricted Project
samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Wed, Jan 13, 8:25 AM · Restricted Project
samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Punctuation and check for entry block

Wed, Jan 13, 7:56 AM · Restricted Project
samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Wed, Jan 13, 3:12 AM · Restricted Project

Tue, Jan 12

samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Fix erroneous format of a comment

Tue, Jan 12, 7:06 AM · Restricted Project
samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Tue, Jan 12, 5:59 AM · Restricted Project

Mon, Jan 11

samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Mon, Jan 11, 9:49 AM · Restricted Project
samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Check for new forwards LE branches and address feedback

Mon, Jan 11, 9:46 AM · Restricted Project
samtebbs added a comment to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Thanks for that Sjoerd, I agree with your examples and comments. I have changed the approach back to check for new backwards WLSs as before.

Mon, Jan 11, 4:21 AM · Restricted Project
samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Change the validation approach back to what it was before

Mon, Jan 11, 4:20 AM · Restricted Project

Fri, Jan 8

samtebbs added inline comments to D94034: [ARM] Flatten identity shuffles through vqdmulh nodes.
Fri, Jan 8, 6:49 AM · Restricted Project
samtebbs added inline comments to D91921: [ARM] Introduce MVETRUNC ISel lowering.
Fri, Jan 8, 6:38 AM · Restricted Project
samtebbs accepted D94260: [ARM] Update trunc costs.
Fri, Jan 8, 6:32 AM · Restricted Project
samtebbs added a comment to D94260: [ARM] Update trunc costs.

LGTM

Fri, Jan 8, 6:32 AM · Restricted Project
samtebbs accepted D94226: [ARM] Custom lower i1 vector truncates.

LGTM. Have you noticed any performance changes with this?

Fri, Jan 8, 6:30 AM · Restricted Project
samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Clean up

Fri, Jan 8, 6:15 AM · Restricted Project

Thu, Jan 7

samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Thu, Jan 7, 6:09 AM · Restricted Project

Wed, Jan 6

samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Use MachineLoopInfo. I have removed the fallthrough fixing test since it seems to be impossible to create the needed fallthrough and keep it as a valid MachineLoop.

Wed, Jan 6, 9:46 AM · Restricted Project

Dec 15 2020

samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Use INITIALIZE_PASS technique

Dec 15 2020, 5:43 AM · Restricted Project
samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Dec 15 2020, 3:24 AM · Restricted Project

Dec 14 2020

samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Dec 14 2020, 9:51 AM · Restricted Project
samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Fix incorrect branch opcodes

Dec 14 2020, 8:32 AM · Restricted Project
samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Dec 14 2020, 7:44 AM · Restricted Project
samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Move pass order and add copyright header

Dec 14 2020, 7:17 AM · Restricted Project
samtebbs accepted D92369: [ARM] Improve handling of empty VPT blocks in tail predicated loops.

Looks good to me!

Dec 14 2020, 1:39 AM · Restricted Project

Dec 10 2020

samtebbs updated the summary of D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Dec 10 2020, 2:41 AM · Restricted Project
samtebbs updated the summary of D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Dec 10 2020, 2:41 AM · Restricted Project

Dec 8 2020

samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Rename and move earlier in the pipeline.

Dec 8 2020, 6:10 AM · Restricted Project

Dec 3 2020

samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Fix tests

Dec 3 2020, 9:46 AM · Restricted Project

Dec 2 2020

samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Inline canMoveBasicBlock, update BB offsets and make fixFallthrough a lambda.

Dec 2 2020, 8:40 AM · Restricted Project
samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Dec 2 2020, 7:00 AM · Restricted Project
samtebbs updated the diff for D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

Use BBUtils to get BB offsets, loop over terminators instead of instructions and other clean-up.

Dec 2 2020, 4:29 AM · Restricted Project
samtebbs added a comment to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.

I have some high-level questions:

  • Are we fighting another optimisations here, some sort of loop-rotate or is this just MBP reshulffling blocks in a way that is not good for us?

Yeah MBP moves the loop blocks (preheader, body etc.) closer together but unfortunately moves the WLSs branch target above the WLS. So it does some good things but also some bad things. After looking at MBP I thought it would be simpler to make a target pass rather than juggle things around in MBP that could end up affecting other targets.

  • I know we don't nest WLSTPs for profitability reasons, but in theory we could. Not sure we need to check this though. But in general my impression is that some more test can be added, but perhaps you were still working on that.

I wasn't sure if it was possible or not, but thought I'd add the checks in there just in case. I'm OK with removing them if they definitely are unnecessary. I'm also working on testing a nested while loop, can you think of any other tests I should add?

  • I am wondering if some cost-modeling is required. For example, if the iteration count is very low, would that change things?

That is a good idea. It would be good to get an idea of the cycles saved by converting the while loop into a LOL compared to those needed by the branches that replace fallthrough.

Dec 2 2020, 3:31 AM · Restricted Project

Dec 1 2020

samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Dec 1 2020, 9:07 AM · Restricted Project
samtebbs added inline comments to D92369: [ARM] Improve handling of empty VPT blocks in tail predicated loops.
Dec 1 2020, 5:36 AM · Restricted Project
samtebbs updated the summary of D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Dec 1 2020, 5:23 AM · Restricted Project
samtebbs requested review of D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Dec 1 2020, 5:21 AM · Restricted Project

Nov 25 2020

samtebbs accepted D91938: [ARM] MVE vabd .

Very nice change, looks good to me.

Nov 25 2020, 3:42 AM · Restricted Project

Nov 20 2020

samtebbs accepted D91866: [ARM] Cleanup for the MVETailPrediction pass.

Nice, LGTM

Nov 20 2020, 6:06 AM · Restricted Project
samtebbs added inline comments to D91857: [ARM] Remove dead mov's in preheader of tail predicated loops.
Nov 20 2020, 6:04 AM · Restricted Project
samtebbs updated the diff for D89800: [ARM][LowOverheadLoops] Don't generate a LOL if lr is redefined after the start.

Rebase

Nov 20 2020, 5:54 AM · Restricted Project

Nov 19 2020

samtebbs committed rG8ecb015ed5ad: [ARM][LowOverheadLoops] Convert intermediate vpr use assertion to condition (authored by samtebbs).
[ARM][LowOverheadLoops] Convert intermediate vpr use assertion to condition
Nov 19 2020, 9:16 AM
samtebbs closed D91790: [ARM][LowOverheadLoops] Convert intermediate vpr use assertion to condition.
Nov 19 2020, 9:15 AM · Restricted Project
samtebbs updated the diff for D91790: [ARM][LowOverheadLoops] Convert intermediate vpr use assertion to condition.

Fix test ordering. This is an NFC so I will commit with the previous approval.

Nov 19 2020, 8:44 AM · Restricted Project
samtebbs requested review of D91790: [ARM][LowOverheadLoops] Convert intermediate vpr use assertion to condition.
Nov 19 2020, 5:40 AM · Restricted Project

Nov 18 2020

samtebbs added inline comments to D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 18 2020, 8:01 AM · Restricted Project
samtebbs added a comment to D91705: Fix unused variables in release build.

Thank you @goncharov and @kadircet

Nov 18 2020, 7:04 AM · Restricted Project
samtebbs committed rGda2e4728c71f: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks (authored by samtebbs).
[ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks
Nov 18 2020, 4:55 AM
samtebbs closed D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 18 2020, 4:54 AM · Restricted Project

Nov 17 2020

samtebbs updated the diff for D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.

Use std::any_of and hasVPRUse.

Nov 17 2020, 5:42 AM · Restricted Project
samtebbs added inline comments to D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 17 2020, 3:56 AM · Restricted Project
samtebbs updated the diff for D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.

Add another test case and format

Nov 17 2020, 3:21 AM · Restricted Project
samtebbs added inline comments to D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 17 2020, 3:20 AM · Restricted Project
samtebbs added inline comments to D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 17 2020, 2:25 AM · Restricted Project

Nov 16 2020

samtebbs updated the diff for D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.

Get VPR def when merging across blocks rather than keeping a pointer to the VCMP.

Nov 16 2020, 3:17 AM · Restricted Project

Nov 13 2020

samtebbs added inline comments to D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 13 2020, 2:54 AM · Restricted Project
samtebbs added inline comments to D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 13 2020, 2:52 AM · Restricted Project

Nov 12 2020

samtebbs updated the diff for D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.

Clean up tests

Nov 12 2020, 7:59 AM · Restricted Project
samtebbs added inline comments to D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 12 2020, 6:00 AM · Restricted Project
samtebbs updated the diff for D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.

Check for VPR use rather than predicate, pass VCMP as argument to ReplaceVCMPWithVPT, make nullptr the default VCMP value and remove impossible VPST vase.

Nov 12 2020, 6:00 AM · Restricted Project

Nov 11 2020

samtebbs updated the diff for D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.

Add more tests and check for instructions between the VCMP and VPST that use vpr.

Nov 11 2020, 8:33 AM · Restricted Project

Nov 10 2020

samtebbs added inline comments to D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 10 2020, 6:17 AM · Restricted Project

Nov 9 2020

samtebbs added a comment to D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.

Is it possible to write some tests that are hopefully simple but still tail predicated, and contain different kinds of vpt blocks with various instructions in various orders? It probably doesn't matter if the instructions are super sensible so long as they show the different sets of blocks with vcmps followed by predicated/unpredicated instructions.

Nov 9 2020, 8:05 AM · Restricted Project
samtebbs committed rG40a3f7e48d6b: [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT (authored by samtebbs).
[ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT
Nov 9 2020, 7:05 AM
samtebbs closed D90461: [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT.
Nov 9 2020, 7:04 AM · Restricted Project
samtebbs accepted D90964: [ARM] Remove kill flags between VCMP and insertion point.

LGTM! Will we need to make similar change for the combination that happens in the LowOverheadLoops pass as well?

Nov 9 2020, 2:01 AM · Restricted Project

Nov 6 2020

samtebbs added inline comments to D90461: [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT.
Nov 6 2020, 8:51 AM · Restricted Project
samtebbs updated the diff for D90461: [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT.

Don't merge a VCMP and a preceeding VPST.

Nov 6 2020, 8:51 AM · Restricted Project
samtebbs requested review of D90935: [ARM][LowOverheadLoops] Merge VCMP and VPST across VPT blocks.
Nov 6 2020, 6:12 AM · Restricted Project
samtebbs updated the diff for D90461: [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT.

Add a check for the VPR def at the VPST.

Nov 6 2020, 5:41 AM · Restricted Project

Nov 2 2020

samtebbs updated the diff for D90461: [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT.

Clean up the test.

Nov 2 2020, 5:26 AM · Restricted Project
samtebbs added a comment to D90591: [ARM] Introduce t2DoLoopStartTP.

Yeah I was wondering which way to go with that. The t2DoLoopStartTP is meant to mean "a t2DoLoopStart that is almost certainly going to become a DLSTP". A t2DoLoopStart are for all the low overhead loops that are not expected to change to tail predicated loop. That way we could treat them differently elsewhere in the pipeline if we need to.

Nov 2 2020, 5:04 AM · Restricted Project
samtebbs accepted D90439: [ARM] Treat memcpy/memset/memmove as call instructions for low overhead loops.

LGTM

Nov 2 2020, 5:00 AM · Restricted Project
samtebbs added a comment to D90591: [ARM] Introduce t2DoLoopStartTP.

The TP at the end of the name somewhat implies that this is only for tail predication, would it make sense to change t2DoLoopStart to take the extra register?

Nov 2 2020, 3:21 AM · Restricted Project
samtebbs added inline comments to D90461: [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT.
Nov 2 2020, 2:59 AM · Restricted Project

Oct 30 2020

samtebbs abandoned D89048: [ARM][LowOverheadLoops] Insert loop start at end of block in more cases.

The code that this change depends on has been reverted so I will close this and re-visit it once those changes have been re-worked.

Oct 30 2020, 8:25 AM · Restricted Project
samtebbs abandoned D89549: [ARM][LowOverheadLoops] Check live-out for InsertPt instead of Start.

The code that this change depends on has been reverted so I will delay close this and re-visit it once those changes have been re-worked.

Oct 30 2020, 8:25 AM · Restricted Project
samtebbs added a comment to D89800: [ARM][LowOverheadLoops] Don't generate a LOL if lr is redefined after the start.

Thanks for the review. I will delay working on this until @dmgreen 's lr patch is in as it affect fix this.

Oct 30 2020, 8:23 AM · Restricted Project
samtebbs requested review of D90461: [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT.
Oct 30 2020, 7:51 AM · Restricted Project

Oct 20 2020

samtebbs requested review of D89800: [ARM][LowOverheadLoops] Don't generate a LOL if lr is redefined after the start.
Oct 20 2020, 8:48 AM · Restricted Project

Oct 19 2020

samtebbs added inline comments to D89549: [ARM][LowOverheadLoops] Check live-out for InsertPt instead of Start.
Oct 19 2020, 3:27 AM · Restricted Project
samtebbs added a comment to D89549: [ARM][LowOverheadLoops] Check live-out for InsertPt instead of Start.

Can we add tests for this?

Oct 19 2020, 3:27 AM · Restricted Project

Oct 16 2020

samtebbs added inline comments to D89048: [ARM][LowOverheadLoops] Insert loop start at end of block in more cases.
Oct 16 2020, 6:31 AM · Restricted Project
samtebbs updated the diff for D89048: [ARM][LowOverheadLoops] Insert loop start at end of block in more cases.

Rebase on top of https://reviews.llvm.org/D89549 and format code.

Oct 16 2020, 6:31 AM · Restricted Project
samtebbs requested review of D89549: [ARM][LowOverheadLoops] Check live-out for InsertPt instead of Start.
Oct 16 2020, 6:18 AM · Restricted Project

Oct 9 2020

samtebbs added inline comments to D89048: [ARM][LowOverheadLoops] Insert loop start at end of block in more cases.
Oct 9 2020, 8:02 AM · Restricted Project