Page MenuHomePhabricator

qcolombet (Quentin Colombet)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 17 2012, 10:03 AM (422 w, 1 d)

Recent Activity

Mon, Jan 11

qcolombet committed rG905623b64df0: [NFC][LICM] Minor improvements to debug output (authored by qcolombet).
[NFC][LICM] Minor improvements to debug output
Mon, Jan 11, 6:03 PM
qcolombet closed D93577: [NFC][LICM] Minor improvements to debug output.
Mon, Jan 11, 6:03 PM · Restricted Project

Thu, Jan 7

qcolombet added inline comments to D55333: VirtRegMap: Preserve LiveDebugVariables.
Thu, Jan 7, 9:53 AM · Restricted Project
qcolombet added inline comments to D55333: VirtRegMap: Preserve LiveDebugVariables.
Thu, Jan 7, 9:50 AM · Restricted Project
qcolombet accepted D93739: CodeGen: Refactor regallocator command line and target selection.
Thu, Jan 7, 9:43 AM · Restricted Project

Dec 18 2020

qcolombet accepted D90369: [FastRA] Fix handling of bundled MIs.
Dec 18 2020, 5:05 PM · Restricted Project

Dec 15 2020

qcolombet accepted D92665: RegisterCoalescer: Remove phi-only subranges when erasing identity copies.
Dec 15 2020, 2:01 PM · Restricted Project

Dec 3 2020

qcolombet added inline comments to D91066: [SlotIndexes] Consider existing index range in insertMBBIntoMaps.
Dec 3 2020, 10:03 AM · Restricted Project

Nov 6 2020

qcolombet committed rGa585228027a0: Prevent LICM and machineLICM from hoisting convergent operations (authored by qcolombet).
Prevent LICM and machineLICM from hoisting convergent operations
Nov 6 2020, 10:27 AM
qcolombet closed D90361: Prevent LICM and machineLICM from hoisting convergent operations.
Nov 6 2020, 10:27 AM · Restricted Project

Nov 4 2020

qcolombet accepted D89930: [X86] Enable shrink-wrapping for frameless non-nounwind functions on platforms not using compact unwind.
Nov 4 2020, 9:55 AM · Restricted Project
qcolombet added inline comments to D90369: [FastRA] Fix handling of bundled MIs.
Nov 4 2020, 9:50 AM · Restricted Project
qcolombet accepted D90637: [ValueTracking] Inbounds does not imply nsw.
Nov 4 2020, 9:47 AM · Restricted Project
qcolombet accepted D88126: [Machinesink] add more profitable pattern if target bb register pressure is not too high.
Nov 4 2020, 9:46 AM · Restricted Project

Oct 30 2020

qcolombet added a comment to D90361: Prevent LICM and machineLICM from hoisting convergent operations.

This is allowed by the current definition. See D85603

Oct 30 2020, 8:54 AM · Restricted Project

Oct 27 2020

qcolombet accepted D86864: [MachineSinking] sink more profitable loads.

I guess the compiling time increase on these benchmarks should be acceptable?

Oct 27 2020, 9:15 AM · Restricted Project
qcolombet accepted D90154: RegAlloc: Clear isSSA.
Oct 27 2020, 9:10 AM · Restricted Project

Oct 26 2020

qcolombet committed rG78a7941e5cff: [TargetRegisterInfo] Fix a couple of typos in the comments (authored by qcolombet).
[TargetRegisterInfo] Fix a couple of typos in the comments
Oct 26 2020, 3:20 PM

Oct 21 2020

qcolombet committed rGee6abef5323d: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related… (authored by qcolombet).
[ValueTracking] Interpret GEPs as a series of adds multiplied by the related…
Oct 21 2020, 3:07 PM
qcolombet closed D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.
Oct 21 2020, 3:07 PM · Restricted Project
qcolombet added a comment to D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.

Thanks all for your help and @nikic in particular for doing the perf measurements and pushing for a better solution.
I think this shows that reviews work and produce better code quality!

Oct 21 2020, 12:18 PM · Restricted Project
qcolombet updated the diff for D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.
  • Use Known directly instead of using an intermediate AddrKnownBits variable
  • Change AccCstIndices into AccConstIndices
  • Move initialization code of IndexBits next to first use
  • Regenerate test case using update_test_check
