Page MenuHomePhabricator
Feed Advanced Search

Jul 10 2020

dantrushin updated the diff for D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

Changed DerivedPtrMap and moved it to StatepointLowering.h as it only
needed for local gc.relocate processing;
Rebased on tip, rewrote lowerStatepointMetaArgs as been told;
Deleted test mods, will add separate test later;

Jul 10 2020, 7:55 AM · Restricted Project

Jul 8 2020

dantrushin updated the diff for D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

Add (hand crafted) test for shared landing pad;
Slightly change cache handling code to better handle shared landing pads;
Improve debug output;

Jul 8 2020, 9:56 AM · Restricted Project

Jul 7 2020

dantrushin updated the diff for D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

Add two simple MIR tests

Jul 7 2020, 11:32 AM · Restricted Project
dantrushin updated the diff for D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

Return back old implementation of collectGCRegs as I've found case
where statepoint defs != gc args;

Jul 7 2020, 8:28 AM · Restricted Project
dantrushin added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Jul 7 2020, 2:08 AM · Restricted Project

Jul 6 2020

dantrushin updated the diff for D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

Address review comments and fix clang-format errors

Jul 6 2020, 10:45 AM · Restricted Project
dantrushin added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Jul 6 2020, 7:55 AM · Restricted Project
dantrushin added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Jul 6 2020, 7:03 AM · Restricted Project

Jul 3 2020

dantrushin updated the diff for D81648: MIR Statepoint refactoring. Part 4: ISEL changes..

Correctly handle vectors of pointers.

Jul 3 2020, 11:17 AM · Restricted Project

Jul 2 2020

dantrushin updated the diff for D81648: MIR Statepoint refactoring. Part 4: ISEL changes..

Do not handle statepoints with cross-block relocates, spill their args as before.

Jul 2 2020, 6:25 AM · Restricted Project

Jun 30 2020

dantrushin updated the diff for D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..

Move copy propagation to separate function;
Simplify statepoint defs handling a bit;

Jun 30 2020, 12:29 PM · Restricted Project

Jun 29 2020

dantrushin updated the diff for D81648: MIR Statepoint refactoring. Part 4: ISEL changes..

Version without GC pointers sorting.

Jun 29 2020, 10:48 AM · Restricted Project

Jun 25 2020

dantrushin added inline comments to D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Jun 25 2020, 3:04 AM · Restricted Project

Jun 22 2020

dantrushin added a comment to D81648: MIR Statepoint refactoring. Part 4: ISEL changes..
  1. Since some of the complexity here seems specific to invokes, let's restrict the first patch to call instructions. If we see an invoke, we can simply use the stack lowering.
Jun 22 2020, 8:35 AM · Restricted Project

Jun 15 2020

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

InlineSpiller::spillAroundUses folds/spills ALL concurrences of vreg1 , so it will turn

Jun 15 2020, 10:55 AM · Restricted Project
dantrushin added a comment to D81646: MIR Statepoint refactoring. Part 2: Operand folding..

I can't wrap my head around why untieing operands would be correct here. It seems like we could end up with a use folded, but a def not leaving to invalid codegen? Can you either expand on the justification or discuss offline?

Jun 15 2020, 7:00 AM · Restricted Project

Jun 11 2020

dantrushin abandoned D80193: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 3/5..

Abandoned in favor of D81648

Jun 11 2020, 5:26 AM · Restricted Project
dantrushin abandoned D80195: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 4/5..

Abandoned in favor of D81646

Jun 11 2020, 5:26 AM · Restricted Project
dantrushin abandoned D80196: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 5/5..

Abandoned in favor of D81647

Jun 11 2020, 5:26 AM · Restricted Project
dantrushin abandoned D80191: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 1/5..

Adandoned in favor of D81648

Jun 11 2020, 5:26 AM · Restricted Project
dantrushin abandoned D80192: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 2/5..

Abandoned in favor of D81645

