Page MenuHomePhabricator

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

lebedev.ri (Roman Lebedev)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 27 2012, 6:35 AM (569 w, 5 d)

Recent Activity

Jan 23 2023

lebedev.ri added inline comments to D142292: [SCEV] Introduce `SCEVSelectExpr`.
Jan 23 2023, 11:57 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D142292: [SCEV] Introduce `SCEVSelectExpr`.

Thank you for taking a look!
Addressing nits.

Jan 23 2023, 11:57 AM · Restricted Project, Restricted Project
lebedev.ri updated the summary of D142292: [SCEV] Introduce `SCEVSelectExpr`.
Jan 23 2023, 11:31 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D140271: [NFCI][llvm-exegesis] Benchmark: parallelize codegen (5x ... 8x less wallclock).

While there, extract runOneConfiguration() out of runBatch().

Jan 23 2023, 10:18 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D140271: [NFCI][llvm-exegesis] Benchmark: parallelize codegen (5x ... 8x less wallclock).

Simplify loops in computeBatch().

Jan 23 2023, 9:28 AM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D140271: [NFCI][llvm-exegesis] Benchmark: parallelize codegen (5x ... 8x less wallclock).
Jan 23 2023, 9:05 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D140271: [NFCI][llvm-exegesis] Benchmark: parallelize codegen (5x ... 8x less wallclock).

@gchatelet thank you for taking a look!
Is this better?

Jan 23 2023, 9:05 AM · Restricted Project, Restricted Project

Jan 22 2023

lebedev.ri added a comment to D142292: [SCEV] Introduce `SCEVSelectExpr`.

My primary concern here is compile-time; in general, the more complex expressions we model, the more we have to worry about SCEV going out of control in complex cases.

True, that seems to be The concern for SCEV.

Jan 22 2023, 6:30 PM · Restricted Project, Restricted Project
lebedev.ri updated the summary of D142292: [SCEV] Introduce `SCEVSelectExpr`.
Jan 22 2023, 6:29 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142292: [SCEV] Introduce `SCEVSelectExpr`.

My primary concern here is compile-time; in general, the more complex expressions we model, the more we have to worry about SCEV going out of control in complex cases.

Jan 22 2023, 5:48 PM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D142292: [SCEV] Introduce `SCEVSelectExpr`.
Jan 22 2023, 12:44 PM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D142292: [SCEV] Introduce `SCEVSelectExpr`.

And more refactorings.

Jan 22 2023, 12:41 PM · Restricted Project, Restricted Project
lebedev.ri committed rG0cdf030cf8dc: [SCEV] `getRangeRefIter()`: don't forget to recurse into casts (authored by lebedev.ri).
[SCEV] `getRangeRefIter()`: don't forget to recurse into casts
Jan 22 2023, 12:28 PM · Restricted Project, Restricted Project
lebedev.ri committed rG4f9f0b480fbc: [NFC][SCEV] Reflow `getRangeRefIter()` into an exhaustive switch (authored by lebedev.ri).
[NFC][SCEV] Reflow `getRangeRefIter()` into an exhaustive switch
Jan 22 2023, 12:28 PM · Restricted Project, Restricted Project
lebedev.ri committed rG42aaab3b4545: [NFC][SCEV] `GetMinTrailingZerosImpl()`: deduplicate handling (authored by lebedev.ri).
[NFC][SCEV] `GetMinTrailingZerosImpl()`: deduplicate handling
Jan 22 2023, 12:28 PM · Restricted Project, Restricted Project
lebedev.ri committed rGa09b5a0cfcbd: [NFC][SCEV] Reflow `GetMinTrailingZerosImpl()` into an exhaustive switch (authored by lebedev.ri).
[NFC][SCEV] Reflow `GetMinTrailingZerosImpl()` into an exhaustive switch
Jan 22 2023, 12:28 PM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D142292: [SCEV] Introduce `SCEVSelectExpr`.

