Page MenuHomePhabricator

simoll (Simon Moll)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 23 2017, 12:28 AM (209 w, 2 d)

Recent Activity

Tue, Jan 19

simoll committed rZORGb31e3537f304: clang-ve-ninja: Build and use the LLVM dylib (authored by simoll).
clang-ve-ninja: Build and use the LLVM dylib
Tue, Jan 19, 3:02 AM

Tue, Jan 12

simoll accepted D94490: [VE] Update VELIntrinsic tests.
Tue, Jan 12, 6:02 AM · Unknown Object (Project), Restricted Project
simoll updated the diff for D93755: [VE][isel] Map EVT vectors to vector registers..

NFC. Usage of Optional. Rebased onto committed D93709 .

Tue, Jan 12, 4:40 AM · Restricted Project, Unknown Object (Project)
simoll added a comment to D93755: [VE][isel] Map EVT vectors to vector registers..

This is one of those patches that has the potential to linger on without review for 1Y+ .. let me know if there is anything i can do to get this reviewed, as it really helps with bringing good vector architecture (long SIMD) support to LLVM. Thanks.

Can I interest you in moving to GlobalISel instead of trying to teach the DAG about new types :)

Tue, Jan 12, 1:49 AM · Restricted Project, Unknown Object (Project)

Mon, Jan 11

simoll accepted D94298: [VE] Support intrinsic to isnert/extract_subreg of v512i1.

Title typo: 'isntert'

Mon, Jan 11, 12:36 AM · Unknown Object (Project), Restricted Project
simoll accepted D94300: [VE] Support additional VMRGW and VMV intrinsic instructions.
Mon, Jan 11, 12:35 AM · Unknown Object (Project), Restricted Project

Fri, Jan 8

simoll committed rG611d3c63f32d: [VP] ISD helper functions [VE] isel for vp_add, vp_and (authored by simoll).
[VP] ISD helper functions [VE] isel for vp_add, vp_and
Fri, Jan 8, 5:30 AM
simoll closed D93766: [VP] ISD helper functions [VE] isel for vp_add, vp_and.
Fri, Jan 8, 5:30 AM · Unknown Object (Project), Restricted Project, Unknown Object (Project)
simoll accepted D94296: [VE] Support pack_f32p and pack_f32a intrinsic instructions.
Fri, Jan 8, 5:01 AM · Unknown Object (Project), Restricted Project
simoll updated the diff for D93766: [VP] ISD helper functions [VE] isel for vp_add, vp_and.

NEC. Rebased. Use variable name Opcode instead of OC.

Fri, Jan 8, 4:58 AM · Unknown Object (Project), Restricted Project, Unknown Object (Project)
simoll accepted D94291: [VE][NFC] Clean ISel patterns for LSV and LVS.
Fri, Jan 8, 4:13 AM · Unknown Object (Project), Restricted Project
simoll added a comment to D93766: [VP] ISD helper functions [VE] isel for vp_add, vp_and.

LGTM. Had to double-check that things were #undef...fed at the end of the header.

Fri, Jan 8, 3:00 AM · Unknown Object (Project), Restricted Project, Unknown Object (Project)
simoll added a comment to D93534: [VP] Improve the VP intrinsic unittests.

Can we accept this patch? In the end, it is a strict improvement over the existing one.. and it is "just" a unittest..

Fri, Jan 8, 2:56 AM · Restricted Project, Unknown Object (Project)
simoll added a comment to D93755: [VE][isel] Map EVT vectors to vector registers..

This is one of those patches that has the potential to linger on without review for 1Y+ .. let me know if there is anything i can do to get this reviewed, as it really helps with bringing good vector architecture (long SIMD) support to LLVM. Thanks.

Fri, Jan 8, 2:53 AM · Restricted Project, Unknown Object (Project)
simoll added reviewers for D93766: [VP] ISD helper functions [VE] isel for vp_add, vp_and: craig.topper, frasercrmck.