Oct 21 2020, 12:13 PM · Restricted Project

Oct 20 2020

qcolombet added a comment to D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.

Oups, tagged Eli's old account.
Tagging the new one @efriedma

Oct 20 2020, 3:53 PM · Restricted Project
qcolombet updated subscribers of D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.

Did 1 & 2 of @eli.friedman's suggestions.

Oct 20 2020, 3:50 PM · Restricted Project
qcolombet updated the diff for D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.
  • Skip zero indices
  • Accumulate constant indices with constant scaling factor in a separate variable to avoid calls to computeForAddSub
Oct 20 2020, 3:42 PM · Restricted Project
qcolombet added a comment to D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.

Thanks @efriedma for the suggestions!

Oct 20 2020, 2:27 PM · Restricted Project
qcolombet added a comment to D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.

If we remove that from the equation, I expect the compile-time impact of this patch would be pretty minimal. I started some work on this, but I'm not sure when I'll be able to finish it.

Oct 20 2020, 2:25 PM · Restricted Project
qcolombet added a comment to D86864: [MachineSinking] sink more profitable loads.

Looks reasonable but I'd like to have an idea of the compile time impact of this patch.

Oct 20 2020, 9:45 AM · Restricted Project

Oct 19 2020

qcolombet added a comment to D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.

Following the conversation in D87342 , this patch has been rebased and all the previous feedbacks have been addressed.

Oct 19 2020, 5:11 PM · Restricted Project
qcolombet updated the diff for D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.

Get rid of TrailZ and track everything with AddrKnownBits.

Oct 19 2020, 5:08 PM · Restricted Project

Oct 16 2020

qcolombet updated the diff for D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.

Rebase patch
Add the reviewers from D87342

Oct 16 2020, 11:49 AM · Restricted Project

Oct 9 2020

qcolombet requested changes to D86836: Support a list of CostPerUse values.

The general direction is fine, but IMHO there are needless code churn.
Why can't we stick to getCostPerUse instead of changing all the users?

Oct 9 2020, 12:34 PM · Restricted Project
qcolombet accepted D89151: [X86] Don't copy kill flag when expanding LCMPXCHG16B_SAVE_RBX.

Nice catch!

Oct 9 2020, 11:13 AM · Restricted Project

Oct 8 2020

qcolombet committed rGfd8275e04a97: [GlobalISel] Add missing pass dependencies for IRTranslator (authored by qcolombet).
[GlobalISel] Add missing pass dependencies for IRTranslator
Oct 8 2020, 1:58 PM
qcolombet closed D89063: [GlobalISel] Add missing pass dependencies for IRTranslator.
Oct 8 2020, 1:58 PM · Restricted Project
qcolombet added a comment to D89063: [GlobalISel] Add missing pass dependencies for IRTranslator.

Thanks for the quick review @aemerson!

Oct 8 2020, 1:53 PM · Restricted Project
qcolombet requested review of D89063: [GlobalISel] Add missing pass dependencies for IRTranslator.
Oct 8 2020, 12:12 PM · Restricted Project
qcolombet committed rGd421e0484afd: [KnownBits] Add a sextOrTrunc method (authored by qcolombet).
[KnownBits] Add a sextOrTrunc method
Oct 8 2020, 11:35 AM
qcolombet committed rG9431f8ad2e03: [KnownBits] Add a computeForMul method (authored by qcolombet).
[KnownBits] Add a computeForMul method
Oct 8 2020, 11:35 AM
qcolombet committed rGf1f31eb2daab: [unittests] Add a few tests for computeKnownBits with ranges (authored by qcolombet).
[unittests] Add a few tests for computeKnownBits with ranges
Oct 8 2020, 11:35 AM
qcolombet closed D88937: [KnownBits] Add a sextOrTrunc method.
Oct 8 2020, 11:35 AM · Restricted Project
qcolombet closed D88935: [KnownBits] Add a computeForMul method.
Oct 8 2020, 11:35 AM · Restricted Project
qcolombet closed D88934: [unittests] Add a few tests for computeKnownBits with ranges.
Oct 8 2020, 11:35 AM · Restricted Project

Oct 7 2020

qcolombet added a comment to D88937: [KnownBits] Add a sextOrTrunc method.

Could use a test, but it generally makes sense to have such a method.