@Meinersbur please help with polly stuff. I don't expect that i guessed right,
and i certainly didn't update the test correctly. They have way too much undef in them...

Jan 22 2023, 10:11 AM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D142292: [SCEV] Introduce `SCEVSelectExpr`.
Jan 22 2023, 8:57 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D142292: [SCEV] Introduce `SCEVSelectExpr`.

Peeled off all refactorings, diff is much simpler now.

Jan 22 2023, 8:26 AM · Restricted Project, Restricted Project
lebedev.ri committed rG493bab8867bf: [NFC][SCEV] Reflow `impliesPoison()` into an exhaustive switch (authored by lebedev.ri).
[NFC][SCEV] Reflow `impliesPoison()` into an exhaustive switch
Jan 22 2023, 7:58 AM · Restricted Project, Restricted Project
lebedev.ri committed rG3c560dd0ae67: [NFC][SCEVExpander] `CmpSelCost`: use the cost of the expression, not operand (authored by lebedev.ri).
[NFC][SCEVExpander] `CmpSelCost`: use the cost of the expression, not operand
Jan 22 2023, 6:49 AM · Restricted Project, Restricted Project
lebedev.ri committed rG418f780f1f88: [NFC][SCEV] Reflow `computeSCEVAtScope()` into an exhaustive switch (authored by lebedev.ri).
[NFC][SCEV] Reflow `computeSCEVAtScope()` into an exhaustive switch
Jan 22 2023, 6:49 AM · Restricted Project, Restricted Project
lebedev.ri committed rGc0081c13a0e4: [NFC][SCEV] `getRelevantLoop()`: deduplicate handling (authored by lebedev.ri).
[NFC][SCEV] `getRelevantLoop()`: deduplicate handling
Jan 22 2023, 6:49 AM · Restricted Project, Restricted Project
lebedev.ri committed rGa81e0700616f: [NFC][SCEV] `getBlockDisposition()`: deduplicate handling (authored by lebedev.ri).
[NFC][SCEV] `getBlockDisposition()`: deduplicate handling
Jan 22 2023, 6:49 AM · Restricted Project, Restricted Project
lebedev.ri committed rGcc016e6f8f59: [NFC][SCEV] `getLoopDisposition()`: deduplicate handling (authored by lebedev.ri).
[NFC][SCEV] `getLoopDisposition()`: deduplicate handling
Jan 22 2023, 6:49 AM · Restricted Project, Restricted Project
lebedev.ri committed rG906e99574e0e: [NFC][SCEV] `computeSCEVAtScope()`: deduplicate handling (authored by lebedev.ri).
[NFC][SCEV] `computeSCEVAtScope()`: deduplicate handling
Jan 22 2023, 6:49 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D141778: [DAGCombiner][X86] `mergeConsecutiveStores()`: support merging splat-stores of the same value.

@RKSimon thank you for taking a look!
Addressing nits.

Jan 22 2023, 5:22 AM · Restricted Project, Restricted Project
lebedev.ri committed rGb40532ceb043: [NFC][X86] Fixup typo in `blend-of-shift.ll` (authored by lebedev.ri).
[NFC][X86] Fixup typo in `blend-of-shift.ll`
Jan 22 2023, 5:15 AM · Restricted Project, Restricted Project
lebedev.ri committed rG902d0e86bdbf: [NFC][X86] Fixup `-mattr=<>` in one runline in `elementwise-store-of-scalar… (authored by lebedev.ri).
[NFC][X86] Fixup `-mattr=<>` in one runline in `elementwise-store-of-scalar…
Jan 22 2023, 5:15 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D141777: [X86] Reenable store merging post-legalization.

@RKSimon thank you for taking a look!
Addressing nits.

Jan 22 2023, 5:10 AM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D141777: [X86] Reenable store merging post-legalization.
Jan 22 2023, 4:58 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142292: [SCEV] Introduce `SCEVSelectExpr`.