We want somebody that has reviewed VP patches before to review the VP bits of this (getters, really). @kaz7 takes care of the VE parts. Thanks!

Fri, Jan 8, 2:50 AM · Unknown Object (Project), Restricted Project, Unknown Object (Project)
simoll committed rGeeba70a463c7: [VE] Expand single-element BUILD_VECTOR to INSERT_VECTOR_ELT (authored by simoll).
[VE] Expand single-element BUILD_VECTOR to INSERT_VECTOR_ELT
Fri, Jan 8, 2:48 AM
simoll closed D93759: [VE] Expand single-element BUILD_VECTOR to INSERT_VECTOR_ELT.
Fri, Jan 8, 2:48 AM · Restricted Project, Unknown Object (Project)
simoll committed rGd1b606f897be: [VE] Extract & insert vector element isel (authored by simoll).
[VE] Extract & insert vector element isel
Fri, Jan 8, 2:47 AM
simoll closed D93687: [VE] Extract & insert vector element isel.
Fri, Jan 8, 2:47 AM · Restricted Project, Unknown Object (Project)
simoll updated the diff for D93759: [VE] Expand single-element BUILD_VECTOR to INSERT_VECTOR_ELT.

This now depends on D93687 - the build_vector lowering causes introduces more instances of insert_vector_elt.

Fri, Jan 8, 1:31 AM · Restricted Project, Unknown Object (Project)
simoll accepted D94279: [VE] Add SVOB intrinsic instruction.
Fri, Jan 8, 1:01 AM · Unknown Object (Project), Restricted Project
simoll updated the summary of D93687: [VE] Extract & insert vector element isel.
Fri, Jan 8, 12:53 AM · Restricted Project, Unknown Object (Project)
simoll updated the diff for D93687: [VE] Extract & insert vector element isel.
  • Rebased onto main.
  • insert_vector_elt tests trigger vbrd code path because lowering of build_vector to insert_vector_elt is gone (D93759).
Fri, Jan 8, 12:53 AM · Restricted Project, Unknown Object (Project)

Tue, Jan 5

simoll updated the diff for D93759: [VE] Expand single-element BUILD_VECTOR to INSERT_VECTOR_ELT.

|& -> 2>&1 |

Tue, Jan 5, 7:04 AM · Restricted Project, Unknown Object (Project)
simoll added inline comments to D93759: [VE] Expand single-element BUILD_VECTOR to INSERT_VECTOR_ELT.
Tue, Jan 5, 6:09 AM · Restricted Project, Unknown Object (Project)
simoll added inline comments to D93687: [VE] Extract & insert vector element isel.
Tue, Jan 5, 5:46 AM · Restricted Project, Unknown Object (Project)
simoll updated the diff for D93687: [VE] Extract & insert vector element isel.

getSimpleValueType()

Tue, Jan 5, 5:45 AM · Restricted Project, Unknown Object (Project)
simoll updated the diff for D93687: [VE] Extract & insert vector element isel.

NFC

  • Hopefully attached signext to all args in tests this time
  • Adressed comments
Tue, Jan 5, 5:40 AM · Restricted Project, Unknown Object (Project)
simoll added a comment to D94076: [VE] Change clang to support SjLj Lowering.

You might want to fix the typo in the title before committing this.

Tue, Jan 5, 4:51 AM · Restricted Project, Unknown Object (Project), Restricted Project
simoll accepted D94076: [VE] Change clang to support SjLj Lowering.
Tue, Jan 5, 4:50 AM · Restricted Project, Unknown Object (Project), Restricted Project
simoll updated the diff for D88905: [Clang] Allow "ext_vector_type" applied to Booleans.

NFC

  • Use bool4 in docs.
  • Rebased,
