Page MenuHomePhabricator

dantrushin (Denis Antrushin)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 28 2018, 7:55 AM (146 w, 6 d)

Recent Activity

May 11 2021

dantrushin committed rGdf47368d406a: [RegAllocFast] properly handle STATEPOINT instruction. (authored by dantrushin).
[RegAllocFast] properly handle STATEPOINT instruction.
May 11 2021, 3:27 AM
dantrushin closed D99284: [RegAllocFast] properly handle STATEPOINT instruction..
May 11 2021, 3:27 AM · Restricted Project

Apr 27 2021

dantrushin updated the diff for D99284: [RegAllocFast] properly handle STATEPOINT instruction..

Added test for instruction with two RegMask operands.

Apr 27 2021, 10:51 AM · Restricted Project
dantrushin added inline comments to D99284: [RegAllocFast] properly handle STATEPOINT instruction..
Apr 27 2021, 9:04 AM · Restricted Project

Apr 16 2021

dantrushin added a comment to D99284: [RegAllocFast] properly handle STATEPOINT instruction..

@arsenm, Is this OK for you?

Apr 16 2021, 11:37 AM · Restricted Project

Apr 8 2021

dantrushin updated the diff for D99284: [RegAllocFast] properly handle STATEPOINT instruction..

Address comments:

  • use any_of
  • get rid of AssignedTiedDefs vector
Apr 8 2021, 2:24 AM · Restricted Project

Apr 7 2021

dantrushin updated the diff for D99284: [RegAllocFast] properly handle STATEPOINT instruction..

Support multiple RegMasks per instruction.

Apr 7 2021, 9:44 AM · Restricted Project
dantrushin added a comment to D100009: [WIP][Statepoint Lowering] Allow other than N byte sized types in deopt bundle.

Any reason why do you specify alignment in bits instead of bytes?
Is there any (supported by LLVM) CPU architecture with bit-addressing of memory?
(That really look strange to me, given byte size is hardcoded to 8 bits)

Apr 7 2021, 8:51 AM · Restricted Project

Apr 2 2021

dantrushin updated the summary of D99284: [RegAllocFast] properly handle STATEPOINT instruction..
Apr 2 2021, 6:46 AM · Restricted Project
dantrushin added a comment to D99284: [RegAllocFast] properly handle STATEPOINT instruction..

BTW, it seems that previous code was non-optimal or it supports that there are may be ore than one machine operand containing the reg mask.
If the second is true, you should support this in your patch. Can you check that?

Apr 2 2021, 6:35 AM · Restricted Project

Apr 1 2021

dantrushin added inline comments to D99284: [RegAllocFast] properly handle STATEPOINT instruction..
Apr 1 2021, 8:09 AM · Restricted Project
dantrushin updated the diff for D99284: [RegAllocFast] properly handle STATEPOINT instruction..

Rework algorithm a bit:

  • Store intruction RegMask (if any) in a global;
  • Look at RegMask when allocating register if we care about physical register use. (Re)Use LookAtPhysRegUses for this.
Apr 1 2021, 8:00 AM · Restricted Project

Mar 31 2021

dantrushin updated the diff for D99284: [RegAllocFast] properly handle STATEPOINT instruction..

Address review comments:

  • Do this for all tied operands with regmask instructions;
  • Strip all unnecessary data from test, add comment;
Mar 31 2021, 7:49 AM · Restricted Project

Mar 24 2021

dantrushin requested review of D99284: [RegAllocFast] properly handle STATEPOINT instruction..
Mar 24 2021, 11:04 AM · Restricted Project

Mar 11 2021

dantrushin accepted D98393: [Statepoint Lowering] Handle the case with several gc.result.

Ah, my bad, I missed that :)
LGTM

Mar 11 2021, 3:39 AM · Restricted Project
dantrushin added a comment to D98393: [Statepoint Lowering] Handle the case with several gc.result.