What I didn't really understand are your examples in the patch description. The referenced godbolt examples don't contain select instructions, and the input program also doesn't look like it should involve selects, so I'm a bit unclear on the relation these examples have to the patch.

I think non-refactoring patches that say what they do, but don't say why they do what they do, should be automatically reverted.
That TLDR is my general motivation. Sure, they no longer have select's because they got canonicalized into min/max, but that isn't true for everything.

Jan 22 2023, 4:57 AM · Restricted Project, Restricted Project

Jan 21 2023

lebedev.ri committed rG1f4f55de5a16: [NFC][SCEV] `CompareSCEVComplexity`: deduplicate handling (authored by lebedev.ri).
[NFC][SCEV] `CompareSCEVComplexity`: deduplicate handling
Jan 21 2023, 6:04 PM · Restricted Project, Restricted Project
lebedev.ri committed rGb0ef5a82e9aa: [NFC][SCEV] `SCEVTraversal::visitAll()`: deduplicate handling (authored by lebedev.ri).
[NFC][SCEV] `SCEVTraversal::visitAll()`: deduplicate handling
Jan 21 2023, 6:04 PM · Restricted Project, Restricted Project
lebedev.ri committed rGaa121336377f: [NFC][SCEV] `createNodeForSelectOrPHIInstWithICmpInstCond()`: directly take… (authored by lebedev.ri).
[NFC][SCEV] `createNodeForSelectOrPHIInstWithICmpInstCond()`: directly take…
Jan 21 2023, 6:04 PM · Restricted Project, Restricted Project
lebedev.ri committed rGd10adf614296: [NFC][SCEV] `createNodeForSelectOrPHIInstWithICmpInstCond()`: return optional (authored by lebedev.ri).
[NFC][SCEV] `createNodeForSelectOrPHIInstWithICmpInstCond()`: return optional
Jan 21 2023, 6:04 PM · Restricted Project, Restricted Project
lebedev.ri requested review of D142292: [SCEV] Introduce `SCEVSelectExpr`.
Jan 21 2023, 4:53 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142258: [LV] Ignore runtime checks threshold when vectorization is forced.

Please file a bug if there isn't one already.

Jan 21 2023, 3:31 PM · Restricted Project, Restricted Project
lebedev.ri committed rGd486fdffdaa6: [NFC][SCEV] Reflow `getRangeRef()` into an exhaustive switch (authored by lebedev.ri).
[NFC][SCEV] Reflow `getRangeRef()` into an exhaustive switch
Jan 21 2023, 2:41 PM · Restricted Project, Restricted Project
lebedev.ri committed rGab06a74738c6: [NFC][SCEV] Reflow `getRelevantLoop()` into an exhaustive switch (authored by lebedev.ri).
[NFC][SCEV] Reflow `getRelevantLoop()` into an exhaustive switch
Jan 21 2023, 2:16 PM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D141778: [DAGCombiner][X86] `mergeConsecutiveStores()`: support merging splat-stores of the same value.

Rebased, NFC.

Jan 21 2023, 1:53 PM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D141777: [X86] Reenable store merging post-legalization.

Rebased, NFC.
Now that D141776 has landed, this can proceed.

Jan 21 2023, 1:29 PM · Restricted Project, Restricted Project
lebedev.ri committed rG005173cbb609: [X86] `X86TargetLowering`: override `allowsMemoryAccess()` (authored by lebedev.ri).
[X86] `X86TargetLowering`: override `allowsMemoryAccess()`
Jan 21 2023, 1:18 PM · Restricted Project, Restricted Project
lebedev.ri closed D141776: [X86] `X86TargetLowering`: override `allowsMemoryAccess()`.
Jan 21 2023, 1:18 PM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D141776: [X86] `X86TargetLowering`: override `allowsMemoryAccess()`.
Jan 21 2023, 1:11 PM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D141776: [X86] `X86TargetLowering`: override `allowsMemoryAccess()`.

