vpykhtin (Valery Pykhtin)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 28 2016, 8:30 AM (73 w, 1 d)

Recent Activity

Tue, Jun 20

vpykhtin accepted D34291: [AMDGPU] Fix illegal shrink of V_SUBB_U32 and V_ADDC_U32.

LGTM.

Tue, Jun 20, 7:42 AM
vpykhtin accepted D34300: [AMDGPU] simplify add x, *ext (setcc) => addc|subb x, 0, setcc.

LGTM.

Tue, Jun 20, 3:31 AM
vpykhtin accepted D34374: [AMDGPU] Combine add and adde, sub and sube.

LGTM.

Tue, Jun 20, 3:31 AM
vpykhtin accepted D34241: [AMDGPU] SDWA: add support for GFX9 in peephole pass.

LGTM, with nit.

Tue, Jun 20, 3:29 AM

Fri, May 26

vpykhtin accepted D33064: AMDGPU: Start adding offset fields to flat instructions.

LGTM.

Fri, May 26, 5:35 AM

May 23 2017

vpykhtin accepted D33432: [AMDGPU] Convert shl (add) into add (shl).

LGTM.

May 23 2017, 4:15 AM

May 22 2017

vpykhtin accepted D33367: [AMDGPU] Narrow lshl from 64 to 32 bit if possible.

LGTM.