Jun 11 2020, 5:26 AM · Restricted Project
dantrushin created D81648: MIR Statepoint refactoring. Part 4: ISEL changes..
Jun 11 2020, 5:26 AM · Restricted Project
dantrushin created D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs..
Jun 11 2020, 5:26 AM · Restricted Project
dantrushin created D81645: MIR Statepoint refactoring. Part 1: Basic MI level changes..
Jun 11 2020, 5:26 AM · Restricted Project
dantrushin created D81646: MIR Statepoint refactoring. Part 2: Operand folding..
Jun 11 2020, 5:26 AM · Restricted Project

Jun 10 2020

dantrushin updated the diff for D81603: [WIP] MIR Statepoint refactoring: Pass GC pointergs in VRegs..

Fix style and some comments.

Jun 10 2020, 11:41 AM · Restricted Project
dantrushin created D81603: [WIP] MIR Statepoint refactoring: Pass GC pointergs in VRegs..
Jun 10 2020, 11:08 AM · Restricted Project

Jun 8 2020

dantrushin created D81393: [ScheduleDAG][NFC] Use MCInstrDesc API to check PhysReg definition..
Jun 8 2020, 7:06 AM · Restricted Project

Jun 5 2020

dantrushin added a comment to D81181: [TargetLowering][NFC] More efficient emitPatchpoint()..

ah sorry, I guess that might have been the wrong link. My copy pasting skills are flaky.

what I'm seeing is this:

FAILED: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringBase.cpp.o 
/usr/local/bin/c++  -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Ilib/CodeGen -I/home/tcwg-buildslave/worker/clang-cmake-aarch64-quick/llvm/llvm/lib/CodeGen -I/usr/include/libxml2 -Iinclude -I/home/tcwg-buildslave/worker/clang-cmake-aarch64-quick/llvm/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -O3     -fno-exceptions -fno-rtti -UNDEBUG -std=c++14 -MD -MT lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringBase.cpp.o -MF lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringBase.cpp.o.d -o lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringBase.cpp.o -c /home/tcwg-buildslave/worker/clang-cmake-aarch64-quick/llvm/llvm/lib/CodeGen/TargetLoweringBase.cpp
/home/tcwg-buildslave/worker/clang-cmake-aarch64-quick/llvm/llvm/lib/CodeGen/TargetLoweringBase.cpp: In member function ‘llvm::MachineBasicBlock* llvm::TargetLoweringBase::emitPatchPoint(llvm::MachineInstr&, llvm::MachineBasicBlock*) const’:
/home/tcwg-buildslave/worker/clang-cmake-aarch64-quick/llvm/llvm/lib/CodeGen/TargetLoweringBase.cpp:1037:30: error: ‘OperIdx’ was not declared in this scope
 1037 |       MIB.add(MI->getOperand(OperIdx));
      |                              ^~~~~~~
/home/tcwg-buildslave/worker/clang-cmake-aarch64-quick/llvm/llvm/lib/CodeGen/TargetLoweringBase.cpp:1054:30: error: ‘OperIdx’ was not declared in this scope
 1054 |       MIB.add(MI->getOperand(OperIdx));
      |                              ^~~~~~~
/home/tcwg-buildslave/worker/clang-cmake-aarch64-quick/llvm/llvm/lib/CodeGen/TargetLoweringBase.cpp:1060:30: error: ‘OperIdx’ was not declared in this scope
 1060 |       MIB.add(MI->getOperand(OperIdx));

from: http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/23856/steps/build%20stage%201/logs/stdio

Jun 5 2020, 6:33 AM · Restricted Project
dantrushin committed rGdae64d8f421c: Fix build breakage caused by 66a1b83bf93ec46f6d7a06c47d5981ae154f9ea0 (authored by dantrushin).
Fix build breakage caused by 66a1b83bf93ec46f6d7a06c47d5981ae154f9ea0
Jun 5 2020, 6:03 AM
dantrushin added a comment to D81181: [TargetLowering][NFC] More efficient emitPatchpoint()..

Ah, I see. I indeed broke the build. Will fix in a moment

Jun 5 2020, 6:01 AM · Restricted Project
dantrushin added a comment to D81181: [TargetLowering][NFC] More efficient emitPatchpoint()..

Seems like this is breaking on buildbot (and also my local checkout): http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/16759