@RKSimon thank you for the review!

Jan 21 2023, 1:10 PM · Restricted Project, Restricted Project
lebedev.ri committed rG898fcfac216e: [NFC][SCEV] `computeSCEVAtScope()`: reserve vector size upfront (authored by lebedev.ri).
[NFC][SCEV] `computeSCEVAtScope()`: reserve vector size upfront
Jan 21 2023, 12:54 PM · Restricted Project, Restricted Project
lebedev.ri committed rG4b4e3fbca96f: [NFC][SCEV] `computeSCEVAtScope()`: `scUnknown`: use early-returns (authored by lebedev.ri).
[NFC][SCEV] `computeSCEVAtScope()`: `scUnknown`: use early-returns
Jan 21 2023, 12:54 PM · Restricted Project, Restricted Project
lebedev.ri committed rGf8eeeffadad3: [NFC][SCEV] Reflow `computeSCEVAtScope()` into an exhaustive switch (authored by lebedev.ri).
[NFC][SCEV] Reflow `computeSCEVAtScope()` into an exhaustive switch
Jan 21 2023, 12:54 PM · Restricted Project, Restricted Project
lebedev.ri committed rG8885420b6df3: [NFC][SCEV] `computeSCEVAtScope()`: clang-format (authored by lebedev.ri).
[NFC][SCEV] `computeSCEVAtScope()`: clang-format
Jan 21 2023, 12:54 PM · Restricted Project, Restricted Project
lebedev.ri updated the summary of D142257: [exegesis] `ParallelSnippetGenerator`: always use `RegRandomizationStrategy`.
Jan 21 2023, 6:09 AM · Restricted Project, Restricted Project

Jan 20 2023

lebedev.ri planned changes to D142257: [exegesis] `ParallelSnippetGenerator`: always use `RegRandomizationStrategy`.

(will only proceed after D140271.)

Jan 20 2023, 6:09 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142254: [X86] Transform vector SET{LE/ULT/ULE} -> SETLT and SET{GE/UGT/UGE} -> SETGT if possible.

This feels like we could easily make this a generic DAG fold with a suitable TLI callback to help determine the preferred CondCode (or just signed/unsigned).

What where you thinking the API would be? I can see it being easy to represent "prefered signed/unsigned" but have trouble seeing a clean and generic
API for only if LT/GT but NOT for LE/GE.

Jan 20 2023, 3:15 PM · Restricted Project, Restricted Project
lebedev.ri updated the summary of D142257: [exegesis] `ParallelSnippetGenerator`: always use `RegRandomizationStrategy`.
Jan 20 2023, 2:52 PM · Restricted Project, Restricted Project
lebedev.ri requested review of D142257: [exegesis] `ParallelSnippetGenerator`: always use `RegRandomizationStrategy`.
Jan 20 2023, 2:48 PM · Restricted Project, Restricted Project
lebedev.ri added a reviewer for D141878: [X86] `canonicalizeShuffleWithBinOps()`: support `VS[HR][LA]I` opcodes, binary shuffles part: efriedma.
Jan 20 2023, 1:24 PM · Restricted Project, Restricted Project
lebedev.ri added a reviewer for D141877: [NFC][X86] `canonicalizeShuffleWithBinOps()`: refactor and generalize, NFC: efriedma.
Jan 20 2023, 1:24 PM · Restricted Project, Restricted Project
lebedev.ri added a reviewer for D141806: [X86] `canonicalizeShuffleWithBinOps()`: support `VS[HR][LA]I` opcodes, unary shuffles part: efriedma.
Jan 20 2023, 1:24 PM · Restricted Project, Restricted Project
lebedev.ri added a reviewer for D141778: [DAGCombiner][X86] `mergeConsecutiveStores()`: support merging splat-stores of the same value: efriedma.
Jan 20 2023, 1:24 PM · Restricted Project, Restricted Project
lebedev.ri added a reviewer for D141776: [X86] `X86TargetLowering`: override `allowsMemoryAccess()`: efriedma.
Jan 20 2023, 1:24 PM · Restricted Project, Restricted Project
lebedev.ri committed rG43a59be45d24: [CVP] Expand bound `udiv`'s, symmetrically with `urem`'s (authored by lebedev.ri).
[CVP] Expand bound `udiv`'s, symmetrically with `urem`'s
Jan 20 2023, 10:54 AM · Restricted Project, Restricted Project
lebedev.ri committed rG51da0dc2887f: [NFC][CVP] Add tests for udiv expansion (authored by lebedev.ri).
[NFC][CVP] Add tests for udiv expansion
Jan 20 2023, 10:54 AM · Restricted Project, Restricted Project
lebedev.ri committed rG1eecf03919cd: [X86] `LowerBUILD_VECTOR()`: fix all-UNDEF detection (authored by lebedev.ri).
[X86] `LowerBUILD_VECTOR()`: fix all-UNDEF detection
Jan 20 2023, 9:22 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D140880: Disable PIE.