Tue, Jan 5, 4:44 AM · Restricted Project
simoll added inline comments to D93687: [VE] Extract & insert vector element isel.
Tue, Jan 5, 2:56 AM · Restricted Project, Unknown Object (Project)
simoll accepted D94071: [VE] Support SJLJ exception related instructions.
Tue, Jan 5, 2:20 AM · Unknown Object (Project), Restricted Project
simoll updated the diff for D93687: [VE] Extract & insert vector element isel.

NFC

  • Use signext for arguments in tests.
  • No more than 80 chars in VEInstrPatternVec.td file.
Tue, Jan 5, 1:49 AM · Restricted Project, Unknown Object (Project)
simoll added a comment to D94071: [VE] Support SJLJ exception related instructions.

"Stuff" is unspecific. How about we go by "[VE] SJLJ isel" or something along those lines for the title?

Tue, Jan 5, 1:37 AM · Unknown Object (Project), Restricted Project
simoll added inline comments to D94071: [VE] Support SJLJ exception related instructions.
Tue, Jan 5, 1:35 AM · Unknown Object (Project), Restricted Project
simoll accepted D93811: [VE] Support llvm.eh.sjlj.lsda.
Tue, Jan 5, 12:59 AM · Unknown Object (Project), Restricted Project

Mon, Jan 4

simoll updated the diff for D93759: [VE] Expand single-element BUILD_VECTOR to INSERT_VECTOR_ELT.
  • NFC. Rebased.
Mon, Jan 4, 6:23 AM · Restricted Project, Unknown Object (Project)
simoll updated the diff for D93687: [VE] Extract & insert vector element isel.
  • Fixed custom lowering code for packed vectors and updated tests.
  • Removed unrelated BUILD_VECTOR custom lowering to insert/extract elt.
Mon, Jan 4, 6:21 AM · Restricted Project, Unknown Object (Project)
simoll added inline comments to D93811: [VE] Support llvm.eh.sjlj.lsda.
Mon, Jan 4, 5:26 AM · Unknown Object (Project), Restricted Project
simoll accepted D93836: [VE] Change default CPU name to "generic".
Mon, Jan 4, 3:06 AM · Unknown Object (Project), Restricted Project
simoll updated the diff for D93534: [VP] Improve the VP intrinsic unittests.

NFC. Use OC variable name consistently.

Mon, Jan 4, 2:15 AM · Restricted Project, Unknown Object (Project)
simoll added a comment to D93836: [VE] Change default CPU name to "generic".

There should be test for this. You could use:

Mon, Jan 4, 1:25 AM · Unknown Object (Project), Restricted Project
simoll added inline comments to D93811: [VE] Support llvm.eh.sjlj.lsda.
Mon, Jan 4, 1:18 AM · Unknown Object (Project), Restricted Project
simoll accepted D93847: [VE] Remove VA.needsCustom checks.
Mon, Jan 4, 1:16 AM · Unknown Object (Project), Restricted Project

Dec 23 2020

simoll added a comment to D93755: [VE][isel] Map EVT vectors to vector registers..

FYI i have tested this against check-all with clang and all (including experimental) targets enabled.

Dec 23 2020, 9:23 AM · Restricted Project, Unknown Object (Project)
simoll added a comment to D93766: [VP] ISD helper functions [VE] isel for vp_add, vp_and.

In case you were wondering, the ISD helper functions are stapled to this VE patch to make a nice testable unit.

Dec 23 2020, 8:16 AM · Unknown Object (Project), Restricted Project, Unknown Object (Project)
simoll requested review of D93766: [VP] ISD helper functions [VE] isel for vp_add, vp_and.
Dec 23 2020, 8:06 AM · Unknown Object (Project), Restricted Project, Unknown Object (Project)
simoll planned changes to D93687: [VE] Extract & insert vector element isel.
Dec 23 2020, 6:46 AM · Restricted Project, Unknown Object (Project)
simoll added a comment to D93573: [NFC] Uniquify 'const' in TargetTransformInfoImpl.h.