May 22 2017, 9:34 AM
vpykhtin added inline comments to D33367: [AMDGPU] Narrow lshl from 64 to 32 bit if possible.
May 22 2017, 9:18 AM
vpykhtin added inline comments to D33289: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker.
May 22 2017, 6:11 AM
vpykhtin committed rL303548: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker.
[AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker
May 22 2017, 6:09 AM
vpykhtin closed D33289: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker by committing rL303548: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker.
May 22 2017, 6:09 AM

May 19 2017

vpykhtin updated the diff for D33289: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker.

fixed as per comments

May 19 2017, 5:08 AM

May 18 2017

vpykhtin added inline comments to D33289: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker.
May 18 2017, 10:37 AM
vpykhtin added a comment to D33289: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker.

I inserted MachineInstrRegs between reset and recede, all functions are in old places. I should move MachineInstrRegs higher

I see it now, thanks. Can you move it higher please?

May 18 2017, 10:21 AM
vpykhtin accepted D32804: [AMDGPU] SDWA operands should not intersect with potential MIs.

I agree if this is a bugfix.

May 18 2017, 4:40 AM
vpykhtin added a reviewer for D33132: [AMDGPU] SDWA: Add assembler support for GFX9: dp.
May 18 2017, 4:05 AM
vpykhtin added a comment to D33289: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker.

I inserted MachineInstrRegs between reset and recede, all functions are in old places. I should move MachineInstrRegs higher

May 18 2017, 3:25 AM
vpykhtin added inline comments to D33289: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker.
May 18 2017, 3:15 AM

May 17 2017

vpykhtin created D33289: [AMDGPU] Fix incorrect register usage tracking in GCNUpwardTracker.
May 17 2017, 10:25 AM

May 16 2017

vpykhtin accepted D33244: [AMDGPU] Use GCNRPTracker dumper methods in scheduler.

LGTM.

May 16 2017, 9:34 AM
vpykhtin added inline comments to D33117: [AMDGPU] Cache live-ins and register pressure in scheduler.
May 16 2017, 8:53 AM
vpykhtin accepted D33117: [AMDGPU] Cache live-ins and register pressure in scheduler.

LGTM.

May 16 2017, 8:01 AM
vpykhtin accepted D33105: [AMDGPU] Turn register pressure estimation into forward tracker.
May 16 2017, 8:00 AM
vpykhtin added a comment to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.

I'm a bit confused with all of these advance... but lets submit and improve this later.

May 16 2017, 5:54 AM

May 15 2017

vpykhtin added a comment to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.

You can do the reset with move - this would not require copy.

May 15 2017, 10:29 AM
vpykhtin added a comment to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.

I really don't understand it all. Why not just have reset(MachineInstr *, LiveRegSet ) and do a reset on the next BB with liveset from previous BB? It looks like your code does it. Another question: your reset does skip debugs, but the caller doesn't know about it and can supply unskipped iterator to the next advance.

May 15 2017, 10:19 AM
vpykhtin added a comment to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.

This looks a bit as using carkeys to open a bottle. Should we have single instruction RP diff returning function without changing any state?

We probably should, but it probably does not belong to this change.

May 15 2017, 9:53 AM
vpykhtin added a comment to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.

This looks a bit as using carkeys to open a bottle. Should we have single instruction RP diff returning function without changing any state?

May 15 2017, 9:45 AM
vpykhtin added a comment to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.

If I don't mistake downward tracker cannot work on arbitrary instruction order, so let's change it's interface so that it tracks current instruction and move it, likewise like llvm standard tracker, that is reset(MI), advance()

In general it cannot work on an arbitrary order, but it can be used as a probe to schedule next arbitrary instruction and then reset to the previous state.
Then in D33117 I'm using advanceBefore to cross basic block boundary and I do not really want to slow down advance method by checking for the iterator end condition which is needed relatively seldom.

May 15 2017, 9:27 AM
vpykhtin added a comment to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.

If I don't mistake downward tracker cannot work on arbitrary instruction order, so let's change it's interface so that it tracks current instruction and move it, likewise like llvm standard tracker, that is reset(MI), advance()

May 15 2017, 7:12 AM

May 12 2017

vpykhtin added inline comments to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.
May 12 2017, 10:52 AM
vpykhtin added inline comments to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.
May 12 2017, 10:44 AM
vpykhtin added inline comments to D33105: [AMDGPU] Turn register pressure estimation into forward tracker.
May 12 2017, 7:18 AM

May 11 2017

vpykhtin accepted D33086: [AMDGPU] Fix incorrect register pressure calculation.

LGTM.

May 11 2017, 10:21 AM
vpykhtin added inline comments to D33086: [AMDGPU] Fix incorrect register pressure calculation.
May 11 2017, 8:29 AM

Apr 26 2017

vpykhtin accepted D32546: [AMDGPU][MC] Added arg checks for vmcnt() expcnt() lgkmcnt() helpers.

LGTM, Thanks!

Apr 26 2017, 10:43 AM
vpykhtin accepted D32535: [AMDGPU][MC] Added check for truncation of SOPK imm operand.

LGTM.

Apr 26 2017, 6:57 AM

Apr 25 2017

vpykhtin added a comment to D32101: Skip bitcasts while looking for GEP in LoadStoreVectorizer.

Looks good.

Apr 25 2017, 10:36 AM
vpykhtin accepted D32493: [TableGen] Add EncoderMethod to RegisterOperand.

LGTM.

Apr 25 2017, 9:30 AM
vpykhtin accepted D32101: Skip bitcasts while looking for GEP in LoadStoreVectorizer.
Apr 25 2017, 5:37 AM
vpykhtin added a comment to D32101: Skip bitcasts while looking for GEP in LoadStoreVectorizer.

LGTM.

Apr 25 2017, 5:37 AM

Apr 21 2017

vpykhtin accepted D32279: [AMDGPU] Merge M0 initializations.

Looks very good now! Thanks!

Apr 21 2017, 4:10 AM

Apr 20 2017

vpykhtin added inline comments to D32279: [AMDGPU] Merge M0 initializations.
Apr 20 2017, 11:01 AM
vpykhtin added inline comments to D32279: [AMDGPU] Merge M0 initializations.
Apr 20 2017, 10:38 AM
vpykhtin added a comment to D32279: [AMDGPU] Merge M0 initializations.

Thank you for doing this! I really need it.

Apr 20 2017, 6:57 AM

Apr 13 2017

vpykhtin accepted D31993: [AMDGPU] Combine DS operations with offsets bigger than byte.
Apr 13 2017, 10:48 AM
vpykhtin added inline comments to D31993: [AMDGPU] Combine DS operations with offsets bigger than byte.
Apr 13 2017, 10:44 AM
vpykhtin added a comment to D31993: [AMDGPU] Combine DS operations with offsets bigger than byte.

Looks good.

Apr 13 2017, 10:25 AM

Apr 12 2017

vpykhtin accepted D31587: MachineScheduler/ScheduleDAG: Add support for getSUTopoIndex.

LGTM.

Apr 12 2017, 3:58 AM
vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

For the second assert it may be the case for iterator invalidation, though I haven't checked.

Apr 12 2017, 3:55 AM · Restricted Project
vpykhtin accepted D31820: [AMDGPU][MC] Fix for bug 32565 + LIT tests.

LGTM.

Apr 12 2017, 3:49 AM
vpykhtin accepted D31810: [AMDGPU][MC] Fix for bug 32552 + LIT tests.

LGTM.

Apr 12 2017, 3:48 AM
vpykhtin accepted D31809: [AMDGPU][MC] Fix for Bug 32551 + LIT tests.

LGTM.

Apr 12 2017, 3:48 AM
vpykhtin accepted D31808: [AMDGPU][MC] Fix for Bug 28227 + LIT tests.

LGTM.

Apr 12 2017, 3:47 AM
vpykhtin accepted D31595: [AMDGPU][MC] Fix for Bug 28159 + LIT tests.

LGTM.

Apr 12 2017, 3:30 AM

Apr 10 2017

vpykhtin accepted D31854: AMDGPU: Fix crash when disassembling VOP3 mac.

LGTM.

Apr 10 2017, 11:07 AM
vpykhtin added a reviewer for D31854: AMDGPU: Fix crash when disassembling VOP3 mac: dp.
Apr 10 2017, 11:06 AM

Apr 7 2017

vpykhtin accepted D31693: [AMDGPU] Unroll more to eliminate phis and conditions.

LGTM.

Apr 7 2017, 4:16 AM

Apr 6 2017

vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

Thanks Axel!

Apr 6 2017, 2:49 PM · Restricted Project
vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

The following tests assert with this (and predecessors) patches with SISched turned on by default:

Apr 6 2017, 9:41 AM · Restricted Project

Apr 5 2017

vpykhtin accepted D31707: [AMDGPU][MC] Fix for Bug 28211 + LIT tests.

LGTM.

Apr 5 2017, 7:02 AM

Apr 4 2017

vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

First part of comments related only to C++ issues

Apr 4 2017, 8:02 AM · Restricted Project

Mar 31 2017

vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

If SU(i) uses register produced by SI(j):

Mar 31 2017, 10:32 AM · Restricted Project
vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

I may miss something, but it looks that you can build data edges when building a superdag consisting of blocks. Incoming data edges would be liveins, outcoming - liveouts.

Mar 31 2017, 10:05 AM · Restricted Project
vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

In general, I think moving instructions just to use standard RP tracker to discover liveins/liveouts isn't a good idea. It isn't only slow but doesn't look reliable too. Why not discover these sets using DAG directly?

Mar 31 2017, 9:48 AM · Restricted Project
vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

Stack trace:

Mar 31 2017, 9:39 AM · Restricted Project
vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

I didn't debugged it and I don't know why you decided so.

Mar 31 2017, 9:05 AM · Restricted Project
vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

I ran lit tests with sished with ShouldTrackLaneMasks=true enabled by default with this patch, the following tests asserted:

Mar 31 2017, 5:54 AM · Restricted Project
vpykhtin added inline comments to D30147: AMDGPU/SI: Add new SISched policy to reduce register usage.
Mar 31 2017, 3:24 AM · Restricted Project
vpykhtin added inline comments to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.
Mar 31 2017, 3:22 AM · Restricted Project

Mar 29 2017

vpykhtin accepted D31469: [AMDGPU][MC] Fix for Bug 28158 + LIT tests.

LGTM.

Mar 29 2017, 9:23 AM
vpykhtin accepted D31463: [AMDGPU][MC] Fix for Bug 28167 + LIT tests.

LGTM.

Mar 29 2017, 9:02 AM
vpykhtin accepted D31455: [AMDGPU] SDWA Peephole: improve search for immediates in SDWA patterns.

LGTM.

Mar 29 2017, 5:37 AM
vpykhtin added a comment to D31455: [AMDGPU] SDWA Peephole: improve search for immediates in SDWA patterns.

Mostly good.

Mar 29 2017, 4:35 AM

Mar 28 2017

vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

Axel, thanks for the update.

Mar 28 2017, 8:33 PM · Restricted Project
vpykhtin accepted D31434: [AMDGPU] Fix recorded region boundaries in max-occupancy scheduler.

This looks elegant, mine was longer :), thanks!

