Page MenuHomePhabricator

SjoerdMeijer (Sjoerd Meijer)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 26 2016, 2:17 AM (335 w, 3 d)

Recent Activity

Tue, Jun 14

SjoerdMeijer accepted D127676: [ARM] Allow distributing postinc with PHI uses.

Yay, one more postinc, LGTM.

Tue, Jun 14, 1:14 AM · Restricted Project, Restricted Project

Tue, Jun 7

SjoerdMeijer accepted D127213: [ARM][ParallelDSP] Fix self reference bug.

LGTM

Tue, Jun 7, 7:49 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D127146: [LoopFlatten] Replace unchecked dyn_cast with cast..

I also think this must be a binary op.

Tue, Jun 7, 12:44 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D127149: [LoopFlatten] Fix crash if the inner loop trip count comes from a sext instruction..

Thanks for fixing, LGTM.

Tue, Jun 7, 12:39 AM · Restricted Project, Restricted Project

May 30 2022

SjoerdMeijer accepted D126632: [AArch64] Look through copy in MachineCombiner FMUL patterns..

LGTM

May 30 2022, 1:24 AM · Restricted Project, Restricted Project

May 17 2022

SjoerdMeijer accepted D125666: [ARM] Cost modelling for MVE vector fptoi_sat.

LGTM

May 17 2022, 12:40 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D125665: [ARM] Cost modelling for scalar fptoi_sat.

LGTM

May 17 2022, 12:38 AM · Restricted Project, Restricted Project

May 13 2022

SjoerdMeijer accepted D125470: [AArch64] Predicate SSHLL;SCVTF patterns behind UseAlternateSExtLoadCVTF32.

Ok, cheers, LGTM

May 13 2022, 1:43 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D125477: [AArch64] Teach perfect shuffles tables about D-lane movs.

Not that easy to spot that this is an improvement from these test changes, but I think I see a few, and the idea makes sense, so LGTM.

May 13 2022, 12:49 AM · Restricted Project, Restricted Project, Restricted Project
SjoerdMeijer added a comment to D125470: [AArch64] Predicate SSHLL;SCVTF patterns behind UseAlternateSExtLoadCVTF32.

Looks like a good fix. One quick question: I see that some CPUs have FeatureAlternateSExtLoadCVTF32Pattern set. Is that something we want too?

May 13 2022, 12:35 AM · Restricted Project, Restricted Project

May 6 2022

SjoerdMeijer updated the diff for D125008: [llvm-objdump] Print Mnemonic Histogram.

I haven't addressed feedback yet, but have just added a few things to help with the discussion where this belongs.
This now also prints the number of bytes per instruction, so for thumb it now distinguishes between the narrow/wide encodings, and I have also added printing a histogram of immediates. This will look now look like this:

May 6 2022, 6:43 AM · Restricted Project, Restricted Project
SjoerdMeijer added a comment to D125008: [llvm-objdump] Print Mnemonic Histogram.

https://discourse.llvm.org/t/llvm-objdump-print-instruction-histogram/62333

May 6 2022, 2:15 AM · Restricted Project, Restricted Project
SjoerdMeijer added a comment to D125008: [llvm-objdump] Print Mnemonic Histogram.

Thanks all for looking at this!

May 6 2022, 1:01 AM · Restricted Project, Restricted Project

May 5 2022

SjoerdMeijer updated the summary of D125008: [llvm-objdump] Print Mnemonic Histogram.
May 5 2022, 5:48 AM · Restricted Project, Restricted Project
SjoerdMeijer requested review of D125008: [llvm-objdump] Print Mnemonic Histogram.
May 5 2022, 5:47 AM · Restricted Project, Restricted Project

Apr 14 2022

SjoerdMeijer accepted D123379: [AArch64] Cost all perfect shuffles entries as cost 1.

Thanks for explaining! Makes sense, LGTM.

Apr 14 2022, 1:37 AM · Restricted Project, Restricted Project

Apr 13 2022

SjoerdMeijer accepted D123386: [AArch64] Add lane moves to PerfectShuffle tables.

Looks reasonable.