Jun 5 2020, 6:01 AM · Restricted Project
dantrushin committed rG66a1b83bf93e: [TargetLowering][NFC] More efficient emitPatchpoint(). (authored by dantrushin).
[TargetLowering][NFC] More efficient emitPatchpoint().
Jun 5 2020, 5:29 AM
dantrushin closed D81181: [TargetLowering][NFC] More efficient emitPatchpoint()..
Jun 5 2020, 5:28 AM · Restricted Project

Jun 4 2020

dantrushin updated the diff for D81181: [TargetLowering][NFC] More efficient emitPatchpoint()..

Address comments

Jun 4 2020, 1:50 PM · Restricted Project
dantrushin created D81181: [TargetLowering][NFC] More efficient emitPatchpoint()..
Jun 4 2020, 11:36 AM · Restricted Project
dantrushin committed rGf2c97656644e: [TableGen] Handle (outs variable_ops) (authored by dantrushin).
[TableGen] Handle (outs variable_ops)
Jun 4 2020, 6:31 AM
dantrushin closed D81095: [TableGen] Handle (outs variable_ops).
Jun 4 2020, 6:31 AM · Restricted Project
dantrushin accepted D81121: [Statepoint] Switch RS4GC to using gc-live bundle form.

LGTM

Jun 4 2020, 3:13 AM · Restricted Project

Jun 3 2020

dantrushin added reviewers for D81095: [TableGen] Handle (outs variable_ops): bogner, aemerson, dsanders.
Jun 3 2020, 12:38 PM · Restricted Project
dantrushin updated the diff for D81095: [TableGen] Handle (outs variable_ops).

Add small but most important lost part.

Jun 3 2020, 12:38 PM · Restricted Project
dantrushin updated subscribers of D81095: [TableGen] Handle (outs variable_ops).
Jun 3 2020, 10:58 AM · Restricted Project
dantrushin created D81095: [TableGen] Handle (outs variable_ops).
Jun 3 2020, 7:38 AM · Restricted Project

Jun 2 2020

dantrushin committed rG3c626c714c9d: [EarlyCSE] Common gc.relocate calls. (authored by dantrushin).
[EarlyCSE] Common gc.relocate calls.
Jun 2 2020, 2:46 AM
dantrushin closed D80445: [EarlyCSE] Common gc.relocate calls..
Jun 2 2020, 2:46 AM · Restricted Project
dantrushin committed rGfa818ded2441: [StatepointLowering] Handle UNDEF gc values. (authored by dantrushin).
[StatepointLowering] Handle UNDEF gc values.
Jun 2 2020, 12:31 AM
dantrushin closed D80714: [StatepointLowering] Handle UNDEF gc values..
Jun 2 2020, 12:31 AM · Restricted Project
dantrushin accepted D80937: Introduce a "gc-live" bundle for the gc arguments of a statepoint.

LGTM with one note (you can ignore it if you have reasons).

Jun 2 2020, 12:31 AM · Restricted Project

Jun 1 2020

dantrushin accepted D80892: Remove deopt and gc transition arguments from gc.statepoint intrinsic.

LGTM

Jun 1 2020, 11:58 PM · Restricted Project
dantrushin updated the diff for D80714: [StatepointLowering] Handle UNDEF gc values..

Update according to comments.

Jun 1 2020, 3:11 PM · Restricted Project
dantrushin updated the summary of D80714: [StatepointLowering] Handle UNDEF gc values..
Jun 1 2020, 3:11 PM · Restricted Project
dantrushin added inline comments to D80191: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 1/5..
Jun 1 2020, 10:12 AM · Restricted Project
dantrushin updated the summary of D80191: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 1/5..
Jun 1 2020, 9:39 AM · Restricted Project
dantrushin updated the diff for D80191: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 1/5..

Rework patch accodring to comments: Replace existing MachineSDNode with
newly introduced StatepointSDNode and use it for statepoint lowering.
No functional changes.

Jun 1 2020, 9:39 AM · Restricted Project
dantrushin updated the diff for D80714: [StatepointLowering] Handle UNDEF gc values..

Updated patch to handle UNDEF unconditionally.

Jun 1 2020, 7:28 AM · Restricted Project

May 28 2020