Mar 28 2017, 12:57 PM
vpykhtin added inline comments to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.
Mar 28 2017, 11:32 AM · Restricted Project
vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

Ok, I understood SIScheduleBlockCreator::scheduleInsideBlocks() moves instructions to actually get LiveIn and LiveOut set for a block, but this is rather heavy. Have you thought about getting those using DAG directly, not regpressure tracker? By the common sence the dependencies between blocks correspond to that liveness info. There is a problem however: LiveIn and LiveOut dependencies aren't modelled for boundary SUs. I have local patch that build such dependencies - scheduling region LiveIns edges comes from EntrySU, LiveOut - to ExitSU. Another problem - dependency edges doesn't have lanemask, need to think how to deal with this.

Mar 28 2017, 11:01 AM · Restricted Project
vpykhtin added a comment to D31124: AMDGPU/SI: Add lane tracking to SI Scheduler.

Why SIScheduleBlockCreator::scheduleInsideBlocks() actually move instructions? Why it isn't done on the final scheduling?

Mar 28 2017, 6:51 AM · Restricted Project
vpykhtin committed rL298902: [AMDGPU] Update SI scheduler colorHighLatenciesGroups.
[AMDGPU] Update SI scheduler colorHighLatenciesGroups
Mar 28 2017, 12:32 AM
vpykhtin closed D30152: AMDGPU/SI: Update SI scheduler colorHighLatenciesGroups by committing rL298902: [AMDGPU] Update SI scheduler colorHighLatenciesGroups.
Mar 28 2017, 12:32 AM · Restricted Project