Apr 13 2022, 1:37 AM · Restricted Project, Restricted Project
SjoerdMeijer added a comment to D123379: [AArch64] Cost all perfect shuffles entries as cost 1.

Thanks for the introduction to perfect shuffles! :-)

Apr 13 2022, 12:59 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D123377: [AArch64] Only mark cost 1 perfect shuffles as legal.

That's quite a lot change in the test cases. It's easy to see that the smaller ones are improvements. For the bigger changes that isn't that obvious. But I trust you have run numbers and this is overall better. So LGTM, let's give this a try.

Apr 13 2022, 12:52 AM · Restricted Project, Restricted Project

Apr 4 2022

SjoerdMeijer accepted D123007: [AArch64] Increase cost of v2i64 multiplies.

Sounds reasonable.

Apr 4 2022, 1:35 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D123006: [AArch64] Teach the costmodel about widening muls.

Looks like a good one to me.

Apr 4 2022, 1:27 AM · Restricted Project, Restricted Project

Mar 31 2022

SjoerdMeijer added a comment to D122755: [FuncSpec] Constant propagate multiple arguments for recursive functions..

Thanks for fixing. LGTM too.

Mar 31 2022, 12:08 AM · Restricted Project, Restricted Project

Mar 25 2022

SjoerdMeijer added a comment to D119880: [FuncSpec] Support function specialization across multiple arguments..

It's looking good to me too, just a last round of nits (inlined) and one question just to double check: is the SPEC score the same? I.e., do we still specialise what we want to specialise?

Mar 25 2022, 1:46 AM · Restricted Project, Restricted Project

Mar 15 2022

SjoerdMeijer added a comment to D119880: [FuncSpec] Support function specialization across multiple arguments..

That's true; the new formula is not in the current revision. The idea is to keep a sublinear number of specializations when the number of candidates grows enormously (not expected to happen in real life code). So imagine we had 1000 candidates n/2 would be 500 whereas log10(n^4)+1 will be 13. I measured the instruction count of clang when compiling the llvm test suite with log10(n^5)+1 ( this function has a steeper curve - see https://www.google.com/search?q=plot+log10(x%5E5)%2B1 ) and it had a significant impact on ClamAV (1% more instructions over baseline compared to 0,57% increase with log10(x^4)+1).

Mar 15 2022, 1:49 AM · Restricted Project, Restricted Project

Mar 14 2022

SjoerdMeijer added a comment to D119880: [FuncSpec] Support function specialization across multiple arguments..

I've tried another formula to determine the amount of speciazations we are keeping (instead of Sorted.size()/2). It is defined as auto NumSpecKept = (size_t)std::log10(std::pow(Sorted.size(), 4))+1;.

Mar 14 2022, 7:52 AM · Restricted Project, Restricted Project

Mar 11 2022

SjoerdMeijer added inline comments to D119880: [FuncSpec] Support function specialization across multiple arguments..
Mar 11 2022, 12:46 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D121400: [AArch64] Custom lower concat(v4i8 load, ...).

LGTM

Mar 11 2022, 12:35 AM · Restricted Project, Restricted Project

Mar 10 2022

SjoerdMeijer added a comment to D119880: [FuncSpec] Support function specialization across multiple arguments..

Sorry for the delay. I need to look a bit more at this, but I added some first thoughts inline.

Mar 10 2022, 3:10 AM · Restricted Project, Restricted Project

Mar 3 2022

SjoerdMeijer accepted D120879: [AArch64] Turn UZP1 with undef operand into truncate.

Looks like a nice change to me.

Mar 3 2022, 2:18 AM · Restricted Project, Restricted Project
Herald added a project to D119880: [FuncSpec] Support function specialization across multiple arguments.: Restricted Project.
Mar 3 2022, 1:57 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D120753: [FuncSpec][NFC] Refactor internal structures..

Thanks, looks like a good change to me.

Mar 3 2022, 1:51 AM · Restricted Project, Restricted Project
Herald added a project to D120571: [CGP,AArch64] Replace zexts with shuffle that can be lowered using tbl.: Restricted Project.
Mar 3 2022, 1:18 AM · Restricted Project, Restricted Project