That being said, i don't think this can be just set, at best it should be hidden under an opt-in flag.

I don't think there's much point doing this at all if it's opt-in. If you already know that you're suffering from a slow development cycle due to PIE, you might as well just type cmake -DCMAKE_EXE_LINKER_FLAGS=-no-pie. The idea of doing by default was to fix the problem for developers who didn't even know they had the problem.

Jan 20 2023, 9:11 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D140880: Disable PIE.

You probably want https://cmake.org/cmake/help/v3.16/module/CheckPIESupported.html
That being said, i don't think this can be just set, at best it should be hidden under an opt-in flag.

Jan 20 2023, 9:02 AM · Restricted Project, Restricted Project
lebedev.ri removed a reviewer for D142211: [LangRef] Require i8s to be naturally aligned: lebedev.ri.
Jan 20 2023, 7:01 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142211: [LangRef] Require i8s to be naturally aligned.

Yay!

Jan 20 2023, 6:59 AM · Restricted Project, Restricted Project
lebedev.ri removed a reviewer for D142208: [InstCombine] Check one use during GEP merging: lebedev.ri.
Jan 20 2023, 6:19 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D140271: [NFCI][llvm-exegesis] Benchmark: parallelize codegen (5x ... 8x less wallclock).

ping

Jan 20 2023, 4:41 AM · Restricted Project, Restricted Project

Jan 19 2023

lebedev.ri added a reviewer for D141776: [X86] `X86TargetLowering`: override `allowsMemoryAccess()`: craig.topper.
Jan 19 2023, 4:02 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142123: [clang-tidy] Add header guard style to suggest use of #pragma once.

Given the fact its non-standard, it has caveats and peoples eagerness to blindly enable all checks (or all checks from a module).
I feel this check would likely cause more harm than good.

Shall we remove abseil checks?
Shall we remove libc++-specific checks?
Shall we remove webkit checks?
Shall we remove backwards-compatibility checks?

Nothing is ever useful for everyone. Much like -Weverything,
enabling all checks comes with an explcit caveat that
one needs to disable the checks that are not applicable for the codebase.

+1 to having this check.

We're not asking for it to be useful to everyone; we are asking for justification for the current proposed form because there are problems with what's proposed. We're trying to figure out what the correct approach is (fwiw, I'd be opposed to what's proposed as-is but would be fine with a tweaked proposal).

Jan 19 2023, 12:01 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142123: [clang-tidy] Add header guard style to suggest use of #pragma once.

Given the fact its non-standard, it has caveats and peoples eagerness to blindly enable all checks (or all checks from a module).
I feel this check would likely cause more harm than good.

Jan 19 2023, 10:24 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142038: [X86] canonicalizeShuffleWithBinOps - add handling of SSE vector shift nodes.

