Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

Feed Advanced Search

Mon, Sep 18

qcolombet added a comment to D157458: [X86] Run X86FastPreTileConfigPass only with FastISel..

Post-selection code should not be tolerant of registers without a class. It is unequivocally a bug for a used register to pass selection without a class dead or not

Mon, Sep 18, 5:58 AM · Restricted Project, Restricted Project
qcolombet accepted D146859: RegAllocGreedy: Fix detection of lanes read by a bundle.
Mon, Sep 18, 5:54 AM · Restricted Project, Restricted Project
qcolombet accepted D156345: RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG.
Mon, Sep 18, 5:52 AM · Restricted Project, Restricted Project

Fri, Sep 15

qcolombet accepted D157458: [X86] Run X86FastPreTileConfigPass only with FastISel..

Do you think we still need to modify X86FastPreTileConfig?

Fri, Sep 15, 1:44 AM · Restricted Project, Restricted Project

Wed, Sep 13

qcolombet accepted D156491: [RA] Split a virtual register in cold blocks if it is not assigned preferred physical register.

Thanks for the clarifications @Carrot

Wed, Sep 13, 11:58 PM · Restricted Project, Restricted Project
qcolombet added inline comments to D156491: [RA] Split a virtual register in cold blocks if it is not assigned preferred physical register.
Wed, Sep 13, 8:50 AM · Restricted Project, Restricted Project
qcolombet added a comment to D157458: [X86] Run X86FastPreTileConfigPass only with FastISel..

I've added a part about alive registers.

Wed, Sep 13, 7:44 AM · Restricted Project, Restricted Project
qcolombet added a comment to D86617: [GlobalISel][TableGen] Take first result for multi-output instructions.

Long term I assume we should just have MIR patterns working for ISel, but as long as we rely on DAG patterns I believe this is a good change (we inevitably need to make some tradeoffs in this case anyway), can we land it or are there still some objections?

Wed, Sep 13, 7:22 AM · Restricted Project, Restricted Project
qcolombet added a comment to D151848: [X86, Peephole] Enable FoldImmediate for X86.

The peephole optimizer changes look good to me.
+1 on every comments touching on test cases and comments.

Wed, Sep 13, 1:01 AM · Restricted Project, Restricted Project

Mon, Sep 11

qcolombet accepted D158882: RegisterCoalescer: Don't delete IMPLICIT_DEF if it's live into the same block.
Mon, Sep 11, 2:48 AM · Restricted Project, Restricted Project

Tue, Sep 5

qcolombet added a comment to D158847: [mlir][nvgpu] remove duplicated pattern (nfc).

Good catch!

Tue, Sep 5, 1:20 AM · Restricted Project, Restricted Project

Mon, Sep 4

qcolombet added a comment to D158720: [MLIR][NVVM] Add CTA Cluster barrier intrinsics for sm_90.

BTW, LGTM :D.

Mon, Sep 4, 11:33 PM · Restricted Project, Restricted Project

Aug 31 2023

qcolombet accepted D159242: [InlineAsm] wrap Kind in enum class NFC.

Nice clean-up!

Aug 31 2023, 5:39 AM · Restricted Project, Restricted Project

Aug 22 2023

qcolombet accepted D157382: [MLIR][NVGPU] Introduction of wgmma.generate.descriptor Op.
Aug 22 2023, 6:25 AM · Restricted Project, Restricted Project
qcolombet accepted D158403: [MLIR][NVGPU] Introduce Warpgroup Matrix Descriptor Type.
Aug 22 2023, 3:14 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D157382: [MLIR][NVGPU] Introduction of wgmma.generate.descriptor Op.
Aug 22 2023, 3:12 AM · Restricted Project, Restricted Project

Aug 14 2023

qcolombet accepted D157864: [CodeGen] Set regunitmasks for leaf regs to all instead of none.
Aug 14 2023, 7:11 AM · Restricted Project, Restricted Project
qcolombet accepted D157843: [MLIR][NVVM] Fix register mapping in `wgmma.mma_async`.
Aug 14 2023, 4:11 AM · Restricted Project, Restricted Project

Aug 11 2023

qcolombet added inline comments to D157458: [X86] Run X86FastPreTileConfigPass only with FastISel..
Aug 11 2023, 2:23 AM · Restricted Project, Restricted Project

Aug 10 2023