Mar 2 2022

SjoerdMeijer added inline comments to D120753: [FuncSpec][NFC] Refactor internal structures..
Mar 2 2022, 7:26 AM · Restricted Project, Restricted Project
Herald added a project to D120753: [FuncSpec][NFC] Refactor internal structures.: Restricted Project.

Looks like a good refactoring, but needs a clang-format, and have added one question inline.

Mar 2 2022, 1:44 AM · Restricted Project, Restricted Project

Feb 22 2022

SjoerdMeijer added a comment to D119880: [FuncSpec] Support function specialization across multiple arguments..

Sorry for the delay. First, about a NFC and some refactoring, can the reshuffle of ArgInfo and SpecialisationInfo and the changes in the Solver functions be an NFC change perhaps?

Feb 22 2022, 1:30 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D116153: [ARM][AArch64] Add missing v8.x checks.

Thanks, looks good!

Feb 22 2022, 12:32 AM · Restricted Project

Feb 21 2022

SjoerdMeijer added inline comments to D116153: [ARM][AArch64] Add missing v8.x checks.
Feb 21 2022, 8:50 AM · Restricted Project
SjoerdMeijer added inline comments to D116153: [ARM][AArch64] Add missing v8.x checks.
Feb 21 2022, 8:36 AM · Restricted Project
SjoerdMeijer added inline comments to D116153: [ARM][AArch64] Add missing v8.x checks.
Feb 21 2022, 8:06 AM · Restricted Project
SjoerdMeijer added a comment to D116153: [ARM][AArch64] Add missing v8.x checks.

Ah, sorry, forgot about this. Can you upload the patch with some more context please so I can have a quick look again?

Feb 21 2022, 7:47 AM · Restricted Project

Feb 17 2022

SjoerdMeijer accepted D119819: [ARM] Recognize SSAT and USAT from SMIN/SMAX.

Ok, thanks, looks like a nice patch to me.

Feb 17 2022, 1:10 AM · Restricted Project

Feb 16 2022

SjoerdMeijer added inline comments to D119819: [ARM] Recognize SSAT and USAT from SMIN/SMAX.
Feb 16 2022, 1:44 AM · Restricted Project
SjoerdMeijer added a comment to D119880: [FuncSpec] Support function specialization across multiple arguments..

Clarifying my previous comment a bit more:

Feb 16 2022, 12:35 AM · Restricted Project, Restricted Project
SjoerdMeijer added a comment to D119880: [FuncSpec] Support function specialization across multiple arguments..

There is quite a lot to unpack here:

Feb 16 2022, 12:28 AM · Restricted Project, Restricted Project

Feb 15 2022

SjoerdMeijer accepted D119815: [FuncSpec]Save compilation time by caching uses of replaced value.

Yeah, nice patch, thanks.

Feb 15 2022, 1:42 AM · Restricted Project

Feb 10 2022

SjoerdMeijer added inline comments to D119354: [ARM] Patterns for vector conversion between half and float.
Feb 10 2022, 1:14 AM · Restricted Project

Feb 9 2022

SjoerdMeijer added a comment to D109958: [LoopFlatten] Enable it by default.

Gentle ping. Any further thoughts on this?

Feb 9 2022, 6:37 AM · Restricted Project

Feb 2 2022

SjoerdMeijer accepted D118591: [Function Specialisation] Fix use after free.

I have heavily modified the original reproducer, but the problem is that we don't have buildbots running the llvm regression tests with asan. I can only see two builders for libc with asan here https://lab.llvm.org/buildbot/#/builders. Do you think there's still value in adding this testcase?

There should be multiple bots that run with various sanitizers, e.g. https://lab.llvm.org/buildbot/#/builders/168

Feb 2 2022, 6:04 AM · Restricted Project

Feb 1 2022

SjoerdMeijer added a comment to D118591: [Function Specialisation] Fix use after free.

I was wrong when I said we are not testing the removal of dead instructions. I was looking at the tests under the original commit D93838, but we have actually added more tests since. For example function-specialization-constant-expression.ll is exercising this code path.