I'm sorry if I've caused you an issue here, but you did ask on D141877 that I show you my alternative approach, and I did my best to get something to you as fast as possible, despite me explaining that I'm stretched at the moment.

The level of refactoring that you employ in your version is more than is needed to add support for the SSE shifts to fix the regressions on D141778, and I don't agree that generalizing the code so much is necessary, especially as it affects understand-ability.

Maybe if you proposed refactoring patches that weren't part of a dependency chain for a simple improvement then it'd be easier to have a conversation.

Jan 19 2023, 9:02 AM · Restricted Project, Restricted Project
lebedev.ri accepted D78025: Make sure z3 can be disabled from outside, even if detected on the system..

Makes sense to me.

Jan 19 2023, 8:53 AM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D141776: [X86] `X86TargetLowering`: override `allowsMemoryAccess()`.
Jan 19 2023, 5:19 AM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D141777: [X86] Reenable store merging post-legalization.
Jan 19 2023, 5:14 AM · Restricted Project, Restricted Project

Jan 18 2023

lebedev.ri added a comment to D136651: [Clang] Give Clang the ability to use a shared stat cache.

Docs still missing.

Sorry @lebedev.ri I missed your earlier comment about this. What format of doc would you like to see? A more elaborate comment in the tool's source or something else?

Right now it's impossible to discover that tool unless you already know it exists (or it's mentioned in some xcode doc, i guess)
It should have it's own description in it's --help, and ideally an .rst documentation page in docs.

I have no issue adding a more detailed help text. The documentation page seems somewhat overkill, but I guess I could be convinced otherwise. You need a fairly special build environment for this to make a difference and I'm not sure it's broadly applicable. You also need good build system integration to make it practical.

Jan 18 2023, 4:09 PM · Restricted Project, Restricted Project, Restricted Project
lebedev.ri added inline comments to D140811: [DAGCombiner][X86] `visitVECTOR_SHUFFLE()`: splats with a single non-undef element are not splats.
Jan 18 2023, 3:51 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D136651: [Clang] Give Clang the ability to use a shared stat cache.

Docs still missing.

Sorry @lebedev.ri I missed your earlier comment about this. What format of doc would you like to see? A more elaborate comment in the tool's source or something else?

Jan 18 2023, 2:52 PM · Restricted Project, Restricted Project, Restricted Project
lebedev.ri added inline comments to D140811: [DAGCombiner][X86] `visitVECTOR_SHUFFLE()`: splats with a single non-undef element are not splats.
Jan 18 2023, 2:50 PM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D140811: [DAGCombiner][X86] `visitVECTOR_SHUFFLE()`: splats with a single non-undef element are not splats.
Jan 18 2023, 2:23 PM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D140811: [DAGCombiner][X86] `visitVECTOR_SHUFFLE()`: splats with a single non-undef element are not splats.

Rebased, NFC.
Same regression remains, and given that my attempts to improve other things aren't being well-received, i'm not sure if i should bothed.

Jan 18 2023, 2:17 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D141776: [X86] `X86TargetLowering`: override `allowsMemoryAccess()`.

ping

Jan 18 2023, 12:32 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D141777: [X86] Reenable store merging post-legalization.

ping

Jan 18 2023, 12:32 PM · Restricted Project, Restricted Project
lebedev.ri added a comment to D141778: [DAGCombiner][X86] `mergeConsecutiveStores()`: support merging splat-stores of the same value.

ping

Jan 18 2023, 12:32 PM · Restricted Project, Restricted Project
lebedev.ri resigned from D142038: [X86] canonicalizeShuffleWithBinOps - add handling of SSE vector shift nodes.

I don't consider this code to be better, and if it is considered to be,
i may need to reevaluate trying to contribute to this backend.

Jan 18 2023, 10:15 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142038: [X86] canonicalizeShuffleWithBinOps - add handling of SSE vector shift nodes.

I guess i don't see why this is better than the current version of my patches?
Also, this has insufficient test coverage.

