Page MenuHomePhabricator

critson (Carl Ritson)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 4 2018, 4:49 AM (123 w, 3 d)

Recent Activity

Yesterday

critson added inline comments to D94645: [AMDGPU] Fix llvm.amdgcn.init.exec and frame materialization.
Thu, Jan 14, 10:51 PM · Restricted Project
critson abandoned D67767: [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic and live mask tracking.

Split into D94746, D94747 and D94748.

Thu, Jan 14, 10:07 PM · Restricted Project
critson requested review of D94748: [AMDGPU] Tidy up conditional branches from early termination.
Thu, Jan 14, 10:05 PM · Restricted Project
critson requested review of D94747: [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic.
Thu, Jan 14, 10:05 PM · Restricted Project
critson requested review of D94746: [AMDGPU] Move kill lowering to WQM pass and add live mask tracking.
Thu, Jan 14, 10:04 PM · Restricted Project
critson added inline comments to D94645: [AMDGPU] Fix llvm.amdgcn.init.exec and frame materialization.
Thu, Jan 14, 4:09 PM · Restricted Project

Wed, Jan 13

critson requested review of D94645: [AMDGPU] Fix llvm.amdgcn.init.exec and frame materialization.
Wed, Jan 13, 7:06 PM · Restricted Project

Tue, Jan 12

critson committed rG790c75c16373: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader (authored by critson).
[AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader
Tue, Jan 12, 8:30 PM
critson closed D88777: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader.
Tue, Jan 12, 8:29 PM · Restricted Project

Mon, Jan 11

critson abandoned D91064: [MachineBasicBlock] Fix update of live intervals in splitAt.

Superseded by D94311.

Mon, Jan 11, 5:59 PM · Restricted Project
critson abandoned D91066: [SlotIndexes] Consider existing index range in insertMBBIntoMaps.

Superseded by D94311.

Mon, Jan 11, 5:59 PM · Restricted Project
critson accepted D94311: [SlotIndexes] Fix and simplify basic block splitting.

LGTM

Mon, Jan 11, 5:57 PM · Restricted Project
critson updated the diff for D88777: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader.
  • Address reviewer comments
  • Change tests to use more indicative S_AND_B32
Mon, Jan 11, 2:06 AM · Restricted Project
critson added a comment to D88777: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader.

Patch looks fine to me. Why is it useful to terminate on scc0 instead of scc1, or is it an arbitrary choice? Could you give a slightly more realistic example of how it would be used? Your tests all have:

S_CMP_EQ_U32 killed $sgpr0, 0, implicit-def $scc
SI_EARLY_TERMINATE_SCC0 implicit $scc, implicit $exec

which will terminate early if sgpr0 is not 0. Is the idea that this would be used when we're just about to AND sgpr0 into exec?

Mon, Jan 11, 1:53 AM · Restricted Project

Fri, Jan 8

critson updated the diff for D67767: [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic and live mask tracking.

Rebase

Fri, Jan 8, 2:51 AM · Restricted Project
critson updated the diff for D88777: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader.

Rebase

Fri, Jan 8, 1:02 AM · Restricted Project
critson updated the diff for D91064: [MachineBasicBlock] Fix update of live intervals in splitAt.

Rebase

Fri, Jan 8, 12:24 AM · Restricted Project

Thu, Jan 7

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

Rebase

Thu, Jan 7, 11:57 PM · Restricted Project

Fri, Dec 18

critson committed rG7722494834a8: [AMDGPU][NFC] Remove unused Hi16Elt definition (authored by critson).
[AMDGPU][NFC] Remove unused Hi16Elt definition
Fri, Dec 18, 3:39 AM
critson committed rGb58b440d19c8: [AMDGPU][NFC] Document high parameter of f16 interp intrinsics (authored by critson).
[AMDGPU][NFC] Document high parameter of f16 interp intrinsics
Fri, Dec 18, 3:00 AM
critson added a comment to D91066: [SlotIndexes] Consider existing index range in insertMBBIntoMaps.

Ping

Fri, Dec 18, 2:04 AM · Restricted Project

Dec 14 2020

critson committed rG62c246eda24c: [AMDGPU][NFC] Rename opsel/opsel_hi/neg_lo/neg_hi with suffix 0 (authored by critson).
[AMDGPU][NFC] Rename opsel/opsel_hi/neg_lo/neg_hi with suffix 0
Dec 14 2020, 3:03 AM
critson closed D93187: [AMDGPU][NFC] Rename opsel/opsel_hi/neg_lo/neg_hi with suffix 0.
Dec 14 2020, 3:02 AM · Restricted Project
critson committed rGaf4570cd3ab9: [AMDGPU][NFC] Remove unused VOP3Mods0Clamp (authored by critson).
[AMDGPU][NFC] Remove unused VOP3Mods0Clamp
Dec 14 2020, 3:01 AM
critson closed D93188: [AMDGPU][NFC] Remove unused VOP3Mods0Clamp.
Dec 14 2020, 3:01 AM · Restricted Project

Dec 13 2020

critson requested review of D93188: [AMDGPU][NFC] Remove unused VOP3Mods0Clamp.
Dec 13 2020, 5:45 PM · Restricted Project
critson requested review of D93187: [AMDGPU][NFC] Rename opsel/opsel_hi/neg_lo/neg_hi with suffix 0.
Dec 13 2020, 5:09 PM · Restricted Project

Dec 3 2020

critson added inline comments to D91066: [SlotIndexes] Consider existing index range in insertMBBIntoMaps.
Dec 3 2020, 7:01 PM · Restricted Project

Nov 22 2020

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

Ping

Nov 22 2020, 4:55 PM · Restricted Project

Nov 11 2020

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

Nov 10 2020

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.
Nov 10 2020, 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.
Nov 10 2020, 7:15 PM · Restricted Project

Nov 9 2020

critson committed rGfde8351743d5: [AMDGPU] Fix lowering of S_MOV_{B32,B64}_term (authored by critson).
[AMDGPU] Fix lowering of S_MOV_{B32,B64}_term
Nov 9 2020, 7:35 PM
critson closed D90451: [AMDGPU] Fix lowering of S_MOV_{B32,B64}_term.
Nov 9 2020, 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
Nov 9 2020, 7:12 PM · Restricted Project
critson requested review of D91066: [SlotIndexes] Consider existing index range in insertMBBIntoMaps.
Nov 9 2020, 3:33 AM · Restricted Project
critson requested review of D91064: [MachineBasicBlock] Fix update of live intervals in splitAt.
Nov 9 2020, 3:02 AM · Restricted Project

Nov 8 2020

critson updated the diff for D88777: [AMDGPU] Add SI_EARLY_TERMINATE_SCC0 for early terminating shader.
  • Address reviewer comments.
  • Rebase.
Nov 8 2020, 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.
Nov 8 2020, 12:59 AM · Restricted Project

Nov 7 2020

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

Nov 6 2020

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

Nov 5 2020

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

Oct 30 2020

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

Oct 28 2020

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.
Oct 28 2020, 4:36 AM · Restricted Project
critson abandoned D90293: [JumpThreading] Test thread-prob-1.ll requires asserts.

Superseded by 419168d9381959ec6850e9e87aff9d062b68ef4b

Oct 28 2020, 3:29 AM · Restricted Project
critson requested review of D90293: [JumpThreading] Test thread-prob-1.ll requires asserts.
Oct 28 2020, 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