There is method GCStatepointInst::getGCResult() which became invalid now.
You should either remove it or change to return vector (like getGCRelocates()` does) and use it here.
Personally I prefer latter.

Mar 11 2021, 2:03 AM · Restricted Project

Mar 10 2021

dantrushin accepted D98324: [Statepoint Lowering] Fix the crash with gc.relocate lowering when it is in a separate block.

LGTM

Mar 10 2021, 1:55 AM · Restricted Project

Mar 9 2021

dantrushin added inline comments to D98122: [rs4gc] don't duplicate existing values which are provably base pointers.
Mar 9 2021, 2:55 AM · Restricted Project

Mar 5 2021

dantrushin added a comment to D97837: [InstCombine] Remove gc.relocate duplicates.

Wouldn't it make more sense to fix RS4GC then?
I think D97885 makes this mostly irrelevant. Even if it is not, we might try to detect duplicate phis in RS4GC.

Mar 5 2021, 5:12 AM · Restricted Project

Feb 20 2021

dantrushin added inline comments to D96978: [WIP] Bias statepoint operands towards spilling.
Feb 20 2021, 1:43 AM · Restricted Project
dantrushin added a comment to D97108: [Statepoint Lowering] Allow dead gc pointer from deopt section to be on register..
Feb 20 2021, 1:13 AM · Restricted Project

Feb 2 2021

dantrushin accepted D95858: [Statepoint] Handle 'undef' operand tied to def.

BTW, we can completely delete tied dead,undef pair. But additional complexity might not worth it.

Feb 2 2021, 3:46 AM · Restricted Project

Jan 18 2021

dantrushin committed rGf7443905af1e: [Statepoint] Handle `undef` operands in statepoint. (authored by dantrushin).
[Statepoint] Handle `undef` operands in statepoint.
Jan 18 2021, 4:22 AM
dantrushin closed D94703: [Statepoint] Handle `undef` operands in statepoint..
Jan 18 2021, 4:22 AM · Restricted Project

Jan 15 2021

dantrushin updated the diff for D94703: [Statepoint] Handle `undef` operands in statepoint..

Add test case;

Jan 15 2021, 8:48 AM · Restricted Project

Jan 14 2021

dantrushin requested review of D94703: [Statepoint] Handle `undef` operands in statepoint..
Jan 14 2021, 11:42 AM · Restricted Project

Jan 12 2021

dantrushin added inline comments to D94482: [Verifier] Extend statepoint verifier to cover more constants.
Jan 12 2021, 4:50 AM · Restricted Project
dantrushin accepted D94389: [InlineSpiller]Re-tie operands if folding failed.

LGTM

Jan 12 2021, 4:48 AM · Restricted Project
dantrushin accepted D94469: [Statepoint Lowering] Add an option to allow use gc values in regs for landing pad.

LGTM.
Though, I don't see much point in having it :)

Jan 12 2021, 4:35 AM · Restricted Project
dantrushin accepted D94482: [Verifier] Extend statepoint verifier to cover more constants.

LGTM

Jan 12 2021, 4:32 AM · Restricted Project
dantrushin accepted D94483: [Verifier] Add tied-ness verification to statepoint intsruction.

LGTM

Jan 12 2021, 4:28 AM · Restricted Project

Jan 11 2021

dantrushin accepted D94389: [InlineSpiller]Re-tie operands if folding failed.

LGTM

Jan 11 2021, 7:56 AM · Restricted Project

Dec 21 2020

dantrushin committed rG6f45049fb6e5: [Statepoints] Disable VReg lowering for values used on exception path of invoke. (authored by dantrushin).
[Statepoints] Disable VReg lowering for values used on exception path of invoke.
Dec 21 2020, 5:28 AM
dantrushin closed D93449: [Statepoints] Disable VReg lowering for values used on exception path of invoke..
Dec 21 2020, 5:27 AM · Restricted Project

Dec 17 2020

dantrushin requested review of D93449: [Statepoints] Disable VReg lowering for values used on exception path of invoke..
Dec 17 2020, 4:03 AM · Restricted Project

Dec 16 2020

dantrushin committed rGc5771a2f2df9: [Statepoints] Extract invoke tests into separate file. NFC. (authored by dantrushin).
[Statepoints] Extract invoke tests into separate file. NFC.
Dec 16 2020, 5:55 AM

Oct 23 2020

dantrushin added a reverting change for rG2b96dcebfae6: [Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty.: rG4f7ee55971e7: Revert "[Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty..
Oct 23 2020, 7:57 AM
dantrushin committed rG4f7ee55971e7: Revert "[Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty. (authored by dantrushin).
Revert "[Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty.
Oct 23 2020, 7:57 AM
dantrushin added a reverting change for D88999: [Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty.: rG4f7ee55971e7: Revert "[Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty..
Oct 23 2020, 7:57 AM · Restricted Project

Oct 20 2020

dantrushin accepted D89612: NFC: Fix -Wsign-compare warnings on 32-bit builds.

LGTM

Oct 20 2020, 7:22 AM · Restricted Project, Restricted Project

Oct 15 2020

dantrushin committed rG8f0ddd4a1a0d: [Statepoints] Remove MI limit on number of tied operands. (authored by dantrushin).
[Statepoints] Remove MI limit on number of tied operands.
Oct 15 2020, 5:03 AM
dantrushin committed rG8c2b69d53a32: [Statepoints] Unlimited tied operands. (authored by dantrushin).
[Statepoints] Unlimited tied operands.
Oct 15 2020, 2:17 AM
dantrushin closed D87915: [Statepoints] Unlimited tied operands..
Oct 15 2020, 2:17 AM · Restricted Project

Oct 13 2020

dantrushin committed rG1a82705c8d03: [Statepoints] Update statepoint mir tests. (authored by dantrushin).
[Statepoints] Update statepoint mir tests.
Oct 13 2020, 12:29 PM

Oct 10 2020

dantrushin committed rG2b96dcebfae6: [Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty. (authored by dantrushin).
[Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty.
Oct 10 2020, 12:59 AM
dantrushin closed D88999: [Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty..
Oct 10 2020, 12:59 AM · Restricted Project

Oct 9 2020

dantrushin added a comment to D87304: [AttributeFuncs] Consider `align` in `typeIncompatible`.

The way I read the lang ref this is intentional. Not to say one should not define what it means for vectors of pointers and then allow it. I feel align is not the only one missing for them though.
You want to give it a try?

Oct 9 2020, 6:19 AM · Restricted Project
dantrushin updated the diff for D87915: [Statepoints] Unlimited tied operands..

Address review comments

Oct 9 2020, 5:29 AM · Restricted Project

Oct 8 2020

dantrushin added a comment to D87304: [AttributeFuncs] Consider `align` in `typeIncompatible`.

I wonder if align attribute is legal for vectors of pointers?
This is allowed:

define align 8 i32* @test_scalar(i32* %in) {
  ret i32* %in
}

but this is not:

define align 8 <4 x i32*> @test_vector(<4 x i32*> %in) {
  ret <4 x i32*> %in
}

Is it intentional behavior or just has been overlooked?

Oct 8 2020, 1:38 AM · Restricted Project

Oct 7 2020

dantrushin retitled D87915: [Statepoints] Unlimited tied operands. from [WIP][Statepoints] Unlimited tied operands. to [Statepoints] Unlimited tied operands..
Oct 7 2020, 2:09 PM · Restricted Project
dantrushin requested review of D88999: [Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty..
Oct 7 2020, 12:02 PM · Restricted Project

Oct 6 2020

dantrushin committed rGc08d48fc2d7c: [Statepoints] Change statepoint machine instr format to better suit VReg… (authored by dantrushin).
[Statepoints] Change statepoint machine instr format to better suit VReg…
Oct 6 2020, 3:57 AM
dantrushin closed D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering..
Oct 6 2020, 3:56 AM · Restricted Project
dantrushin updated the diff for D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering..

Add local asserts

Oct 6 2020, 2:53 AM · Restricted Project

Oct 2 2020

dantrushin committed rG7b19cd06d732: [Statepoints][ISEL] visitGCRelocate: chain to current DAG root. (authored by dantrushin).
[Statepoints][ISEL] visitGCRelocate: chain to current DAG root.
Oct 2 2020, 7:42 AM
dantrushin closed D88639: [Statepoints][ISEL] visitGCRelocate: chain to current DAG root..
Oct 2 2020, 7:42 AM · Restricted Project

Oct 1 2020

dantrushin retitled D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering. from [WIP][Statepoints] Change statepoint machine instr format to better suit VReg lowering. to [Statepoints] Change statepoint machine instr format to better suit VReg lowering..
Oct 1 2020, 2:45 AM · Restricted Project
dantrushin updated the diff for D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering..

Update statepoint MI description, provide link to it at parseStatepointOperands;
Fix style issues;

Oct 1 2020, 1:50 AM · Restricted Project
dantrushin requested review of D88639: [Statepoints][ISEL] visitGCRelocate: chain to current DAG root..
Oct 1 2020, 1:28 AM · Restricted Project

Sep 30 2020

dantrushin added inline comments to D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering..
Sep 30 2020, 10:40 AM · Restricted Project
dantrushin updated the diff for D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering..

Address most review comments:

  • add documentation to API
  • factor out some code to separate function
  • fix test instead of XFAILing it
Sep 30 2020, 10:34 AM · Restricted Project

Sep 21 2020

dantrushin committed rGee86688b8175: [Statepoints][ISEL] gc.relocate uniquification should be based on SDValue, not… (authored by dantrushin).
[Statepoints][ISEL] gc.relocate uniquification should be based on SDValue, not…
Sep 21 2020, 5:45 AM
dantrushin closed D87695: [Statepoints][ISEL] gc.relocate uniquification should be based on SDValue, not IR Value..
Sep 21 2020, 5:45 AM · Restricted Project

Sep 19 2020

dantrushin added inline comments to D87488: [ImplicitNullCheck] Hoisting multiple dependencies.
Sep 19 2020, 11:22 AM · Restricted Project

Sep 18 2020

dantrushin updated the diff for D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering..

Rebase on tip and use newly added API;
Slightly change GC pointer operand lowering;

Sep 18 2020, 9:18 AM · Restricted Project
dantrushin requested review of D87915: [Statepoints] Unlimited tied operands..
Sep 18 2020, 9:15 AM · Restricted Project

Sep 15 2020

dantrushin requested review of D87695: [Statepoints][ISEL] gc.relocate uniquification should be based on SDValue, not IR Value..
Sep 15 2020, 7:46 AM · Restricted Project

Sep 10 2020

dantrushin added a comment to D87148: [ImplicitNullCheck] Handle Nonzero faulting pages and complex addressing.

Thanks, it reads much better for me now.
Looks good.

Sep 10 2020, 10:36 AM · Restricted Project

Sep 9 2020

dantrushin committed rG4358fa782e3d: [Statepoints] Update DAG root after emitting statepoint. (authored by dantrushin).
[Statepoints] Update DAG root after emitting statepoint.
Sep 9 2020, 6:22 AM
dantrushin closed D87251: [Statepoints] Update DAG root after emitting statepoint..
Sep 9 2020, 6:22 AM · Restricted Project
dantrushin committed rG2a52c3301a52: [Statepoints] Properly handle const base pointer. (authored by dantrushin).
[Statepoints] Properly handle const base pointer.
Sep 9 2020, 12:08 AM
dantrushin closed D87252: [Statepoints] Properly handle const base pointer..
Sep 9 2020, 12:08 AM · Restricted Project

Sep 8 2020

dantrushin added inline comments to D87148: [ImplicitNullCheck] Handle Nonzero faulting pages and complex addressing.
Sep 8 2020, 7:29 AM · Restricted Project

Sep 7 2020

dantrushin requested review of D87252: [Statepoints] Properly handle const base pointer..
Sep 7 2020, 11:23 AM · Restricted Project
dantrushin requested review of D87251: [Statepoints] Update DAG root after emitting statepoint..
Sep 7 2020, 11:22 AM · Restricted Project

Sep 4 2020

dantrushin added a comment to D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering..

Can we come up with better format for gc pointer map (base/derived)?
I wish it were possible to have it in separate psude instruction glued with statepoint. Unfortunately, that seems impossible now.

Sep 4 2020, 11:56 AM · Restricted Project
dantrushin updated the summary of D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering..
Sep 4 2020, 11:50 AM · Restricted Project
dantrushin requested review of D87154: [Statepoints] Change statepoint machine instr format to better suit VReg lowering..
Sep 4 2020, 11:46 AM · Restricted Project
dantrushin added a comment to D87108: [ImplicitNullCheck] Handle instructions that do not modify null behaviour of null checked reg.

Looks good for me.
The only thing that worries me is shouldn't we have broader audience since we're changing 'global' APIs?

Sep 4 2020, 4:42 AM · Restricted Project

Sep 3 2020

dantrushin added inline comments to D87108: [ImplicitNullCheck] Handle instructions that do not modify null behaviour of null checked reg.
Sep 3 2020, 12:38 PM · Restricted Project

Aug 28 2020

dantrushin committed rGfabd4c1ae1fc: [Statepoint] Always spill base pointer. (authored by dantrushin).
[Statepoint] Always spill base pointer.
Aug 28 2020, 9:22 AM
dantrushin closed D86712: [Statepoint] Always spill base pointer..
Aug 28 2020, 9:22 AM · Restricted Project
dantrushin closed D81603: [WIP] MIR Statepoint refactoring: Pass GC pointergs in VRegs..
Aug 28 2020, 7:51 AM · Restricted Project
dantrushin accepted D81603: [WIP] MIR Statepoint refactoring: Pass GC pointergs in VRegs..

All pieces has been landed, so closing it.
Unfortunately, final result (e.g. ISEL part) diverged quite a bit from this, but idea at large has not changed

Aug 28 2020, 7:51 AM · Restricted Project
dantrushin committed rG248a67f1445d: [Statepoint] Turn assert into check in foldPatchpoint. (authored by dantrushin).
[Statepoint] Turn assert into check in foldPatchpoint.
Aug 28 2020, 6:02 AM

Aug 27 2020

dantrushin requested review of D86712: [Statepoint] Always spill base pointer..
Aug 27 2020, 7:17 AM · Restricted Project

Aug 14 2020

dantrushin committed rG1c80a6ce5f22: [Statepoints] FixupStatepoint: properly set isKill on spilled register. (authored by dantrushin).
[Statepoints] FixupStatepoint: properly set isKill on spilled register.
Aug 14 2020, 8:20 AM
dantrushin added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Aug 14 2020, 8:07 AM · Restricted Project
dantrushin committed rG5f6bee77fad6: [Statepoints] Spill GC Ptr regs in FixupStatepoints. (authored by dantrushin).
[Statepoints] Spill GC Ptr regs in FixupStatepoints.
Aug 14 2020, 6:22 AM
dantrushin closed D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Aug 14 2020, 6:21 AM · Restricted Project
dantrushin accepted D85959: [InstCombine] Remove unused entries in gc-liv bundle of statepoint.

LGTM with couple nits inline

Aug 14 2020, 5:37 AM · Restricted Project

Aug 5 2020

dantrushin closed D81646: MIR Statepoint refactoring. Part 2: Operand folding..

https://reviews.llvm.org/rGd21ce4082181

Aug 5 2020, 8:40 AM · Restricted Project
dantrushin abandoned D83965: MIR Statepoint refactoring. Part 5: Handle non-local relocates in ISEL..
Aug 5 2020, 7:11 AM · Restricted Project
dantrushin committed rGd21ce4082181: [Statepoints] Operand folding in presense of tied registers. (authored by dantrushin).
[Statepoints] Operand folding in presense of tied registers.
Aug 5 2020, 6:19 AM

Aug 4 2020

dantrushin added a comment to D81646: MIR Statepoint refactoring. Part 2: Operand folding..


Attached test will explode if isTied check is removed as suggested.
Essential part is:

%10:gr64 = MOV64rm killed %9, 1, $noreg, 0, $noreg :: (load 8 from %ir.p0, addrspace 1)
%6:gr64, %7:gr64 = STATEPOINT 0, 0, 0, @foo, 2, 0, 2, 0, 2, 0, %8, %8(tied-def 0), killed %10, %0(tied-def 1), ...

It is synthetic (i.e. we do no generate such MIR from any IR), but still not invalid

Aug 4 2020, 11:22 AM · Restricted Project

Aug 3 2020

dantrushin added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Aug 3 2020, 12:24 PM · Restricted Project
dantrushin updated the diff for D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
  • Mark MMOs for gc register spill slots as load/store ones;
  • Add assert that there is only one EHPad;
Aug 3 2020, 12:21 PM · Restricted Project
dantrushin added a comment to D84964: [WIP] Demo a functional problem from D81647 with a fix and test case.

I will incorporate this into D81647, since fix will be even simpler there.

Aug 3 2020, 11:33 AM · Restricted Project
dantrushin abandoned D81393: [ScheduleDAG][NFC] Use MCInstrDesc API to check PhysReg definition..

This was landed as part of larger patch (D81648) for which this was a blocker. Abandoning this review.

Aug 3 2020, 9:43 AM · Restricted Project

Jul 17 2020

dantrushin added a comment to D81645: MIR Statepoint refactoring. Part 1: Basic MI level changes..

Hi, I see CodeGen/X86/statepoint-vreg.mir failing with UBSAN enabled on our internal bots:

Jul 17 2020, 11:26 PM · Restricted Project