qcolombet requested changes to D157458: [X86] Run X86FastPreTileConfigPass only with FastISel..
Aug 10 2023, 1:27 PM · Restricted Project, Restricted Project
qcolombet accepted D157629: [MLIR][Lianlg] Add memory effects for softmax.

Good catch!

Aug 10 2023, 12:38 PM · Restricted Project, Restricted Project
qcolombet added inline comments to D157382: [MLIR][NVGPU] Introduction of wgmma.generate.descriptor Op.
Aug 10 2023, 9:54 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D157382: [MLIR][NVGPU] Introduction of wgmma.generate.descriptor Op.
Aug 10 2023, 9:53 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D157382: [MLIR][NVGPU] Introduction of wgmma.generate.descriptor Op.
Aug 10 2023, 1:05 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D157382: [MLIR][NVGPU] Introduction of wgmma.generate.descriptor Op.
Aug 10 2023, 12:40 AM · Restricted Project, Restricted Project
qcolombet added a comment to D156345: RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG.

The code is reasonable to me, but I am worried by the asserts not being true in general.
I think we should indeed remove SUBREG_TO_REG in the long run and maybe short term, let's turn the asserts into fatal_errors.
That way if this breaks in the wild we'll get reports of the related errors instead of miscompiles.

Aug 10 2023, 12:13 AM · Restricted Project, Restricted Project

Aug 9 2023

qcolombet committed rGbb206cb13122: [NVPTX] Apply global var demotion to private symbols (authored by qcolombet).
[NVPTX] Apply global var demotion to private symbols
Aug 9 2023, 5:44 AM · Restricted Project, Restricted Project
qcolombet closed D154507: [NVPTX] Apply global var demotion to private symbols.
Aug 9 2023, 5:44 AM · Restricted Project, Restricted Project
qcolombet committed rGf559e73fad5b: [mlir] Support fast-math friendly constants for identity value (authored by qcolombet).
[mlir] Support fast-math friendly constants for identity value
Aug 9 2023, 5:28 AM · Restricted Project, Restricted Project
qcolombet closed D156471: [mlir] Support fast-math friendly constants for identity value.
Aug 9 2023, 5:28 AM · Restricted Project, Restricted Project

Aug 8 2023

qcolombet added inline comments to D156491: [RA] Split a virtual register in cold blocks if it is not assigned preferred physical register.
Aug 8 2023, 5:16 AM · Restricted Project, Restricted Project
qcolombet requested changes to D156491: [RA] Split a virtual register in cold blocks if it is not assigned preferred physical register.
Aug 8 2023, 4:26 AM · Restricted Project, Restricted Project
qcolombet added a comment to D156987: [RegScavenger] Remove support for forwards register scavenging.

Yay!

Aug 8 2023, 4:22 AM · Restricted Project, Restricted Project
qcolombet accepted D156346: CodeGen: Disable isCopyInstrImpl if there are implicit operands.
Aug 8 2023, 2:46 AM · Restricted Project, Restricted Project
qcolombet added a comment to D156471: [mlir] Support fast-math friendly constants for identity value.

Does this look good to you?

Aug 8 2023, 12:36 AM · Restricted Project, Restricted Project

Aug 7 2023

qcolombet added inline comments to D156471: [mlir] Support fast-math friendly constants for identity value.
Aug 7 2023, 7:36 AM · Restricted Project, Restricted Project
qcolombet updated the diff for D156471: [mlir] Support fast-math friendly constants for identity value.
  • Use ArithFastMathInterface instead of iterating through the attributes
Aug 7 2023, 7:35 AM · Restricted Project, Restricted Project
qcolombet accepted D156879: [AggressiveAntiDepBreaker] Tweak the fix for renaming a subregister of a live register.

I'm not super familiar with this code, but that sounds reasonable to me.

Aug 7 2023, 7:23 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D156471: [mlir] Support fast-math friendly constants for identity value.
Aug 7 2023, 7:13 AM · Restricted Project, Restricted Project
qcolombet updated the diff for D156471: [mlir] Support fast-math friendly constants for identity value.
  • Use the fastmath flags attached to arith op when using getIdentityElement
  • Add tests catching that behavior
Aug 7 2023, 7:11 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D156471: [mlir] Support fast-math friendly constants for identity value.
Aug 7 2023, 5:33 AM · Restricted Project, Restricted Project
qcolombet updated the diff for D156471: [mlir] Support fast-math friendly constants for identity value.
  • Rebase
  • Set default value for getIdentity
  • Use markdown instead of \p.