Jan 18 2023, 9:55 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D142033: [OpenCL] Always add nounwind attribute for OpenCL.

Thanks!

Jan 18 2023, 8:53 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D141878: [X86] `canonicalizeShuffleWithBinOps()`: support `VS[HR][LA]I` opcodes, binary shuffles part.

Rebased.

Jan 18 2023, 8:26 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D141806: [X86] `canonicalizeShuffleWithBinOps()`: support `VS[HR][LA]I` opcodes, unary shuffles part.

Rebased.

Jan 18 2023, 8:26 AM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D141877: [NFC][X86] `canonicalizeShuffleWithBinOps()`: refactor and generalize, NFC.

Use less smart functions.
@RKSimon is this what you had in mind?

Jan 18 2023, 8:25 AM · Restricted Project, Restricted Project
lebedev.ri added inline comments to D138958: [clang] Better UX for Clang’s unwind-affecting attributes.
Jan 18 2023, 7:53 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
lebedev.ri added a comment to rGf8d9097168b7: [DAGCombiner] `combineShuffleOfSplatVal()`: try to canonicalize to a splat….

Reproducer please. That simply means the assertion should be replaced with return undef;.

I'll get you one tomorrow.

Just run the enclosure thru llc and the failure should be apparent.

Jan 18 2023, 7:46 AM · Restricted Project, Restricted Project
lebedev.ri committed rG7460842fb2e4: [DAGCombiner] `combineShuffleOfSplatVal()`: don't assert that shuffle is non… (authored by lebedev.ri).
[DAGCombiner] `combineShuffleOfSplatVal()`: don't assert that shuffle is non…
Jan 18 2023, 7:45 AM · Restricted Project, Restricted Project
lebedev.ri added a comment to D138958: [clang] Better UX for Clang’s unwind-affecting attributes.

Ok, so. I looked really hard, and essentially i'm not sure we can just change those attributes from implying readonly/readnone.
Things kinda just fall apart

Jan 18 2023, 6:29 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Jan 17 2023

lebedev.ri added a comment to rGf8d9097168b7: [DAGCombiner] `combineShuffleOfSplatVal()`: try to canonicalize to a splat….

This change has injected a failure in Halide's CUDA testing code -- our correctness_predicated_store_load test now fails with

correctness_predicated_store_load: .../DAGCombiner.cpp:23378: llvm::SDValue combineShuffleOfSplatVal(llvm::ShuffleVectorSDNode*, llvm::SelectionDAG&): Assertion `MinNonUndefIdx < NumElts && "Undef shuffle?"' failed.

It's not clear to me whether this is indicative of a a defect in this change (vs a pre-existing bug in Halide that was surfaced by this change) -- advice welcome, but a revert pending investigation would be welcome.

(But since the same IR was passing the validation checks inside LLVM prior to this change, it seems likely that there's a subtle defect in this change.)

Jan 17 2023, 5:08 PM · Restricted Project, Restricted Project
lebedev.ri updated the diff for D141561: [clang] True `noexcept` (`-fstrict-noexcept` language dialect).

Adding more docs as discussed. Further suggestions welcomed.

Jan 17 2023, 5:06 PM · Restricted Project, Restricted Project, Restricted Project
lebedev.ri added a comment to D141877: [NFC][X86] `canonicalizeShuffleWithBinOps()`: refactor and generalize, NFC.

@RKSimon just so we can save everyone's time, can you please explain how you request this to look?

Jan 17 2023, 4:23 PM · Restricted Project, Restricted Project
lebedev.ri updated subscribers of D138958: [clang] Better UX for Clang’s unwind-affecting attributes.
Jan 17 2023, 4:22 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
lebedev.ri updated the diff for D138958: [clang] Better UX for Clang’s unwind-affecting attributes.

Ok, if we must not unconditionally emit the memory attributes, then let's not.
Please stamp? :)

Jan 17 2023, 4:22 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project