dantrushin added inline comments to D80714: [StatepointLowering] Handle UNDEF gc values..
May 28 2020, 5:57 AM · Restricted Project
dantrushin created D80714: [StatepointLowering] Handle UNDEF gc values..
May 28 2020, 5:57 AM · Restricted Project
dantrushin accepted D80674: Default to generating statepoints with deopt and gc-transition bundles if needed.

LGTM with two notes:

  • Does it makes sense to make GCArgs Optional<> too? Implementation might change later, but you won't need to change interface again.
  • Now that Deopt and Transition args are Optional<>, do we need such many CreageGCStatepointCall variants?
May 28 2020, 5:57 AM · Restricted Project

May 23 2020

dantrushin added a comment to D80445: [EarlyCSE] Common gc.relocate calls..

Just to be clear, if the indices are the same, gc.relocates would already be removed right? i.e. the thing you're trying to solve is that the standpoint can have two operands which are the same value and thus two gc.relocates which are equivalent but not textually identical? Just want to make sure I understand the problem properly.

May 23 2020, 12:29 AM · Restricted Project

May 22 2020

dantrushin updated the diff for D80445: [EarlyCSE] Common gc.relocate calls..

Remove debug leftover

May 22 2020, 11:15 AM · Restricted Project
dantrushin created D80445: [EarlyCSE] Common gc.relocate calls..
May 22 2020, 9:38 AM · Restricted Project
dantrushin committed rG5451289abafd: [SCEV] Constant fold MultExpr before applying depth limit. (authored by dantrushin).
[SCEV] Constant fold MultExpr before applying depth limit.
May 22 2020, 9:06 AM
dantrushin closed D79893: [SCEV] Constant fold MultExpr before applying depth limit..
May 22 2020, 9:06 AM · Restricted Project

May 21 2020

dantrushin updated the diff for D79893: [SCEV] Constant fold MultExpr before applying depth limit..

Address comments

May 21 2020, 2:05 PM · Restricted Project
dantrushin committed rGdedcefe09d18: [Statepoint] Constant fold FP deopt args. (authored by dantrushin).
[Statepoint] Constant fold FP deopt args.
May 21 2020, 1:36 AM
dantrushin closed D80318: [Statepoint] Constant fold FP deopt args..
May 21 2020, 1:36 AM · Restricted Project

May 20 2020

dantrushin created D80318: [Statepoint] Constant fold FP deopt args..
May 20 2020, 1:11 PM · Restricted Project

May 19 2020

dantrushin updated the diff for D79893: [SCEV] Constant fold MultExpr before applying depth limit..

Only ignore depth limit for all-constant expressions

May 19 2020, 11:25 PM · Restricted Project
dantrushin added inline comments to D79893: [SCEV] Constant fold MultExpr before applying depth limit..
May 19 2020, 11:02 PM · Restricted Project
dantrushin added inline comments to D80193: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 3/5..
May 19 2020, 2:40 AM · Restricted Project
dantrushin created D80195: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 4/5..
May 19 2020, 1:36 AM · Restricted Project
dantrushin created D80192: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 2/5..
May 19 2020, 1:36 AM · Restricted Project
dantrushin created D80196: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 5/5..
May 19 2020, 1:36 AM · Restricted Project
dantrushin created D80193: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 3/5..
May 19 2020, 1:36 AM · Restricted Project
dantrushin removed a reviewer for D80192: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 2/5.: bogner.
May 19 2020, 1:36 AM · Restricted Project
dantrushin created D80191: MIR Statepoint refactoring: pass GC pointers in VRegs. Part 1/5..
May 19 2020, 1:36 AM · Restricted Project

May 14 2020

dantrushin updated the diff for D79893: [SCEV] Constant fold MultExpr before applying depth limit..

Fix clang-format error

May 14 2020, 12:29 AM · Restricted Project
dantrushin added inline comments to D79893: [SCEV] Constant fold MultExpr before applying depth limit..
May 14 2020, 12:29 AM · Restricted Project

May 13 2020

dantrushin created D79893: [SCEV] Constant fold MultExpr before applying depth limit..
May 13 2020, 11:57 AM · Restricted Project

Apr 21 2020

