Page MenuHomePhabricator

critson (Carl Ritson)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 4 2018, 4:49 AM (116 w, 2 d)

Recent Activity

Sun, Nov 22

critson updated the diff for D91066: [SlotIndexes] Consider existing index range in insertMBBIntoMaps.

Ping

Sun, Nov 22, 4:55 PM · Restricted Project

Wed, Nov 11

critson added inline comments to D67767: [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic and live mask tracking.
Wed, Nov 11, 2:50 AM · Restricted Project

Tue, Nov 10

critson retitled D67767: [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic and live mask tracking from [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic to [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic and live mask tracking.
Tue, Nov 10, 7:17 PM · Restricted Project
critson updated the diff for D67767: [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic and live mask tracking.

Heavily rewritten:

  • Use/reuse single virtual register for live mask. This removes need for PHIs and live mask register tracking. Assumes WQM is running non-SSA. (Supporting non-SSA and SSA operation would bloat code.)
  • Live mask tracks all kills and demotes.
  • Live mask manipulations terminate shader if all lanes are killed, even in non-uniform control flow.
  • Move all kill lowering to WQM pass, this simplifies later passes and avoids duplication when updating live mask. Removes the need for "clean up" operations.
  • WQM pass always modifies shader if it has any kills or demotes, even if there is no WQM.
Tue, Nov 10, 7:15 PM · Restricted Project

Mon, Nov 9

critson committed rGfde8351743d5: [AMDGPU] Fix lowering of S_MOV_{B32,B64}_term (authored by critson).
[AMDGPU] Fix lowering of S_MOV_{B32,B64}_term
Mon, Nov 9, 7:35 PM
critson closed D90451: [AMDGPU] Fix lowering of S_MOV_{B32,B64}_term.
Mon, Nov 9, 7:35 PM · Restricted Project
critson updated the diff for D91064: [MachineBasicBlock] Fix update of live intervals in splitAt.
  • Add tests, but these depend on D91066
Mon, Nov 9, 7:12 PM · Restricted Project
critson requested review of D91066: [SlotIndexes] Consider existing index range in insertMBBIntoMaps.
Mon, Nov 9, 3:33 AM · Restricted Project
critson requested review of D91064: [MachineBasicBlock] Fix update of live intervals in splitAt.
Mon, Nov 9, 3:02 AM · Restricted Project

Sun, Nov 8

critson updated the diff for D88777: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader.
  • Address reviewer comments.
  • Rebase.
Sun, Nov 8, 2:46 AM · Restricted Project
critson updated the diff for D90451: [AMDGPU] Fix lowering of S_MOV_{B32,B64}_term.
  • Invert condition.
  • Add tests against a symbol.
Sun, Nov 8, 12:59 AM · Restricted Project

Sat, Nov 7

critson committed rG8e8a54c7e9e9: [AMDGPU] SIWholeQuadMode fix mode insertion when SCC always defined (authored by critson).
[AMDGPU] SIWholeQuadMode fix mode insertion when SCC always defined
Sat, Nov 7, 6:15 PM
critson closed D90997: [AMDGPU] SIWholeQuadMode fix mode insertion when SCC always defined.
Sat, Nov 7, 6:15 PM · Restricted Project

Fri, Nov 6

critson added inline comments to D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
Fri, Nov 6, 11:19 PM · Restricted Project
critson requested review of D90997: [AMDGPU] SIWholeQuadMode fix mode insertion when SCC always defined.
Fri, Nov 6, 11:18 PM · Restricted Project
critson added inline comments to D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
Fri, Nov 6, 5:14 AM · Restricted Project

Thu, Nov 5

critson added inline comments to D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
Thu, Nov 5, 4:10 AM · Restricted Project

Fri, Oct 30

critson requested review of D90451: [AMDGPU] Fix lowering of S_MOV_{B32,B64}_term.
Fri, Oct 30, 3:32 AM · Restricted Project

Wed, Oct 28

critson updated the diff for D88777: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader.
  • Remove restrictions on types of shader where early terminate can occur.
Wed, Oct 28, 4:36 AM · Restricted Project
critson abandoned D90293: [JumpThreading] Test thread-prob-1.ll requires asserts.

Superseded by 419168d9381959ec6850e9e87aff9d062b68ef4b

Wed, Oct 28, 3:29 AM · Restricted Project
critson requested review of D90293: [JumpThreading] Test thread-prob-1.ll requires asserts.
Wed, Oct 28, 3:12 AM · Restricted Project

Oct 27 2020

critson committed rG057934a6d7fa: [AMDGPU] Fix insert of SIPreAllocateWWMRegs in FastRegAlloc (authored by critson).
[AMDGPU] Fix insert of SIPreAllocateWWMRegs in FastRegAlloc
Oct 27 2020, 8:16 PM
critson closed D90236: [AMDGPU] Fix insert of SIPreAllocateWWMRegs in FastRegAlloc.
Oct 27 2020, 8:15 PM · Restricted Project
critson requested review of D90236: [AMDGPU] Fix insert of SIPreAllocateWWMRegs in FastRegAlloc.
Oct 27 2020, 8:12 AM · Restricted Project

Oct 26 2020

critson updated the diff for D88777: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader.
  • Rebase
Oct 26 2020, 8:07 PM · Restricted Project
critson committed rG7a880ab38892: [AMDGPU] Move WQM Pass after MI Scheduler (authored by critson).
[AMDGPU] Move WQM Pass after MI Scheduler
Oct 26 2020, 6:26 PM
critson closed D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
Oct 26 2020, 6:26 PM · Restricted Project

Oct 21 2020

critson added a comment to D89804: [AMDGPU] Fix off by one in assert.

Changed to use TableIdx.

Oct 21 2020, 3:14 AM · Restricted Project

Oct 20 2020

critson added inline comments to D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
Oct 20 2020, 11:15 PM · Restricted Project
critson updated the diff for D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
  • Rebase
  • Fix markDefs to iterate all operands of MI
  • Remove fix up for SI_ELSE as this is no longer required
  • Remove elimination of trivial SGPR to SGPR WWM copies (this adds cruft in atomic optimizer tests)
Oct 20 2020, 11:08 PM · Restricted Project
critson committed rG324a15ceade2: [AMDGPU][NFC] Fix missing size in comment (authored by critson).
[AMDGPU][NFC] Fix missing size in comment
Oct 20 2020, 7:40 PM
critson accepted D89804: [AMDGPU] Fix off by one in assert.

Thanks, I was going to make the same change, but you beat me to it.
Slight nit. since we use Width - 1 three times, for readability I think we should just declare a new variable for it (TableIdx?).

Oct 20 2020, 7:36 PM · Restricted Project
critson committed rGbe2afbd019de: [AMDGPU] Remove fix up operand from SI_ELSE (authored by critson).
[AMDGPU] Remove fix up operand from SI_ELSE
Oct 20 2020, 3:16 AM
critson closed D89644: [AMDGPU] Remove fix up operand from SI_ELSE.
Oct 20 2020, 3:15 AM · Restricted Project
critson committed rG6aabbeadae20: [AMDGPU][NFC] Tidy SIOptimizeExecMaskingPreRA for extensibility (authored by critson).
[AMDGPU][NFC] Tidy SIOptimizeExecMaskingPreRA for extensibility
Oct 20 2020, 1:23 AM
critson closed D89619: [AMDGPU][NFC] Tidy SIOptimizeExecMaskingPreRA for extensibility.
Oct 20 2020, 1:23 AM · Restricted Project

Oct 19 2020

critson added inline comments to D89619: [AMDGPU][NFC] Tidy SIOptimizeExecMaskingPreRA for extensibility.
Oct 19 2020, 7:06 PM · Restricted Project
critson updated the diff for D89619: [AMDGPU][NFC] Tidy SIOptimizeExecMaskingPreRA for extensibility.
  • Address review comments
Oct 19 2020, 7:05 PM · Restricted Project

Oct 18 2020

critson requested review of D89644: [AMDGPU] Remove fix up operand from SI_ELSE.
Oct 18 2020, 4:32 AM · Restricted Project
critson updated the diff for D89619: [AMDGPU][NFC] Tidy SIOptimizeExecMaskingPreRA for extensibility.
  • Consistently use Register type.
Oct 18 2020, 2:21 AM · Restricted Project

Oct 17 2020

critson updated the diff for D89619: [AMDGPU][NFC] Tidy SIOptimizeExecMaskingPreRA for extensibility.
  • Rebase
Oct 17 2020, 12:58 AM · Restricted Project
critson requested review of D89619: [AMDGPU][NFC] Tidy SIOptimizeExecMaskingPreRA for extensibility.
Oct 17 2020, 12:57 AM · Restricted Project

Oct 16 2020

critson added inline comments to D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
Oct 16 2020, 5:05 AM · Restricted Project

Oct 15 2020

critson committed rGb70cb5020416: [AMDGPU] Minimize number of s_mov generated by copyPhysReg (authored by critson).
[AMDGPU] Minimize number of s_mov generated by copyPhysReg
Oct 15 2020, 6:35 AM
critson closed D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.
Oct 15 2020, 6:35 AM · Restricted Project
critson updated the summary of D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.
Oct 15 2020, 1:26 AM · Restricted Project

Oct 14 2020

critson updated the diff for D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.
  • Remove peephole
  • Pre-commit test
Oct 14 2020, 11:36 PM · Restricted Project
critson committed rG75357ebc5017: [AMDGPU] Pre-commit test for D89187 (authored by critson).
[AMDGPU] Pre-commit test for D89187
Oct 14 2020, 11:30 PM
critson added a comment to D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.

How about splitting this change into two parts? Limit this change to generating mixes of 64- and 32-bit moves, and then separately consider what to do about those moves of registers where subregisters are overwritten immediately.

Oct 14 2020, 8:35 PM · Restricted Project
critson committed rG01549dd976fa: [AMDGPU] Base getSubRegFromChannel on TableGen data (authored by critson).
[AMDGPU] Base getSubRegFromChannel on TableGen data
Oct 14 2020, 4:26 AM
critson closed D89217: [AMDGPU] Base getSubRegFromChannel on TableGen data.
Oct 14 2020, 4:26 AM · Restricted Project
critson added inline comments to D89217: [AMDGPU] Base getSubRegFromChannel on TableGen data.
Oct 14 2020, 12:44 AM · Restricted Project
critson updated the diff for D89217: [AMDGPU] Base getSubRegFromChannel on TableGen data.
  • Use std::array for map array.
Oct 14 2020, 12:41 AM · Restricted Project
critson added inline comments to D89217: [AMDGPU] Base getSubRegFromChannel on TableGen data.
Oct 14 2020, 12:30 AM · Restricted Project

Oct 13 2020

critson added inline comments to D89217: [AMDGPU] Base getSubRegFromChannel on TableGen data.
Oct 13 2020, 6:45 PM · Restricted Project
critson updated the diff for D89217: [AMDGPU] Base getSubRegFromChannel on TableGen data.
  • Use std::array and tidy up initialisation.
  • Fix number of rows in table.
Oct 13 2020, 6:44 PM · Restricted Project

Oct 12 2020

critson added inline comments to D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
Oct 12 2020, 9:34 PM · Restricted Project
critson added a comment to D89217: [AMDGPU] Base getSubRegFromChannel on TableGen data.

Having addressed the comments could I get a second quick read before I submit?
Thanks.

Oct 12 2020, 7:54 PM · Restricted Project
critson updated the diff for D89217: [AMDGPU] Base getSubRegFromChannel on TableGen data.

Address reviews comments:

  • Fix initialiser to use AMDGPU::NoSubRegister and not memset.
  • Add comment on mapping array.
Oct 12 2020, 7:51 PM · Restricted Project
critson added inline comments to D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.
Oct 12 2020, 7:47 PM · Restricted Project
critson updated the diff for D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.

Address reviewer comments.

Oct 12 2020, 3:45 AM · Restricted Project
critson added inline comments to D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.
Oct 12 2020, 3:26 AM · Restricted Project

Oct 11 2020

critson abandoned D60772: [AMDGPU] Add optional bounds checking for scratch accesses.

This has been superseded by front-end work in graphics compiler.

Oct 11 2020, 10:34 PM · Restricted Project
critson requested review of D89217: [AMDGPU] Base getSubRegFromChannel on TableGen data.
Oct 11 2020, 10:14 PM · Restricted Project
critson added a comment to D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.

To motivate the peephole.
This pattern effects 2% of graphics shaders on GFX9, and nearly 7% on GFX10.
On average we save ~1.5 instructions per effected shader.
On some VulkanCTS tests the savings are much higher.
Given the relatively low gain, I assume it was not worth introducing a new peephole pass, and took this approach to address the duplicate s_mov instructions at the point of generation (when they cheapest to spot).

Oct 11 2020, 6:24 PM · Restricted Project

Oct 10 2020

critson updated the diff for D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.
  • Merge code generation loops to avoid needing to generate work list
  • Fix potential issue when all elements of copy are overwritten
  • Fix test file location error
Oct 10 2020, 11:09 PM · Restricted Project
critson requested review of D89187: [AMDGPU] Minimize number of s_mov generated by copyPhysReg.
Oct 10 2020, 7:10 AM · Restricted Project

Oct 8 2020

critson added inline comments to D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
Oct 8 2020, 7:12 PM · Restricted Project

Oct 7 2020

critson updated the diff for D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
  • Fix assumptions about SCC live intervals which are not valid late in compilation.
Oct 7 2020, 10:30 PM · Restricted Project

Oct 6 2020

critson updated the diff for D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
  • Address comments about pass insertion.
  • Fix bug in removal of trivial SGPR copies from WWM.
Oct 6 2020, 5:31 AM · Restricted Project

Oct 5 2020

critson committed rGc3e07a0018ec: [AMDGPU] SIInsertSkips: Refactor early exit block creation (authored by critson).
[AMDGPU] SIInsertSkips: Refactor early exit block creation
Oct 5 2020, 5:57 PM
critson closed D88775: [AMDGPU] SIInsertSkips: Refactor early exit block creation.
Oct 5 2020, 5:57 PM · Restricted Project
critson committed rGea9d6392f4a3: Fix reordering of instructions during VirtRegRewriter unbundling (authored by critson).
Fix reordering of instructions during VirtRegRewriter unbundling
Oct 5 2020, 5:44 PM
critson closed D88821: Fix reordering of instructions during VirtRegRewriter unbundling.
Oct 5 2020, 5:43 PM · Restricted Project
critson added inline comments to D88821: Fix reordering of instructions during VirtRegRewriter unbundling.
Oct 5 2020, 5:26 AM · Restricted Project
critson updated the diff for D88821: Fix reordering of instructions during VirtRegRewriter unbundling.

Pre-commit test.

Oct 5 2020, 4:36 AM · Restricted Project
critson committed rG707c3d4d4210: [AMDGPU][RegAlloc][SplitKit] Pre-commit test for D88821 (authored by critson).
[AMDGPU][RegAlloc][SplitKit] Pre-commit test for D88821
Oct 5 2020, 4:36 AM
critson requested review of D88821: Fix reordering of instructions during VirtRegRewriter unbundling.
Oct 5 2020, 4:17 AM · Restricted Project

Oct 3 2020

critson requested review of D88777: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader.
Oct 3 2020, 1:10 AM · Restricted Project
critson updated the diff for D88775: [AMDGPU] SIInsertSkips: Refactor early exit block creation.

Add missing variable reset.

Oct 3 2020, 12:39 AM · Restricted Project

Oct 2 2020

critson updated the diff for D88775: [AMDGPU] SIInsertSkips: Refactor early exit block creation.

Remove more unused code.

Oct 2 2020, 11:34 PM · Restricted Project
critson requested review of D88775: [AMDGPU] SIInsertSkips: Refactor early exit block creation.
Oct 2 2020, 10:48 PM · Restricted Project

Oct 1 2020

critson committed rG2ef9d21e1a3c: [AMDGPU] SIInsertSkips: Tidy block splitting to use splitAt (authored by critson).
[AMDGPU] SIInsertSkips: Tidy block splitting to use splitAt
Oct 1 2020, 7:12 PM
critson closed D88537: [AMDGPU] SIInsertSkips: Tidy block splitting to use splitAt.
Oct 1 2020, 7:11 PM · Restricted Project
critson committed rG5136f4748a2b: CodeGen: Fix livein calculation in MachineBasicBlock splitAt (authored by critson).
CodeGen: Fix livein calculation in MachineBasicBlock splitAt
Oct 1 2020, 6:45 PM
critson closed D88535: CodeGen: Fix livein calculation in MachineBasicBlock splitAt.
Oct 1 2020, 6:45 PM · Restricted Project
critson added a comment to D67767: [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic and live mask tracking.

Hi Carl, what's the status of this?

Oct 1 2020, 7:54 AM · Restricted Project

Sep 30 2020

critson updated the diff for D88535: CodeGen: Fix livein calculation in MachineBasicBlock splitAt.

Revise the fix to address the underlying problem in the original code.

Sep 30 2020, 6:44 PM · Restricted Project
critson added a comment to D88535: CodeGen: Fix livein calculation in MachineBasicBlock splitAt.

Fix in what way? How was it broken before?

Sep 30 2020, 8:53 AM · Restricted Project
critson added a comment to D88537: [AMDGPU] SIInsertSkips: Tidy block splitting to use splitAt.
Sep 30 2020, 12:50 AM · Restricted Project
critson requested review of D88537: [AMDGPU] SIInsertSkips: Tidy block splitting to use splitAt.
Sep 30 2020, 12:49 AM · Restricted Project
critson requested review of D88535: CodeGen: Fix livein calculation in MachineBasicBlock splitAt.
Sep 30 2020, 12:44 AM · Restricted Project

Sep 24 2020

critson accepted D87543: AMDGPU: Always split si_end_cf blocks.

SI_KILL_CLEANUP pseudos are inserted to mark points where control flow merges and hence the exec mask can be evaluated for early termination of a pixel shader.
These early terminations are added by SIInsertSkips which contains the logic for determining if it is safe to early terminate at a given point.

Sep 24 2020, 2:08 AM · Restricted Project

Sep 23 2020

critson committed rG1e0500d4f7f1: [AMDGPU] Consider all SGPR uses as unique in constant bus verify (authored by critson).
[AMDGPU] Consider all SGPR uses as unique in constant bus verify
Sep 23 2020, 6:54 PM
critson closed D87748: [AMDGPU] Consider all SGPR uses as unique in constant bus verify.
Sep 23 2020, 6:53 PM · Restricted Project

Sep 22 2020

critson added inline comments to D87748: [AMDGPU] Consider all SGPR uses as unique in constant bus verify.
Sep 22 2020, 6:26 PM · Restricted Project
critson updated the diff for D87748: [AMDGPU] Consider all SGPR uses as unique in constant bus verify.

Improve test.

Sep 22 2020, 5:47 AM · Restricted Project
critson added a comment to D88081: [AMDGPU] Move WQM Pass after MI Scheduler.

This passes VulkanCTS as much as stock LLVM does for graphics.
I still need to do some porting work so I can test performance impact.

Sep 22 2020, 3:06 AM · Restricted Project
critson requested review of D88081: [AMDGPU] Move WQM Pass after MI Scheduler.
Sep 22 2020, 3:04 AM · Restricted Project

Sep 17 2020

critson added a comment to D87748: [AMDGPU] Consider all SGPR uses as unique in constant bus verify.

Needs test

Sep 17 2020, 4:23 AM · Restricted Project