Page MenuHomePhabricator

samtebbs (Sam Tebbs)
User

Projects

User does not belong to any projects.

User Details

User Since
May 31 2019, 2:34 AM (107 w, 6 d)

Recent Activity

Yesterday

samtebbs accepted D91921: [ARM] Introduce MVETRUNC ISel lowering.

That makes sense to me. It's worth adding a new node if it will help improve lowering for other instructions too. LGTM!

Wed, Jun 23, 10:03 AM · Restricted Project
samtebbs requested review of D104793: [ARM] Transform a floating-point to fixed-point conversion to a VCVT_fix.
Wed, Jun 23, 10:00 AM · Restricted Project

Mon, Jun 21

samtebbs committed rGbbe16b7af2d6: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix (authored by samtebbs).
[ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix
Mon, Jun 21, 6:24 AM
samtebbs closed D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.
Mon, Jun 21, 6:24 AM · Restricted Project

Fri, Jun 18

samtebbs updated the diff for D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.

Remove FracBits == ScalarBits - 1 check and add more tests

Fri, Jun 18, 9:07 AM · Restricted Project

Thu, Jun 17

samtebbs updated the diff for D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.

Remove !IsUnsigned check and TODO

Thu, Jun 17, 9:21 AM · Restricted Project

Wed, Jun 16

samtebbs added inline comments to D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.
Wed, Jun 16, 3:21 AM · Restricted Project

Tue, Jun 15

samtebbs updated the diff for D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.

Rename tryFMUL, use isa instead of dyn_cast and add more negative factor tests

Tue, Jun 15, 3:30 AM · Restricted Project
samtebbs added inline comments to D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.
Tue, Jun 15, 2:14 AM · Restricted Project

Mon, Jun 14

samtebbs added inline comments to D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.
Mon, Jun 14, 6:57 AM · Restricted Project
samtebbs updated the diff for D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.

Check if the VDUP operand is constant and do clang-format.

Mon, Jun 14, 6:43 AM · Restricted Project
samtebbs updated the diff for D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.

Rebase and check if FracBits == ScalarBits - 1 when not unsigned.

Mon, Jun 14, 6:02 AM · Restricted Project

Wed, Jun 9

samtebbs accepted D103704: [ARM] Extend narrow values to allow using truncating scatters.

Looks good to me. It's up to you if you would like to add a comment as mentioned in my reply.

Wed, Jun 9, 7:47 AM · Restricted Project
samtebbs updated the diff for D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.

Move to a function, add IsUnsigned check to fp inf, check bitcast element size, remove IEEEdouble(), make sure FracBits <= ScalarBits, add llvm_unreachable, move test file and use arm_aapcs_vfpcc.

Wed, Jun 9, 7:37 AM · Restricted Project
samtebbs added inline comments to D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.
Wed, Jun 9, 2:22 AM · Restricted Project

Tue, Jun 8

samtebbs accepted D103236: [ARM] Introduce t2WhileLoopStartTP.

Sweet, looks good.

Tue, Jun 8, 9:06 AM · Restricted Project
samtebbs accepted D103150: [ARM] Ensure instructions are simplified prior to GatherScatter lowering..

LGTM

Tue, Jun 8, 9:06 AM · Restricted Project
samtebbs accepted D103610: [ARM] Skip debug during vpt block creation.

Very nice

Tue, Jun 8, 9:04 AM · Restricted Project
samtebbs added inline comments to D103704: [ARM] Extend narrow values to allow using truncating scatters.
Tue, Jun 8, 9:03 AM · Restricted Project
samtebbs requested review of D103903: [ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix.
Tue, Jun 8, 8:53 AM · Restricted Project

Wed, Jun 2

samtebbs added inline comments to D103236: [ARM] Introduce t2WhileLoopStartTP.
Wed, Jun 2, 10:02 AM · Restricted Project

May 20 2021

samtebbs accepted D102747: [ARM] Allow findLoopPreheader to return headers with multiple loop successors.

We're go for committing after fixing the little nitpick in the comment :)

May 20 2021, 3:13 AM · Restricted Project
samtebbs abandoned D89800: [ARM][LowOverheadLoops] Don't generate a LOL if lr is redefined after the start.

Abandoning this for now as the code and logic this is based on has been improved and updated. I'll revisit it if it ends up still being an issue.

May 20 2021, 2:26 AM · Restricted Project
samtebbs added inline comments to D102747: [ARM] Allow findLoopPreheader to return headers with multiple loop successors.
May 20 2021, 2:23 AM · Restricted Project
samtebbs accepted D102620: [ARM] Fix the operand used for WLS in ARMLowOverheadLoops.

Nice correction, LGTM

May 20 2021, 2:11 AM · Restricted Project

Apr 29 2021

samtebbs added inline comments to D100094: [ARM] Simplification to ARMBlockPlacement Pass..
Apr 29 2021, 8:17 AM · Restricted Project
samtebbs added inline comments to D100094: [ARM] Simplification to ARMBlockPlacement Pass..
Apr 29 2021, 8:16 AM · Restricted Project

Mar 25 2021

samtebbs accepted D98413: [ARM] Revert WhileLoopStartLR to DoLoopStart.

Nice idea. LGTM

Mar 25 2021, 7:27 AM · Restricted Project
samtebbs accepted D97289: [ARM] Extend MVE lane interleaving to handle other non-instruction leaves.

Sorry for not looking at this earlier. It looks like a really good improvement.

Mar 25 2021, 7:25 AM · Restricted Project

Jan 15 2021

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.

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

Nice and clean 👍🏻

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

Nice 👍🏻

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

LGTM

Jan 15 2021, 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
Jan 15 2021, 7:45 AM
samtebbs closed D94780: [ARM][Block placement] Check the predecessor exists before processing it.
Jan 15 2021, 7:45 AM · Restricted Project
samtebbs requested review of D94780: [ARM][Block placement] Check the predecessor exists before processing it.
Jan 15 2021, 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.

Jan 15 2021, 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
Jan 15 2021, 6:00 AM
samtebbs closed D94691: [ARM] Don't run the block placement pass at O0.
Jan 15 2021, 6:00 AM · Restricted Project

Jan 14 2021

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.

Jan 14 2021, 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

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

Jan 13 2021

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
Jan 13 2021, 9:33 AM
samtebbs closed D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Jan 13 2021, 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.
Jan 13 2021, 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

Jan 13 2021, 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.
Jan 13 2021, 3:12 AM · Restricted Project

Jan 12 2021

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

Jan 12 2021, 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.
Jan 12 2021, 5:59 AM · Restricted Project

Jan 11 2021

samtebbs added inline comments to D92385: [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch.
Jan 11 2021, 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

Jan 11 2021, 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.

Jan 11 2021, 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

Jan 11 2021, 4:20 AM · Restricted Project

Jan 8 2021

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

LGTM

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

LGTM. Have you noticed any performance changes with this?

Jan 8 2021, 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

Jan 8 2021, 6:15 AM · Restricted Project

Jan 7 2021

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

Jan 6 2021

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.

Jan 6 2021, 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