dantrushin added inline comments to D77985: Fix bug in SmallBitVector::find_next_unset.
Apr 21 2020, 11:52 AM · Restricted Project

Apr 15 2020

dantrushin committed rGedbb27ccb634: [Statepoint] Add getters to StatepointOpers. (authored by dantrushin).
[Statepoint] Add getters to StatepointOpers.
Apr 15 2020, 4:54 AM
dantrushin closed D78119: [Statepoint] Add getters to StatepointOpers. NFC..
Apr 15 2020, 4:54 AM · Restricted Project

Apr 14 2020

dantrushin created D78119: [Statepoint] Add getters to StatepointOpers. NFC..
Apr 14 2020, 9:06 AM · Restricted Project
dantrushin accepted D78103: [ADCE] Fix incorrect reporting of CFG changes.

Good catch!
LGTM

Apr 14 2020, 6:22 AM · Restricted Project

Apr 9 2020

dantrushin accepted D77797: Re-land [Codegen/Statepoint] Allow usage of registers for non gc deopt values..
Apr 9 2020, 7:01 AM · Restricted Project

Apr 7 2020

dantrushin accepted D77371: [Codegen/Statepoint] Allow usage of registers for non gc deopt values..
Apr 7 2020, 12:31 PM · Restricted Project
dantrushin accepted D77629: [DAG] Consolidate require spill slot logic in lambda. NFC..

LGTM

Apr 7 2020, 2:40 AM · Restricted Project

Mar 31 2020

dantrushin committed rG06c58f11a99a: [SCEV] Use backedge SCEV of PHI only if its input is loop invariant (authored by dantrushin).
[SCEV] Use backedge SCEV of PHI only if its input is loop invariant
Mar 31 2020, 4:58 AM
dantrushin closed D73181: [SCEV] Use backedge SCEV of PHI only if its input is loop invariant.
Mar 31 2020, 4:57 AM · Restricted Project
dantrushin committed rG47107dc3bda1: [Statepoint] Fix StatepointLoweringInfo::GCTransitionArgs initialization (authored by dantrushin).
[Statepoint] Fix StatepointLoweringInfo::GCTransitionArgs initialization
Mar 31 2020, 2:10 AM
dantrushin closed D77075: [Statepoint] Fix StatepointLoweringInfo::GCTransitionArgs initialization.
Mar 31 2020, 2:10 AM · Restricted Project

Mar 30 2020

dantrushin created D77075: [Statepoint] Fix StatepointLoweringInfo::GCTransitionArgs initialization.
Mar 30 2020, 10:49 AM · Restricted Project
dantrushin added inline comments to D77036: [CodeGen] Fix isGCValue utility for statepoint lowering.
Mar 30 2020, 9:43 AM

Mar 26 2020

dantrushin added a comment to D73181: [SCEV] Use backedge SCEV of PHI only if its input is loop invariant.

Ping

Mar 26 2020, 9:45 AM · Restricted Project

Mar 19 2020

dantrushin added a comment to D76305: [RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer.

I hoped Philip will review this, because I'm not very familiar with this part of RS4GC and I have couple quetions here, see inline.

Mar 19 2020, 7:32 AM · Restricted Project

Mar 18 2020

dantrushin added inline comments to D76305: [RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer.
Mar 18 2020, 7:02 AM · Restricted Project

Mar 12 2020

dantrushin updated the diff for D73181: [SCEV] Use backedge SCEV of PHI only if its input is loop invariant.

Remove redundant lambda

Mar 12 2020, 12:28 PM · Restricted Project

Mar 11 2020

dantrushin accepted D76013: [GC] Loosen ordering on statepoint reloads to allow CSE.

Wow. That simple.
LGTM

Mar 11 2020, 11:52 AM · Restricted Project

Mar 10 2020

dantrushin accepted D75964: [GC] Remove buggy untested optimization from statepoint lowering.

LGTM.
I think, doing this in CodeGenPrepare is a good idea.

Mar 10 2020, 11:25 PM · Restricted Project

Mar 6 2020

dantrushin accepted D75704: [RS4GC] Handle uses of extractelement for conversion from vector to scalar base.

LGTM, but what about test failure? Please fix it

Mar 6 2020, 5:31 AM · Restricted Project