Aug 7 2023, 5:13 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D156541: [mlir][NVGPU] WIP - Apply layering changes for e2e NVVM.
Aug 7 2023, 5:10 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D156471: [mlir] Support fast-math friendly constants for identity value.
Aug 7 2023, 4:43 AM · Restricted Project, Restricted Project
qcolombet accepted D156343: RegisterCoalescer: Avoid redundant implicit-def on rematerialize.
Aug 7 2023, 3:35 AM · Restricted Project, Restricted Project
qcolombet accepted D156331: RegisterCoalescer: Handle implicit-def of a super register when rematerializing.
Aug 7 2023, 2:12 AM · Restricted Project, Restricted Project

Jul 28 2023

qcolombet added a comment to D156345: RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG.

Hi @arsenm ,

A maybe more robust temporary fix may be to apply the terminal rule (applyTerminalRule) only on isCopy instructions (right now it is on isCopyLike).

I could be wrong, but I wouldn't be surprised if this is the entry point of the problematic coalesced SUBREG_TO_REGs. And clearly without your fixes, the terminal rule is incorrect on SUBREG_TO_REG.

"UseTerminalRule" is false by default. Swapping the isCopyLike in copyCoalesceInMBB for isCopy induces about 850 test failures

Jul 28 2023, 1:36 PM · Restricted Project, Restricted Project
qcolombet added inline comments to D156346: CodeGen: Disable isCopyInstrImpl if there are implicit operands.
Jul 28 2023, 1:32 PM · Restricted Project, Restricted Project
qcolombet added a comment to D156471: [mlir] Support fast-math friendly constants for identity value.

Thanks for the link @rengolin !

Jul 28 2023, 8:25 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D156346: CodeGen: Disable isCopyInstrImpl if there are implicit operands.
Jul 28 2023, 5:47 AM · Restricted Project, Restricted Project
qcolombet added a comment to D156345: RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG.

A maybe more robust temporary fix may be to apply the terminal rule (applyTerminalRule) only on isCopy instructions (right now it is on isCopyLike).

Jul 28 2023, 5:45 AM · Restricted Project, Restricted Project
qcolombet added a comment to D156345: RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG.

In my mind, if we have implicit defs on a copy, then we should probably not consider the related instruction as a copy to begin with.

Jul 28 2023, 3:25 AM · Restricted Project, Restricted Project
qcolombet accepted D156164: [HACK] X86: Disable isCopyInstrImpl for undef subregister defs.

LGTM

Jul 28 2023, 3:14 AM · Restricted Project, Restricted Project
qcolombet added a comment to D156345: RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG.

This does not yet fix the regression. The isCopyInstr handling needs to start handling implicit-defs on any instruction.

Jul 28 2023, 1:42 AM · Restricted Project, Restricted Project
qcolombet added a comment to D156345: RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG.

The same problem likely exists everywhere trying to do anything with SUBREG_TO_REG. I don't understand how this managed to be broken for so long.

Jul 28 2023, 1:40 AM · Restricted Project, Restricted Project
qcolombet updated the diff for D156471: [mlir] Support fast-math friendly constants for identity value.
  • Fix Smallest/Largest for maxf/minf respectively.
Jul 28 2023, 12:53 AM · Restricted Project, Restricted Project

Jul 27 2023

qcolombet requested review of D156471: [mlir] Support fast-math friendly constants for identity value.
Jul 27 2023, 11:30 AM · Restricted Project, Restricted Project

Jul 26 2023

qcolombet added inline comments to D119916: Add a machine function pass to convert binop(phi(constants), v) to phi(binop) .
Jul 26 2023, 4:00 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D119916: Add a machine function pass to convert binop(phi(constants), v) to phi(binop) .
Jul 26 2023, 1:54 AM · Restricted Project, Restricted Project

Jul 25 2023

qcolombet added a comment to D154507: [NVPTX] Apply global var demotion to private symbols.

Does the patch work for you with the additional context?
The TL;DR is the semantic is correct but more recent drivers may not need that optimization anymore.

Jul 25 2023, 5:22 AM · Restricted Project, Restricted Project

Jul 24 2023

qcolombet added a comment to D119916: Add a machine function pass to convert binop(phi(constants), v) to phi(binop) .

Partial review

Jul 24 2023, 9:26 AM · Restricted Project, Restricted Project
qcolombet accepted D153859: RegisterCoalescer: Fix verifier error on redef of subregister for live out implicit_defs.

LGTM.