Feb 1 2022, 5:49 AM · Restricted Project
SjoerdMeijer added a comment to D118591: [Function Specialisation] Fix use after free.

Agreed, lazily removing the instructions in this way is what I was expecting.

Feb 1 2022, 1:33 AM · Restricted Project

Jan 31 2022

SjoerdMeijer added a comment to D102834: [SLP] Implement initial memory versioning..

Okay, thanks, that sounds like a good plan!

Jan 31 2022, 5:17 AM · Restricted Project, Restricted Project

Jan 27 2022

SjoerdMeijer added inline comments to D117753: [AArch64] Support for memset tagged intrinsic.
Jan 27 2022, 7:00 AM · Restricted Project, Restricted Project

Jan 26 2022

SjoerdMeijer added a comment to D109958: [LoopFlatten] Enable it by default.

Fresh numbers: https://llvm-compile-time-tracker.com/compare.php?from=0776f6e04d8c3823c31b8fa6fa7d1376a7009af1&to=9522ad62a3f461bc989d2cca3c2bf09b6dab4632&stat=instructions

Jan 26 2022, 4:15 AM · Restricted Project
SjoerdMeijer accepted D117753: [AArch64] Support for memset tagged intrinsic.

LGTM

Jan 26 2022, 2:55 AM · Restricted Project, Restricted Project
SjoerdMeijer added a comment to D109958: [LoopFlatten] Enable it by default.

Hi @asbirlea, thanks for checking, much appreciated! About:

Jan 26 2022, 1:51 AM · Restricted Project

Jan 25 2022

SjoerdMeijer added inline comments to D117753: [AArch64] Support for memset tagged intrinsic.
Jan 25 2022, 2:36 AM · Restricted Project, Restricted Project
SjoerdMeijer accepted D118107: [AArch64] Reassociate integer extending reductions to pairwise addition..

Looks like a good change to me.

Jan 25 2022, 2:23 AM · Restricted Project

Jan 24 2022

SjoerdMeijer added a comment to D110587: [SCEV] Extend trip count to avoid overflow by default.

I did leave the legacy behavior as an option since a) loop-flatten stops triggering if I extend due to weirdly specific pattern matching I didn't understand and b) we could reasonably use the mode if we'd externally established a lock of overflow.

Jan 24 2022, 5:59 AM · Restricted Project
SjoerdMeijer committed rGada6d78a7802: [LoopFlatten] Address FIXME about getTripCountFromExitCount. NFC. (authored by SjoerdMeijer).
[LoopFlatten] Address FIXME about getTripCountFromExitCount. NFC.
Jan 24 2022, 5:57 AM
SjoerdMeijer committed rGf6ac8088b0e8: [LoopFlatten] Added comments about usage of various Loop APIs. NFC. (authored by SjoerdMeijer).
[LoopFlatten] Added comments about usage of various Loop APIs. NFC.
Jan 24 2022, 5:57 AM

Jan 20 2022

SjoerdMeijer added a comment to D102834: [SLP] Implement initial memory versioning..

Hey, it's me again. :)
Any plans to pick this up, shall we get this in?

Jan 20 2022, 9:08 AM · Restricted Project, Restricted Project
SjoerdMeijer committed rGfabf1de13202: [FuncSpec] Add a reference, and some other clarifying comments. NFC. (authored by SjoerdMeijer).
[FuncSpec] Add a reference, and some other clarifying comments. NFC.
Jan 20 2022, 9:01 AM
SjoerdMeijer added inline comments to D117753: [AArch64] Support for memset tagged intrinsic.
Jan 20 2022, 7:43 AM · Restricted Project, Restricted Project
SjoerdMeijer updated the diff for D109958: [LoopFlatten] Enable it by default.

Thank you for resolving all the issues raised! Could you rebase this patch on ToT? (to include the MSSA update and the move to LPM1?)

Jan 20 2022, 1:35 AM · Restricted Project

Jan 19 2022

SjoerdMeijer added a comment to D109958: [LoopFlatten] Enable it by default.