Mar 27 2017

vpykhtin committed rL298896: MachineScheduler/ScheduleDAG: Add support for GetSubGraph.
MachineScheduler/ScheduleDAG: Add support for GetSubGraph
Mar 27 2017, 10:25 PM
vpykhtin closed D30626: MachineScheduler/ScheduleDAG: Add support for GetSubGraph by committing rL298896: MachineScheduler/ScheduleDAG: Add support for GetSubGraph.
Mar 27 2017, 10:25 PM
vpykhtin committed rL298872: [AMDGPU] SISched: Detect dependency types between blocks.
[AMDGPU] SISched: Detect dependency types between blocks
Mar 27 2017, 11:35 AM
vpykhtin closed D30153: AMDGPU/SI: Detect dependency types between blocks by committing rL298872: [AMDGPU] SISched: Detect dependency types between blocks.
Mar 27 2017, 11:35 AM · Restricted Project
vpykhtin committed rL298861: [AMDGPU] SISched: Update colorEndsAccordingToDependencies.
[AMDGPU] SISched: Update colorEndsAccordingToDependencies
Mar 27 2017, 10:39 AM
vpykhtin closed D30150: AMDGPU/SI: Update colorEndsAccordingToDependencies by committing rL298861: [AMDGPU] SISched: Update colorEndsAccordingToDependencies.
Mar 27 2017, 10:39 AM · Restricted Project
vpykhtin committed rL298857: [AMDGPU] Fix SI scheduler LiveOut Refcount issue.
[AMDGPU] Fix SI scheduler LiveOut Refcount issue
Mar 27 2017, 10:19 AM
vpykhtin closed D30145: AMDGPU/SI: Fix SI scheduler LiveOut Refcount issue by committing rL298857: [AMDGPU] Fix SI scheduler LiveOut Refcount issue.
Mar 27 2017, 10:18 AM · Restricted Project
vpykhtin added a dependency for D30152: AMDGPU/SI: Update SI scheduler colorHighLatenciesGroups: D30626: MachineScheduler/ScheduleDAG: Add support for GetSubGraph.
Mar 27 2017, 7:51 AM · Restricted Project
vpykhtin added a dependent revision for D30626: MachineScheduler/ScheduleDAG: Add support for GetSubGraph: D30152: AMDGPU/SI: Update SI scheduler colorHighLatenciesGroups.
Mar 27 2017, 7:51 AM
vpykhtin added a comment to D30147: AMDGPU/SI: Add new SISched policy to reduce register usage.

Sorry but I give up reviewing this. Your code looks like after "inline all" pass. Can you refactor common parts into functions with meaningfull names?

Mar 27 2017, 7:30 AM · Restricted Project
vpykhtin added a comment to D30148: AMDGPU/SI: Fix listing of Low and High latency instructions.

It's still missing a few. VINTRP and EXP. I think it would be better to check instruction latency data. In absence of that, I think it would be simpler to just use isHighLatencyInstruction, and !isHighLatencyInstruction

The true usage of these helper functions is to deduce instructions which need a VMCNT wait or a LGKMCNT wait (former ones being incorrectly called 'high latency' and the latter ones 'lon latency').

What about renaming to isVMCNTInstruction and isLGKMCNTInstruction ?

Mar 27 2017, 7:26 AM · Restricted Project

Mar 24 2017

vpykhtin committed rL298718: [AMDGPU] Remove double map lookups in SI scheduler.
[AMDGPU] Remove double map lookups in SI scheduler
Mar 24 2017, 11:01 AM
vpykhtin closed D30382: AMDGPU/SI: Remove double lookups in SI scheduler by committing rL298718: [AMDGPU] Remove double map lookups in SI scheduler.
Mar 24 2017, 11:01 AM · Restricted Project
vpykhtin accepted D31323: [AMDGPU] Add AMDGPUAliasAnalysis to opt pipeline.

LGTM.

Mar 24 2017, 10:53 AM
vpykhtin committed rL298710: [AMDGPU] Fix SGPR usage count in SI scheduler.
[AMDGPU] Fix SGPR usage count in SI scheduler
Mar 24 2017, 9:58 AM
vpykhtin closed D30149: AMDGPU/SI: Fix SGPR usage count in SI scheduler by committing rL298710: [AMDGPU] Fix SGPR usage count in SI scheduler.
Mar 24 2017, 9:58 AM · Restricted Project
vpykhtin committed rL298708: [AMDGPU] Add a new line after a debug message.
[AMDGPU] Add a new line after a debug message
Mar 24 2017, 9:50 AM
vpykhtin closed D30146: AMDGPU/SI: Add a new line after a debug message by committing rL298708: [AMDGPU] Add a new line after a debug message.
Mar 24 2017, 9:50 AM · Restricted Project