Oct 7 2020, 3:02 PM · Restricted Project
qcolombet updated the diff for D88937: [KnownBits] Add a sextOrTrunc method.
  • Add a test for the new method
Oct 7 2020, 3:00 PM · Restricted Project
qcolombet added a comment to D88935: [KnownBits] Add a computeForMul method.

Thanks guys for the quick review!

Oct 7 2020, 3:00 PM · Restricted Project
qcolombet updated the diff for D88935: [KnownBits] Add a computeForMul method.
  • Move method earlier in the header
  • Fix comment in test
Oct 7 2020, 2:59 PM · Restricted Project
qcolombet updated the diff for D88934: [unittests] Add a few tests for computeKnownBits with ranges.
  • Add getMinValue/getMaxValue
Oct 7 2020, 2:58 PM · Restricted Project

Oct 6 2020

qcolombet abandoned D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.

Abandoning this diff in favor of D86364 based on our discussion.

Oct 6 2020, 4:35 PM · Restricted Project
qcolombet reclaimed D86364: [ValueTracking] Interpret GEPs as a series of adds multiplied by the related scaling factor.

Resurrecting this diff.
I need to rebase on top of the refactoring: D88937 and D88935.

Oct 6 2020, 4:34 PM · Restricted Project
qcolombet added a comment to D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.

(I'll add the gep test in a separate PR to demonstrate the lack of precision for these.)

Oct 6 2020, 4:33 PM · Restricted Project
qcolombet requested review of D88937: [KnownBits] Add a sextOrTrunc method.
Oct 6 2020, 4:32 PM · Restricted Project
qcolombet requested review of D88935: [KnownBits] Add a computeForMul method.
Oct 6 2020, 4:20 PM · Restricted Project
qcolombet requested review of D88934: [unittests] Add a few tests for computeKnownBits with ranges.
Oct 6 2020, 4:11 PM · Restricted Project
qcolombet added a comment to D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.

I don't have any ideas yet on how to limit the cost, but maybe we can collectively find some more savings in an update of that patch.

Oct 6 2020, 10:45 AM · Restricted Project
qcolombet added a comment to D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.

If the motivating cases all start with a gep, then could we add the extra logic to a wrapper around the regular computeKnownBits()?

Oct 6 2020, 10:12 AM · Restricted Project

Oct 5 2020

qcolombet added inline comments to D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.
Oct 5 2020, 1:54 PM · Restricted Project
qcolombet added a comment to D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.

@nikic, @spatel, @lebedev.ri, @RKSimon, thank you for your feedbacks!

Oct 5 2020, 1:53 PM · Restricted Project
qcolombet added inline comments to D88256: [NFC][regalloc] Separate iteration from AllocationOrder.
Oct 5 2020, 1:33 PM · Restricted Project
qcolombet accepted D88256: [NFC][regalloc] Separate iteration from AllocationOrder.

LGTM with nitpicks

Oct 5 2020, 11:36 AM · Restricted Project
qcolombet accepted D88713: [NFC][regalloc] Model weight normalization as a virtual.
Oct 5 2020, 11:27 AM · Restricted Project
qcolombet added a comment to D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.

It's been almost a month and nobody commented on the approach.

Oct 5 2020, 10:52 AM · Restricted Project

Oct 1 2020

qcolombet accepted D88598: [NFC] Let (MC)Register APIs check isStackSlot.
Oct 1 2020, 9:29 AM · Restricted Project

Sep 30 2020

qcolombet added a comment to D86864: [MachineSinking] sink more profitable loads.

Given you've already taken a look, can you do the review or do you want me to step in?

Sep 30 2020, 9:39 AM · Restricted Project

Sep 29 2020

qcolombet accepted D88499: [NFC][regalloc] Make VirtRegAuxInfo part of allocator state.

When looking at Greedy, for example, it's easier to read that "weight calculation always happens the same way".

Sep 29 2020, 2:30 PM · Restricted Project
qcolombet requested changes to D88499: [NFC][regalloc] Make VirtRegAuxInfo part of allocator state.

From the perspective of the caller, this patch exposes some implementation details that I am not sure are worth it.

Sep 29 2020, 10:13 AM · Restricted Project
qcolombet added a comment to D88455: [NFC][regalloc] Unit test for AllocationOrder iteration..

Thanks for doing this.

Sep 29 2020, 10:02 AM · Restricted Project

Sep 28 2020

qcolombet added a comment to D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.

Gentle ping @nikic, @aqjune, @spatel, @lebedev.ri, @RKSimon.

Sep 28 2020, 10:14 AM · Restricted Project
qcolombet accepted D88397: [SplitKit] Cope with no live subranges in defFromParent.

LGTM.
The test case could be more descriptive though, see my inline comment.

Sep 28 2020, 10:08 AM · Restricted Project

Sep 25 2020

qcolombet requested changes to D88256: [NFC][regalloc] Separate iteration from AllocationOrder.

I like that we take the iterator path, but I don't think the current patch is clearer than the previous implementation.

Sep 25 2020, 1:51 PM · Restricted Project
qcolombet added a comment to rG6f6d389da5c3: [SplitKit] Only copy live lanes.

Thanks for looking into a test case.

Sep 25 2020, 11:16 AM

Sep 23 2020

qcolombet added a comment to rG6f6d389da5c3: [SplitKit] Only copy live lanes.

Any progress on a fix?

Sep 23 2020, 4:11 PM
qcolombet accepted D82258: [RegisterCoalescer] Fix IMPLICIT_DEF init removal for a register on joining.

The IMPLICIT_DEF is erased only if there some "incoming" value from "other reg".

Sep 23 2020, 10:12 AM · Restricted Project

Sep 22 2020

qcolombet added a comment to D82258: [RegisterCoalescer] Fix IMPLICIT_DEF init removal for a register on joining.

Why would we need to keep this impdef?

Sep 22 2020, 10:55 AM · Restricted Project
qcolombet added inline comments to rG6f6d389da5c3: [SplitKit] Only copy live lanes.
Sep 22 2020, 10:46 AM

Sep 21 2020

qcolombet added a comment to rG6f6d389da5c3: [SplitKit] Only copy live lanes.

Note: A possible fix could be:

diff --git a/llvm/lib/CodeGen/SplitKit.cpp b/llvm/lib/CodeGen/SplitKit.cpp
index 4029c855c910..a1029bcbc71c 100644
--- a/llvm/lib/CodeGen/SplitKit.cpp
+++ b/llvm/lib/CodeGen/SplitKit.cpp
@@ -655,13 +655,20 @@ VNInfo *SplitEditor::defFromParent(unsigned RegIdx,
         if (S.liveAt(UseIdx))
           LaneMask |= S.LaneMask;
       }
-      assert(LaneMask.any() && "Interval has no live subranges");
     } else {
       LaneMask = LaneBitmask::getAll();
     }