Jul 24 2023, 8:44 AM · Restricted Project, Restricted Project
qcolombet accepted D156091: [MLIR][Linalg] Move AggregatedOpInterface in linalg namespace (NFC).
Jul 24 2023, 6:41 AM · Restricted Project, Restricted Project

Jul 21 2023

qcolombet accepted D155942: [MLIR][Linalg] Preserve DPS when decomposing Softmax.
Jul 21 2023, 5:31 AM · Restricted Project, Restricted Project

Jul 19 2023

qcolombet added a comment to D154507: [NVPTX] Apply global var demotion to private symbols.

Hi @jdoerfert,

I'm a bit confused @jdoerfert : are there two different uses of the word "demoted" here? Seems like you're referring to a transformation that turns a global into an alloca, whereas here is it just about "demoting" the linkage type of the global?

I do not see the linkage being changed, if so, to what? Local (=private or internal) is already as "good" as it gets.

Given the test result, and the comment ("Find out if a global variable can be demoted to local scope."), it looks to me as if the scope is changed, thus where the variable is "declared/visible".
That said, I was expecting (w/o knowing for sure), that a variable scoped in a function cannot be accessed by other functions. If that is wrong, the first part of my comment is mood.

I think a variable scoped in a function can be accessed by other functions. Meaning, the symbol may not be visible, but the address pointed by this symbol can be accessed (i.e., it is okay to escape), because the allocations are handled at a higher level (the driver).
@guraypp do you have more details on this?

Jul 19 2023, 7:59 AM · Restricted Project, Restricted Project

Jul 18 2023

qcolombet committed rG9be8219f60e1: [mlir][Linalg] Add an interface to decompose complex ops (authored by qcolombet).
[mlir][Linalg] Add an interface to decompose complex ops
Jul 18 2023, 10:09 AM · Restricted Project, Restricted Project
qcolombet closed D154363: [mlir] Add an interface to decompose complex ops.
Jul 18 2023, 10:09 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D154363: [mlir] Add an interface to decompose complex ops.
Jul 18 2023, 2:59 AM · Restricted Project, Restricted Project
qcolombet added a comment to D154507: [NVPTX] Apply global var demotion to private symbols.

I'm a bit confused @jdoerfert : are there two different uses of the word "demoted" here? Seems like you're referring to a transformation that turns a global into an alloca, whereas here is it just about "demoting" the linkage type of the global?

I do not see the linkage being changed, if so, to what? Local (=private or internal) is already as "good" as it gets.

Given the test result, and the comment ("Find out if a global variable can be demoted to local scope."), it looks to me as if the scope is changed, thus where the variable is "declared/visible".
That said, I was expecting (w/o knowing for sure), that a variable scoped in a function cannot be accessed by other functions. If that is wrong, the first part of my comment is mood.

Jul 18 2023, 2:49 AM · Restricted Project, Restricted Project

Jul 5 2023

qcolombet added a comment to D154074: [mlir] Add internal linkage to `memref.global`.

I've sent a patch for review to fix the NVPTX backend limitation https://reviews.llvm.org/D154507

Jul 5 2023, 6:24 AM · Restricted Project, Restricted Project
qcolombet requested review of D154507: [NVPTX] Apply global var demotion to private symbols.
Jul 5 2023, 6:22 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D154363: [mlir] Add an interface to decompose complex ops.
Jul 5 2023, 3:35 AM · Restricted Project, Restricted Project
qcolombet updated the diff for D154363: [mlir] Add an interface to decompose complex ops.
  • Use cast free implementation
Jul 5 2023, 3:22 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D154363: [mlir] Add an interface to decompose complex ops.
Jul 5 2023, 3:10 AM · Restricted Project, Restricted Project
qcolombet updated the diff for D154363: [mlir] Add an interface to decompose complex ops.
  • Make the AggregatedOpInterface specific to Linalg for now (we may want to drop the interface and just use rewriter patterns.)
  • Fix nits: comments, function names, move the builder first in all the added functions
  • Make the implementation of the transform op cleaner (i.e., support multi result in the returned value).
Jul 5 2023, 3:08 AM · Restricted Project, Restricted Project

Jul 4 2023

qcolombet added inline comments to D154363: [mlir] Add an interface to decompose complex ops.
Jul 4 2023, 9:25 AM · Restricted Project, Restricted Project
qcolombet added a comment to D154074: [mlir] Add internal linkage to `memref.global`.

Talked with @guraypp offline. I think this is a limitation in the PTX backend.