Done. Please base your patches on the upstream main branch in the future. That makes it much easier to commit patches with Arcanist.

Dec 23 2020, 5:36 AM · Restricted Project
simoll committed rGacaa6e4260cb: [NFC] Uniquify 'const' in TargetTransformInfoImpl.h (authored by simoll).
[NFC] Uniquify 'const' in TargetTransformInfoImpl.h
Dec 23 2020, 5:27 AM
simoll closed D93573: [NFC] Uniquify 'const' in TargetTransformInfoImpl.h.
Dec 23 2020, 5:27 AM · Restricted Project
simoll requested review of D93759: [VE] Expand single-element BUILD_VECTOR to INSERT_VECTOR_ELT.
Dec 23 2020, 5:14 AM · Restricted Project, Unknown Object (Project)
simoll added reviewers for D93755: [VE][isel] Map EVT vectors to vector registers.: arsenm, craig.topper.
Dec 23 2020, 4:38 AM · Restricted Project, Unknown Object (Project)
simoll committed rGc3acda0798f9: [VE] Vector 'and' isel and tests (authored by simoll).
[VE] Vector 'and' isel and tests
Dec 23 2020, 4:30 AM
simoll closed D93709: [VE] Vector 'and' isel and tests.
Dec 23 2020, 4:30 AM · Restricted Project, Unknown Object (Project)
simoll updated the diff for D93755: [VE][isel] Map EVT vectors to vector registers..

NFC. Removed stray comment.

Dec 23 2020, 4:26 AM · Restricted Project, Unknown Object (Project)
simoll requested review of D93755: [VE][isel] Map EVT vectors to vector registers..
Dec 23 2020, 3:09 AM · Restricted Project, Unknown Object (Project)

Dec 22 2020

simoll retitled D93709: [VE] Vector 'and' isel and tests from [VE] Vector and isel and tests to [VE] Vector 'and' isel and tests.
Dec 22 2020, 8:04 AM · Restricted Project, Unknown Object (Project)
simoll requested review of D93709: [VE] Vector 'and' isel and tests.
Dec 22 2020, 7:44 AM · Restricted Project, Unknown Object (Project)
simoll requested review of D93687: [VE] Extract & insert vector element isel.
Dec 22 2020, 4:11 AM · Restricted Project, Unknown Object (Project)

Dec 21 2020

simoll added inline comments to D93534: [VP] Improve the VP intrinsic unittests.
Dec 21 2020, 6:25 AM · Restricted Project, Unknown Object (Project)
simoll accepted D93570: [VE] Correct VMP allocation in calling conv.
Dec 21 2020, 5:32 AM · Unknown Object (Project), Restricted Project
simoll accepted D93627: [VE] Optimize LEA combinations.
Dec 21 2020, 5:10 AM · Unknown Object (Project), Restricted Project
simoll committed rG93da221eaf7a: [VP][NFC] ISD::VP_Sub -> ISD::VP_SUB (authored by simoll).
[VP][NFC] ISD::VP_Sub -> ISD::VP_SUB
Dec 21 2020, 2:43 AM
simoll accepted D93573: [NFC] Uniquify 'const' in TargetTransformInfoImpl.h.

Thanks! Do you need me to commit this on your behalf?

Dec 21 2020, 2:17 AM · Restricted Project
simoll updated subscribers of D93470: [VP] Binary floating-point intrinsics..
Dec 21 2020, 1:53 AM · Restricted Project, Unknown Object (Project)
simoll updated subscribers of D93534: [VP] Improve the VP intrinsic unittests.
Dec 21 2020, 1:53 AM · Restricted Project, Unknown Object (Project)
simoll accepted D93545: [VE] Support RETURNADDR.
Dec 21 2020, 1:34 AM · Unknown Object (Project), Restricted Project
simoll accepted D93539: [VE] Support STACKSAVE and STACKRESTORE.

Thx!