Sep 21 2020, 4:37 PM
qcolombet added inline comments to rG6f6d389da5c3: [SplitKit] Only copy live lanes.
Sep 21 2020, 4:23 PM
qcolombet accepted D87939: [PeepholeOptimizer] Enhance the redundant COPY elimination..

It does improve the original by considering the COPY from the same subreg.

Sep 21 2020, 12:12 PM · Restricted Project
qcolombet added a comment to D87939: [PeepholeOptimizer] Enhance the redundant COPY elimination..

The comment seems outdated, if my understanding is right, and even the original code cannot perform that change since, once the 2nd COPY with same source is found in L1407, the check @ L1419 just skips that earlier as the 1st COPY has no subreg and the 2nd COPY has sub1.

Sep 21 2020, 11:55 AM · Restricted Project
qcolombet added a comment to D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.

Ping!

Sep 21 2020, 10:58 AM · Restricted Project
qcolombet requested changes to D87939: [PeepholeOptimizer] Enhance the redundant COPY elimination..

I must be missing something, but it feels to me that this patch is actually making the situation worse.

Sep 21 2020, 10:58 AM · Restricted Project

Sep 18 2020

qcolombet accepted D86925: [MachineSink] add one more profitable pattern for sinking.

Weird, I added case test/CodeGen/PowerPC/sink-down-more-instructions-1.mir. Could you do another check?

Sep 18 2020, 10:21 AM · Restricted Project

Sep 17 2020