Is it possible to fix this in the PTX backend then? A limitation in this backend should not be the reason to extend the symbol visibility that potentially affects all of MLIR.

Jul 4 2023, 9:10 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D154363: [mlir] Add an interface to decompose complex ops.
Jul 4 2023, 9:04 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D154363: [mlir] Add an interface to decompose complex ops.
Jul 4 2023, 8:42 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D154090: [mlir][nvgpu] Add initial support for `mbarrier`.
Jul 4 2023, 8:21 AM · Restricted Project, Restricted Project
qcolombet added a comment to D154074: [mlir] Add internal linkage to `memref.global`.

Talked with @guraypp offline. I think this is a limitation in the PTX backend.

Jul 4 2023, 8:04 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D154094: [mlir][nvgpu] Add `mbarrier.arrive.expect_tx` and `mbarrier.try_wait.parity`.
Jul 4 2023, 8:03 AM · Restricted Project, Restricted Project
qcolombet added a comment to D154094: [mlir][nvgpu] Add `mbarrier.arrive.expect_tx` and `mbarrier.try_wait.parity`.

Thanks for the added descriptions. Still LGTM :).

Jul 4 2023, 8:03 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D154363: [mlir] Add an interface to decompose complex ops.
Jul 4 2023, 7:57 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D152281: [Transforms][LICM] Add the ability to undo unprofitable reassociation.
Jul 4 2023, 6:42 AM · Restricted Project, Restricted Project
qcolombet accepted D154440: [mlir] integration tests for transform dialect matchers.

LGTM with nits on the descriptions to make things easier to understand.

Jul 4 2023, 6:34 AM · Restricted Project, Restricted Project
qcolombet committed rGf8e59b09f42c: [mlir][arith] Move getNeutralElement from Linalg utils to arith (authored by qcolombet).
[mlir][arith] Move getNeutralElement from Linalg utils to arith
Jul 4 2023, 5:01 AM · Restricted Project, Restricted Project
qcolombet closed D154362: [mlir][arith] Move getNeutralElement from Linalg utils to arith.
Jul 4 2023, 5:01 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D154363: [mlir] Add an interface to decompose complex ops.
Jul 4 2023, 2:24 AM · Restricted Project, Restricted Project

Jul 3 2023

qcolombet requested review of D154363: [mlir] Add an interface to decompose complex ops.
Jul 3 2023, 9:32 AM · Restricted Project, Restricted Project
qcolombet requested review of D154362: [mlir][arith] Move getNeutralElement from Linalg utils to arith.
Jul 3 2023, 9:22 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D153421: [mlir][Linalg] Implement the tiling interface for softmax.
Jul 3 2023, 3:52 AM · Restricted Project, Restricted Project
qcolombet committed rGcf244b55c3d2: [mlir][Linalg] Remove useless include (authored by qcolombet).
[mlir][Linalg] Remove useless include
Jul 3 2023, 3:48 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D153421: [mlir][Linalg] Implement the tiling interface for softmax.
Jul 3 2023, 3:43 AM · Restricted Project, Restricted Project
qcolombet committed rG273600ccea91: [mlir][Linalg] Implement the tiling interface for softmax (authored by qcolombet).
[mlir][Linalg] Implement the tiling interface for softmax
Jul 3 2023, 1:50 AM · Restricted Project, Restricted Project
qcolombet closed D153421: [mlir][Linalg] Implement the tiling interface for softmax.
Jul 3 2023, 1:49 AM · Restricted Project, Restricted Project

Jun 30 2023

qcolombet updated subscribers of D153421: [mlir][Linalg] Implement the tiling interface for softmax.
Jun 30 2023, 8:53 AM · Restricted Project, Restricted Project
qcolombet updated the diff for D153421: [mlir][Linalg] Implement the tiling interface for softmax.
  • Add a tile and fuse test
  • Remove deprecated use of cast
  • Fix the way we generate the dimension (value vs. attribute)
Jun 30 2023, 8:45 AM · Restricted Project, Restricted Project
qcolombet accepted D154094: [mlir][nvgpu] Add `mbarrier.arrive.expect_tx` and `mbarrier.try_wait.parity`.

LGTM with nits.

Jun 30 2023, 1:21 AM · Restricted Project, Restricted Project
qcolombet added inline comments to D153421: [mlir][Linalg] Implement the tiling interface for softmax.
Jun 30 2023, 12:23 AM · Restricted Project, Restricted Project