With your help, we have fixed quite a few things, like updating the MemorySSA state and moving it a LoopManager (and fixing a performance regression related to that).

Jan 19 2022, 6:45 AM · Restricted Project
SjoerdMeijer committed rGf269ec230e2b: [LoopFlatten] Move it from LPM2 to LPM1 (authored by SjoerdMeijer).
[LoopFlatten] Move it from LPM2 to LPM1
Jan 19 2022, 6:38 AM
SjoerdMeijer added a reverting change for rGe92d63b467e1: Revert "[LoopFlatten] Move it to a LoopPassManager": rG016022e5daa8: Recommit "[LoopFlatten] Move it to a LoopPassManager".
Jan 19 2022, 6:38 AM
SjoerdMeijer committed rG016022e5daa8: Recommit "[LoopFlatten] Move it to a LoopPassManager" (authored by SjoerdMeijer).
Recommit "[LoopFlatten] Move it to a LoopPassManager"
Jan 19 2022, 6:38 AM
SjoerdMeijer closed D116612: [LoopFlatten] Move it from LPM2 to LPM1.
Jan 19 2022, 6:38 AM · Restricted Project
SjoerdMeijer added a comment to D116612: [LoopFlatten] Move it from LPM2 to LPM1.

I'm happy so long as the performance remains OK! Does this need to be rebased now?

Jan 19 2022, 3:24 AM · Restricted Project
SjoerdMeijer added a comment to D116612: [LoopFlatten] Move it from LPM2 to LPM1.

@dmgreen : You reverted "rG86825fc2fb36: [LoopFlatten] Move it to a LoopPassManager" because of a downstream regression. With D116660 now accepted/committed, that unblocks this change. This should address this regression, so are you happy with this?

Jan 19 2022, 3:10 AM · Restricted Project
SjoerdMeijer committed rGd544a89a3764: [LoopFlatten] Update MemorySSA state (authored by SjoerdMeijer).
[LoopFlatten] Update MemorySSA state
Jan 19 2022, 2:58 AM
SjoerdMeijer closed D116660: [LoopFlatten] Update MemorySSA state.
Jan 19 2022, 2:58 AM · Restricted Project
SjoerdMeijer added a comment to D116660: [LoopFlatten] Update MemorySSA state.

Changes LGTM.
Nit: clang-format.
A simpler way to check all verification is now to pass VerificationLevel::Full to verifyMemorySSA(); I'm mentioning this for your local testing, in case your build doesn't have EXPENSIVE_CHECKS on already, not to include in this patch.

Jan 19 2022, 2:23 AM · Restricted Project

Jan 18 2022

SjoerdMeijer updated the diff for D116660: [LoopFlatten] Update MemorySSA state.

Sorry, my bad, should be fixed now.

Jan 18 2022, 5:06 AM · Restricted Project
SjoerdMeijer updated the diff for D116660: [LoopFlatten] Update MemorySSA state.

Thanks for the review, sorry for the delay.
Addressed comments and have added that to the LPM.

Jan 18 2022, 2:49 AM · Restricted Project

Jan 12 2022

SjoerdMeijer added reviewers for D109958: [LoopFlatten] Enable it by default: Whitney, bmahjour.

Ping

Jan 12 2022, 11:51 PM · Restricted Project
SjoerdMeijer added a comment to D116612: [LoopFlatten] Move it from LPM2 to LPM1.

Ping

Jan 12 2022, 11:49 PM · Restricted Project
SjoerdMeijer added a reviewer for D116660: [LoopFlatten] Update MemorySSA state: dmgreen.

Ping.

Jan 12 2022, 11:48 PM · Restricted Project

Jan 6 2022

SjoerdMeijer updated the diff for D116660: [LoopFlatten] Update MemorySSA state.

I somehow missed the failing regression test.
Turns out I do need to check AR.MSSA for passing on the MSSA object (or a nullptr).

Jan 6 2022, 5:58 AM · Restricted Project

Jan 5 2022

SjoerdMeijer updated the diff for D116660: [LoopFlatten] Update MemorySSA state.

slightly less & more straight-forward code?