qcolombet committed rG99e865b618f3: [TargetRegisterInfo] Add a couple of target hooks for the greedy register… (authored by qcolombet).
[TargetRegisterInfo] Add a couple of target hooks for the greedy register…
Sep 17 2020, 3:25 PM
qcolombet added a comment to D86925: [MachineSink] add one more profitable pattern for sinking.

1: add one more mir test case

Sep 17 2020, 9:47 AM · Restricted Project

Sep 16 2020

qcolombet accepted D87760: CodeGen: Move split block utility to MachineBasicBlock.

LGTM

Sep 16 2020, 11:27 AM · Restricted Project
qcolombet added a comment to D86925: [MachineSink] add one more profitable pattern for sinking.

As expected, the improvement for the benchmark is gone now. : (

Sep 16 2020, 11:18 AM · Restricted Project

Sep 15 2020

qcolombet updated the diff for D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.
  • Fix a few call sites where I was passing TTI instead of the boolean for UseInstrInfo (it doesn't help that the compiler didn't warm on these)
Sep 15 2020, 4:31 PM · Restricted Project
qcolombet updated the diff for D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.
  • Remove const_cast that was a left over from the proof of concept
Sep 15 2020, 2:24 PM · Restricted Project
qcolombet added a comment to D87342: Allow targets to augment computeKnownBits with their analysis using TargetTransformInfo.

Gentle ping @nikic.

Sep 15 2020, 11:16 AM · Restricted Project
qcolombet added a comment to D86925: [MachineSink] add one more profitable pattern for sinking.

The real world case I met is not a loop invariant instruction, it has an operand which is a user of PHI in loop header.

Sep 15 2020, 11:15 AM · Restricted Project

Sep 14 2020

qcolombet committed rGb3afad046301: [GlobalISel] Add a `X, Y = G_UNMERGE(G_ZEXT Z)` -> X = G_ZEXT Z; Y = 0 combine (authored by qcolombet).
[GlobalISel] Add a `X, Y = G_UNMERGE(G_ZEXT Z)` -> X = G_ZEXT Z; Y = 0 combine
Sep 14 2020, 6:30 PM
qcolombet closed D87427: [GlobalISel] Add a `X, Y = G_UNMERGE(G_ZEXT Z)` -> X = G_ZEXT Z; Y = 0 combine.
Sep 14 2020, 6:30 PM · Restricted Project
qcolombet committed rGd2321129bda7: [GlobalISel] Add `X,Y<dead> = G_UNMERGE Z` -> X = G_TRUNC Z (authored by qcolombet).
[GlobalISel] Add `X,Y<dead> = G_UNMERGE Z` -> X = G_TRUNC Z
Sep 14 2020, 5:32 PM
qcolombet closed D87174: [GlobalISel] Add `X,Y<dead> = G_UNMERGE Z` -> X = G_TRUNC Z.
Sep 14 2020, 5:32 PM · Restricted Project
qcolombet committed rGa36278c2f8b5: [GlobalISel] Add G_UNMERGE(Cst) -> Cst1, Cst2, ... combine (authored by qcolombet).
[GlobalISel] Add G_UNMERGE(Cst) -> Cst1, Cst2, ... combine
Sep 14 2020, 4:32 PM
qcolombet closed D87166: [GlobalISel] Add G_UNMERGE(Cst) -> Cst1, Cst2, ... combine.
Sep 14 2020, 4:31 PM · Restricted Project
qcolombet committed rG670c276232ec: [GlobalISel] Add G_UNMERGE_VALUES(G_MERGE_VALUES) combine (authored by qcolombet).
[GlobalISel] Add G_UNMERGE_VALUES(G_MERGE_VALUES) combine
Sep 14 2020, 3:46 PM
qcolombet closed D87117: [GlobalISel] Add G_UNMERGE_VALUES(G_MERGE_VALUES) combine.
Sep 14 2020, 3:46 PM · Restricted Project
qcolombet added a comment to D82258: [RegisterCoalescer] Fix IMPLICIT_DEF init removal for a register on joining.

I had a (slightly) closer look and I have a question:

Sep 14 2020, 3:37 PM · Restricted Project
qcolombet updated the diff for D87427: [GlobalISel] Add a `X, Y = G_UNMERGE(G_ZEXT Z)` -> X = G_ZEXT Z; Y = 0 combine.
  • Use Register default constructor instead of forcing = 0
Sep 14 2020, 2:46 PM · Restricted Project