Dec 21 2020, 1:34 AM · Unknown Object (Project), Restricted Project
simoll added a comment to D93455: Constrained fp OpBundles.
In D93455#2463506, @kpn wrote:
In D93455#2460765, @kpn wrote:

Do you need tests for the verifier part?

Probably. With this patch standalone, we can only do "catch-22 testing": all uses of the bundle are illegal. We can extend that once the VP floating-point intrinsics are upstream that actually support these bundles.

Would replacing some of the constrained intrinsics with operand bundles on other intrinsics have the same safety guarantee in the middle end? Currently the middle end doesn't know about the constrained intrinsics so it handles code conservatively.

Not easily. This has the same re-occurring issue as enabling predication on all instructions: if we allow the constrained bundle on regular fp intrinsics overnight, existing optimization code will ignore the bundles and potentially break code.

That's a non-starter. People are relying on the strictfp options and #pragmas to work correctly already. That's why I had to add to clang the ability to turn it off the command-line option on targets that don't support it yet. So regressing and making strictfp unsafe again is just not an option.

An elegant way out for this would be to introduce an FPMathIntrinsic helper class that only matches intrinsics in the default fp environment (that is without the bundle). All code that looks for a specific fp math function can then no longer just take the intrinsic id but needs to cast the intrinsic to that helper class first.
Btw, the FPMathIntrinsic helper also fits well into the generalized pattern matching framework (D92086).

If there's a way to replace the constrained intrinsics with other, existing intrinsics plus operand bundles _while_ keeping the safety guarantee that we currently have then that sounds good. But the safety _must_ be the default until we get to updating optimizations to understand strictfp.

That's why i am proposing to initially use these bundles only for the VP intrinsics and keep the constrained fp intrinsics in place. When we are sure that all optimizations use the proper abstractions, we can move to replace constrained fp intrinsics with the bundled version instead.

Dec 21 2020, 1:31 AM · Restricted Project

Dec 18 2020

simoll added inline comments to D93539: [VE] Support STACKSAVE and STACKRESTORE.
Dec 18 2020, 9:15 AM · Unknown Object (Project), Restricted Project
simoll added inline comments to D93545: [VE] Support RETURNADDR.
Dec 18 2020, 9:13 AM · Unknown Object (Project), Restricted Project
simoll accepted D93547: [VE] Support copy of vector mask registers.
Dec 18 2020, 9:12 AM · Unknown Object (Project), Restricted Project
simoll updated the diff for D93470: [VP] Binary floating-point intrinsics..
  • This patch is based on D93534 .
  • Added missing vp.fsub.
  • Added constrained fp mapping tests (whether the constrained intrinsic actually exists and has as many metadata params as the VPIntrinsic accepts). This is in preparation of D93455 .
Dec 18 2020, 5:48 AM · Restricted Project, Unknown Object (Project)
simoll updated the diff for D93534: [VP] Improve the VP intrinsic unittests.

Added VPModuleComplete - test that all registered VP intrinsics are declared in the testing module.