Jan 5 2022, 6:50 AM · Restricted Project
SjoerdMeijer added inline comments to D116660: [LoopFlatten] Update MemorySSA state.
Jan 5 2022, 6:34 AM · Restricted Project
SjoerdMeijer added inline comments to D116660: [LoopFlatten] Update MemorySSA state.
Jan 5 2022, 6:26 AM · Restricted Project
SjoerdMeijer added a comment to D116612: [LoopFlatten] Move it from LPM2 to LPM1.

I decided to do the updating of MSSA separately in D116660 (and will remove it from here).

Jan 5 2022, 6:06 AM · Restricted Project
SjoerdMeijer added a comment to D116660: [LoopFlatten] Update MemorySSA state.

Ah, forgot to mention tests. Without the update MSSAU->removeEdge(), I was expecting AR.MSSA->verifyMemorySSA() to run in an assert (with the expensive checks enabled in my build), but somewhat surprisingly to me it didn't.
So not sure yet if we need tests for this, but am looking into this.

Jan 5 2022, 6:04 AM · Restricted Project
SjoerdMeijer requested review of D116660: [LoopFlatten] Update MemorySSA state.
Jan 5 2022, 6:00 AM · Restricted Project
SjoerdMeijer committed rGe550dfa4a6e6: Silence a few unused variable warnings. NFC. (authored by SjoerdMeijer).
Silence a few unused variable warnings. NFC.
Jan 5 2022, 1:16 AM
SjoerdMeijer committed rG9b0ebb54da01: [LoopInfo] Clarify description of `makeLoopInvariant`. NFC. (authored by SjoerdMeijer).
[LoopInfo] Clarify description of `makeLoopInvariant`. NFC.
Jan 5 2022, 1:09 AM
SjoerdMeijer closed D116588: [LoopInfo] Clarify description of makeLoopInvariant. NFC..
Jan 5 2022, 1:09 AM · Restricted Project

Jan 4 2022

SjoerdMeijer updated the diff for D116612: [LoopFlatten] Move it from LPM2 to LPM1.

Thanks for the pointers! I have added a PhaseOrdering test, while I now look into updating MSSA.

Jan 4 2022, 12:42 PM · Restricted Project
SjoerdMeijer added a comment to D116612: [LoopFlatten] Move it from LPM2 to LPM1.

Does LoopFlatten not make use of SCEV?

Jan 4 2022, 11:42 AM · Restricted Project
SjoerdMeijer requested review of D116612: [LoopFlatten] Move it from LPM2 to LPM1.
Jan 4 2022, 11:29 AM · Restricted Project
SjoerdMeijer requested review of D116588: [LoopInfo] Clarify description of makeLoopInvariant. NFC..
Jan 4 2022, 3:01 AM · Restricted Project
SjoerdMeijer added a comment to D109958: [LoopFlatten] Enable it by default.

I think all points have been addressed, so am looking for an LGTM .... anyone interested? :-)

Jan 4 2022, 1:29 AM · Restricted Project
SjoerdMeijer added inline comments to D114590: [CodeGen] Emit alignment "Max Skip" operand for align directives.
Jan 4 2022, 1:03 AM · Restricted Project

Dec 31 2021

SjoerdMeijer added a comment to D109958: [LoopFlatten] Enable it by default.
Dec 31 2021, 3:23 AM · Restricted Project
SjoerdMeijer updated the diff for D109958: [LoopFlatten] Enable it by default.

Update of the tests after D110057.

Dec 31 2021, 3:21 AM · Restricted Project

Dec 30 2021

SjoerdMeijer added a comment to D109958: [LoopFlatten] Enable it by default.

With D110057 committed, is this now good to go too?

Dec 30 2021, 11:55 PM · Restricted Project
SjoerdMeijer committed rG86825fc2fb36: [LoopFlatten] Move it to a LoopPassManager (authored by SjoerdMeijer).
[LoopFlatten] Move it to a LoopPassManager
Dec 30 2021, 4:32 AM
SjoerdMeijer closed D110057: [LoopFlatten] Move it to a LoopPassManager.
Dec 30 2021, 4:32 AM · Restricted Project, Restricted Project