Dec 18 2020, 4:42 AM · Restricted Project, Unknown Object (Project)
simoll requested review of D93534: [VP] Improve the VP intrinsic unittests.
Dec 18 2020, 4:34 AM · Restricted Project, Unknown Object (Project)
simoll added a comment to D78203: [VP,Integer,#2] ExpandVectorPredication pass.

Ping. Where do we stand with this patch, can we LGTM or are there comments?

Dec 18 2020, 2:56 AM · Restricted Project, Unknown Object (Project)
simoll added a comment to D93455: Constrained fp OpBundles.
In D93455#2460765, @kpn wrote:

Do you need tests for the verifier part?

Probably. With this patch standalone, we can only do "catch-22 testing": all uses of the bundle are illegal. We can extend that once the VP floating-point intrinsics are upstream that actually support these bundles.

Dec 18 2020, 12:49 AM · Restricted Project

Dec 17 2020

simoll added inline comments to D93470: [VP] Binary floating-point intrinsics..
Dec 17 2020, 10:26 AM · Restricted Project, Unknown Object (Project)
simoll requested review of D93470: [VP] Binary floating-point intrinsics..
Dec 17 2020, 10:24 AM · Restricted Project, Unknown Object (Project)
simoll updated the diff for D93455: Constrained fp OpBundles.
  • Fixed a failing tests (there is now two more op bundles)
  • Rebased.
Dec 17 2020, 6:59 AM · Restricted Project
simoll updated the diff for D93455: Constrained fp OpBundles.

nfc, comment cleanup.

Dec 17 2020, 6:12 AM · Restricted Project
simoll updated the diff for D93455: Constrained fp OpBundles.
  • NFC. Fixed spelling, typos.
Dec 17 2020, 6:10 AM · Restricted Project
simoll requested review of D93455: Constrained fp OpBundles.
Dec 17 2020, 5:49 AM · Restricted Project

Dec 15 2020

simoll accepted D93295: [VE] Support FRAMEADDR.
Dec 15 2020, 6:20 AM · Unknown Object (Project), Restricted Project
simoll accepted D93294: [VE][NFC] Sort VEISD operations.
Dec 15 2020, 6:19 AM · Unknown Object (Project), Restricted Project
simoll accepted D93161: [VE] Support atomic exchange instructions.
Dec 15 2020, 12:39 AM · Unknown Object (Project), Restricted Project

Dec 14 2020

simoll accepted D93093: [VE] Add logical mask intrinsic instructions.
Dec 14 2020, 7:28 AM · Unknown Object (Project), Restricted Project
simoll accepted D93212: [VE] Correct addRegisterClass calls.

Thanks for splitting this off!

Dec 14 2020, 7:27 AM · Unknown Object (Project), Restricted Project
simoll added inline comments to D93093: [VE] Add logical mask intrinsic instructions.
Dec 14 2020, 6:53 AM · Unknown Object (Project), Restricted Project
simoll added a comment to D93161: [VE] Support atomic exchange instructions.

LGTM with nits.

Dec 14 2020, 6:40 AM · Unknown Object (Project), Restricted Project

Dec 11 2020

simoll added a comment to D93093: [VE] Add logical mask intrinsic instructions.

Just this one thing, else, LGTM.

Dec 11 2020, 4:25 AM · Unknown Object (Project), Restricted Project
simoll accepted D93032: [VE] Add vgt and vsc intrinsic instructions.

LGTM. Can we upstream the script that generates the intrinsic declarations? We don't need to run it in the build but it should be upstream so people can re-generate and understand the intrinsics.

Dec 11 2020, 12:56 AM · Unknown Object (Project), Restricted Project

Dec 10 2020

simoll added a comment to D88905: [Clang] Allow "ext_vector_type" applied to Booleans.

AFAIK all comments were addressed. Could you have another look at/LGTM this?

Dec 10 2020, 6:19 AM · Restricted Project
simoll accepted D92941: [VE] Add vector reduce intrinsic instructions.
Dec 10 2020, 5:17 AM · Unknown Object (Project), Restricted Project

Dec 9 2020

simoll accepted D92938: [VE] Add vsum and vfsum intrinsic instructions.
Dec 9 2020, 7:14 AM · Unknown Object (Project), Restricted Project
simoll accepted D92758: [VE] Add vfmk intrinsic instructions.

Thanks! One nit, else good to go.

Dec 9 2020, 5:45 AM · Unknown Object (Project), Restricted Project
simoll committed rG3ffbc7935718: [VP] Build VP SDNodes (authored by simoll).
[VP] Build VP SDNodes
Dec 9 2020, 2:38 AM
simoll closed D91441: [VP] Build VP SDNodes.
Dec 9 2020, 2:38 AM · Restricted Project, Restricted Project