Page MenuHomePhabricator

simoll (Simon Moll)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 23 2017, 12:28 AM (191 w, 4 d)

Recent Activity

Fri, Sep 4

simoll added a reviewer for D86693: Implementation of variable-length load/store intrinsics: simoll.
Fri, Sep 4, 9:24 AM · Restricted Project
simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.

Rebased

Fri, Sep 4, 1:38 AM · Restricted Project

Wed, Sep 2

simoll added a reviewer for D78203: [VP,Integer,#2] ExpandVectorPredication pass: hussainjk.
Wed, Sep 2, 1:33 AM · Restricted Project, Restricted Project

Fri, Aug 28

simoll added inline comments to D85603: IR: Add convergence control operand bundle and intrinsics.
Fri, Aug 28, 5:19 AM · Restricted Project
simoll planned changes to D57504: RFC: Prototype & Roadmap for vector predication in LLVM.

TODO: adapt to changes of get.active.lane.mask.

Fri, Aug 28, 5:16 AM · Restricted Project

Thu, Aug 27

simoll updated the diff for D84413: [DA][SDA] SyncDependenceAnalysis re-write.
  • rebased (onto clang-formatting commit for the SDA)
  • DCE
Thu, Aug 27, 9:52 AM · Restricted Project
simoll committed rGc48b06c44f26: [sda][nfc] clang-formatting (authored by simoll).
[sda][nfc] clang-formatting
Thu, Aug 27, 9:28 AM
simoll updated the diff for D84413: [DA][SDA] SyncDependenceAnalysis re-write.

Bug fix: DivLoopExit's loop may be nullptr

Thu, Aug 27, 9:20 AM · Restricted Project
simoll added inline comments to D84413: [DA][SDA] SyncDependenceAnalysis re-write.
Thu, Aug 27, 8:16 AM · Restricted Project
simoll updated the diff for D84413: [DA][SDA] SyncDependenceAnalysis re-write.

minor cleanup

Thu, Aug 27, 8:15 AM · Restricted Project
simoll updated the diff for D84413: [DA][SDA] SyncDependenceAnalysis re-write.

NFC

  • addressed reviewer comments, clean-up, tidy
  • rebased
Thu, Aug 27, 8:12 AM · Restricted Project

Wed, Aug 26

simoll added a comment to D81083: [Clang] Allow "vector_size" applied to Booleans.

Thanks for dropping by!

Have you considered using the ext_vector_type attribute instead of vector_size for this? That would have a couple of advantages:

  • It's not a GCC attribute, so there's no risk that GCC would give different meaning to the same syntax (such as using one byte per vector element, which would be the natural meaning for a vector of bool as an extension of existing functionality).
  • ext_vector_type takes as an argument a number of elements, not a size in bytes, so you could support vectors of non-multiple-of-8 bools.

Whichever solution is going to land in Clang, we will end up in the situation that Clang supports bool vectors and GCC does not. Any code that uses this feature and is supposed to compile with GCC will need some #ifdef guard. This is why i am not too worried about (ab-)using the vector_size attribute for this.

Wed, Aug 26, 6:08 AM · Restricted Project

Aug 25 2020

simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.

NFC. Make clang-tidy happy.

Aug 25 2020, 9:32 AM · Restricted Project
simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.
  • made bool-vector layout target dependent (one byte per bool element on Hexagon, one bit everywhere else).
  • Added hvx-specific debug info test.
  • Updated docs.
Aug 25 2020, 7:12 AM · Restricted Project

Aug 24 2020

simoll added a comment to D81083: [Clang] Allow "vector_size" applied to Booleans.

The Hexagon builtins explicitly require bool vectors to have 8-bit wide bool elements. That clashes with our new vector type because bool vectors in builtin functions and vector_size bool vectors have the same internal representation in Clang. However, AFAIK Hexagon is the only target that actually need 8-bit bools. I see two possible ways out of this:

Aug 24 2020, 1:47 AM · Restricted Project

Aug 21 2020

simoll added a comment to D81083: [Clang] Allow "vector_size" applied to Booleans.

I'm not qualified to review the CodeGen stuff (or accept the patch, obvs. :-)) but FWIW, here are some comments on the doc and Sema side.

Thanks for your comments! Maybe you know people who could review the CodeGen side of this..?

Aug 21 2020, 2:43 AM · Restricted Project
simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.
  • Rebased.
  • Allow comparisons on boolean vectors.
  • Restored result type for vector comparisons on other types.
  • Added operator, alignment and constexpr tests.
Aug 21 2020, 2:12 AM · Restricted Project
simoll added inline comments to D81083: [Clang] Allow "vector_size" applied to Booleans.
Aug 21 2020, 1:35 AM · Restricted Project

Aug 20 2020

simoll planned changes to D81083: [Clang] Allow "vector_size" applied to Booleans.
Aug 20 2020, 9:10 AM · Restricted Project

Aug 17 2020

simoll accepted D86076: [VE] Modify ISelLoweirng following clang-tidy.
Aug 17 2020, 8:43 AM · Restricted Project, Restricted Project
simoll accepted D86035: [VE] Support f128.
Aug 17 2020, 1:09 AM · Restricted Project, Restricted Project
simoll added a comment to D86035: [VE] Support f128.

Please look into the lint comments. Otw, LGTM.

Aug 17 2020, 12:04 AM · Restricted Project, Restricted Project

Aug 14 2020

simoll added a comment to D78203: [VP,Integer,#2] ExpandVectorPredication pass.

ping

Aug 14 2020, 12:42 AM · Restricted Project, Restricted Project
simoll accepted D85905: [VE] Remove obsolete I8/I16 register classes.
Aug 14 2020, 12:41 AM · Restricted Project, Restricted Project
simoll added a project to D85934: Enable OpenMP offloading to VE and enable tests for offloading to VE: Restricted Project.
Aug 14 2020, 12:41 AM · Restricted Project, Restricted Project, Restricted Project

Aug 13 2020

simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.
  • Fixed type printing & added type printing test.
  • Rebased.
Aug 13 2020, 1:28 AM · Restricted Project

Aug 11 2020

simoll accepted D85726: [VE] Change to promote i32 AND/OR/XOR operations.
Aug 11 2020, 8:32 AM · Restricted Project, Restricted Project
simoll added inline comments to D85603: IR: Add convergence control operand bundle and intrinsics.
Aug 11 2020, 3:11 AM · Restricted Project
simoll accepted D85712: [VE] Update bit operations.
Aug 11 2020, 3:10 AM · Restricted Project, Restricted Project

Aug 10 2020

simoll added a reviewer for D85603: IR: Add convergence control operand bundle and intrinsics: simoll.

Some comments.

  • It would be very helpful put the stress on the token value when it comes to the question which threads converge on the same static instruction. Does the token encode only the instance, does it include the static instruction 'id', ie can two instructions return the same token value?
  • Not sure about llvm.experimental.constrained.anchor: ie, the current non-definition (it is the 'implementation-defined') invites in almost arbitrary semantics (depending on how the token value comes about).
Aug 10 2020, 2:16 AM · Restricted Project

Aug 7 2020

simoll accepted D85490: [VE] Change to expand multiply related instructions.
Aug 7 2020, 1:20 AM · Restricted Project, Restricted Project
simoll accepted D85507: [VE] Remove obsoleted getVEAsmModeForCPU function.

Feel free to commit something like this without review

Aug 7 2020, 1:17 AM · Restricted Project, Restricted Project

Aug 6 2020

simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.

NFC. Cleanup.

Aug 6 2020, 9:18 AM · Restricted Project
simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.
  • Fixed debug info representation for bool vectors (and added debug info test).
  • Interpret 8*N with the N of vector_size(N) as the numbers of bool elements of the vector.
Aug 6 2020, 9:04 AM · Restricted Project
simoll accepted D85418: [VE] Optimize trunc related instructions.

Nice! LGTM :)

Aug 6 2020, 9:03 AM · Restricted Project, Restricted Project

Aug 4 2020

simoll planned changes to D81083: [Clang] Allow "vector_size" applied to Booleans.

Thanks for the feedback!
Planned change: interpret the N in vector_size(N) as the number of bytes in the type, such that, for example, a vector_size(2) bool vector holds 16 bits

Aug 4 2020, 10:11 AM · Restricted Project
simoll added inline comments to D81083: [Clang] Allow "vector_size" applied to Booleans.
Aug 4 2020, 9:48 AM · Restricted Project
simoll added inline comments to D81083: [Clang] Allow "vector_size" applied to Booleans.
Aug 4 2020, 7:08 AM · Restricted Project
simoll added inline comments to D81083: [Clang] Allow "vector_size" applied to Booleans.
Aug 4 2020, 5:40 AM · Restricted Project

Aug 3 2020

simoll accepted D85071: [VE] Extend integer arguments and return values smaller than 64 bits.
Aug 3 2020, 12:18 AM · Restricted Project, Restricted Project

Jul 31 2020

simoll accepted D84581: [VE] Change calling convention to follow ABI.
Jul 31 2020, 9:02 AM · Restricted Project, Restricted Project

Jul 30 2020

simoll closed D71338: [VE,#1] Scalar code generation.

This has been upstreamed for the most part.

Jul 30 2020, 5:51 AM · Restricted Project, Restricted Project
simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.

NFC

  • Style updates
  • Rebased
Jul 30 2020, 4:41 AM · Restricted Project
simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.

Updated clang test

Jul 30 2020, 2:19 AM · Restricted Project

Jul 28 2020

simoll updated the diff for D81083: [Clang] Allow "vector_size" applied to Booleans.
  • Rebased
  • Implement EmitFromMemory
Jul 28 2020, 12:06 PM · Restricted Project
simoll planned changes to D84413: [DA][SDA] SyncDependenceAnalysis re-write.

Thanks for the comments so far.

Jul 28 2020, 1:59 AM · Restricted Project

Jul 27 2020

simoll added inline comments to D84413: [DA][SDA] SyncDependenceAnalysis re-write.
Jul 27 2020, 12:56 AM · Restricted Project
simoll added a comment to D84581: [VE] Change calling convention to follow ABI.

Nit. LGTM otherwise.

Jul 27 2020, 12:42 AM · Restricted Project, Restricted Project

Jul 23 2020

Herald added a project to D84413: [DA][SDA] SyncDependenceAnalysis re-write: Restricted Project.
Jul 23 2020, 7:45 AM · Restricted Project

Jul 6 2020

simoll accepted D83170: [VE] Support symbol with offset in assembly.

Thanks!

Jul 6 2020, 5:32 AM · Restricted Project, Restricted Project
simoll accepted D83200: [VE] Change to use isa.

I'd say you can commit a minor NFC like this one (in particular on a code base you have authored for the most part) without review.

Jul 6 2020, 5:31 AM · Restricted Project, Restricted Project
simoll added a comment to D83170: [VE] Support symbol with offset in assembly.

Please consider the coding style suggestions (in particular for lower-casing function names). Otw, LGTM.

Jul 6 2020, 12:33 AM · Restricted Project, Restricted Project
simoll accepted D83173: [VE] Correct stack alignment.
Jul 6 2020, 12:31 AM · Restricted Project, Restricted Project, Restricted Project

Jul 1 2020

simoll accepted D82968: [VE] Rename VE toolchain source files.
Jul 1 2020, 8:38 AM · Restricted Project, Restricted Project, Restricted Project

Jun 29 2020

simoll accepted D82734: [VE] Support symbol with offset value.
Jun 29 2020, 1:02 AM · Restricted Project, Restricted Project

Jun 24 2020

simoll accepted D82461: [VE] Add clang tests for VE.
Jun 24 2020, 8:36 AM · Restricted Project, Restricted Project, Restricted Project
simoll abandoned D71339: [VE,#2] Clang toolchain for SX-Aurora.

Basic Clang support for VE is now upstream: rG96d4ccf0

Jun 24 2020, 4:49 AM · Restricted Project, Restricted Project, Restricted Project
simoll committed rG96d4ccf00c8f: [VE] Clang toolchain for VE (authored by kaz7).
[VE] Clang toolchain for VE
Jun 24 2020, 1:35 AM
simoll closed D79411: [VE] Clang toolchain for VE.
Jun 24 2020, 1:34 AM · Restricted Project, Restricted Project

Jun 23 2020

simoll updated the diff for D79411: [VE] Clang toolchain for VE.

Removed getEHDataRegisterNumber.

Jun 23 2020, 1:00 AM · Restricted Project, Restricted Project

Jun 19 2020

simoll added reviewers for D78203: [VP,Integer,#2] ExpandVectorPredication pass: ddibyend, m_zuckerman.
Jun 19 2020, 3:11 AM · Restricted Project, Restricted Project

Jun 18 2020

simoll accepted D81806: [DA] conservatively mark the join of every divergent branch.
Jun 18 2020, 12:30 AM · Restricted Project

Jun 17 2020

simoll added a comment to D81806: [DA] conservatively mark the join of every divergent branch.

Do you still think that we should go ahead with this blunt fix? What is the ETA for the proper fix?

Jun 17 2020, 9:08 AM · Restricted Project

Jun 16 2020

simoll accepted D81822: [DA] propagate loop live-out values that get used in a branch.

LGTM. Thanks!

Jun 16 2020, 7:09 AM · Restricted Project
simoll added inline comments to D81829: [LangRef] Element-wise Integral Reduction Intrinsics.
Jun 16 2020, 6:37 AM · Restricted Project
simoll added a comment to D81806: [DA] conservatively mark the join of every divergent branch.

I am a bit surprised this is necessary. Actually, join divergence in bb3 should come about as a result of propagateLoopDivergence for the [bb1, bb2] loop and not immediately because it is a divergent exit.

I am not sure what you mean here. propagateLoopDivergence is calling propagateJoinDivergence ... so doesn't that count as a result of the former?

Also, a divergent loop exit does not automatically become join divergent, eg:

bb1: 
   %m.uni = <uni>
   %n.uni = <uni>
   br <uni>, %bb2, %bb3

bb2: [..]
   br <div>, %bb2, %bb3

bb3:
   %x.uni = phi [%m.uni, %bb2], [%n.uni %bb1]  <-- divergent loop exit that is not join divergent

But here, bb3 is not a join block for the bb2 loop, since there is only one path from the loop exit reaching bb3.

Exactly. With this patch %x.uni is marked as join divergent even though it is uniform: In its present form the patch solves one issue at the cost of precision.

Jun 16 2020, 6:03 AM · Restricted Project
simoll added a comment to D81806: [DA] conservatively mark the join of every divergent branch.

I am a bit surprised this is necessary. Actually, join divergence in bb3 should come about as a result of propagateLoopDivergence for the [bb1, bb2] loop and not immediately because it is a divergent exit.
Also, a divergent loop exit does not automatically become join divergent, eg:

Jun 16 2020, 12:30 AM · Restricted Project

Jun 15 2020

simoll added a comment to D81822: [DA] propagate loop live-out values that get used in a branch.

You could short cut this by calling propagateBranchDivergence right away instead of using DeferredTerminators (and mark the terminator as divergent). That's in the same spirit as calling pushUsers on a regular instruction since sync dependence is just a different kind of dependence.

Jun 15 2020, 8:07 AM · Restricted Project
simoll committed rGe026f147f7b4: [VE] Support relocation information in MC layer (authored by kaz7).
[VE] Support relocation information in MC layer
Jun 15 2020, 2:41 AM
simoll closed D81553: [VE] Support relocation information in MC layer.
Jun 15 2020, 2:41 AM · Restricted Project, Restricted Project
simoll accepted D81553: [VE] Support relocation information in MC layer.

LGTM. Thanks!

Jun 15 2020, 2:08 AM · Restricted Project, Restricted Project

Jun 10 2020

simoll added a comment to D81553: [VE] Support relocation information in MC layer.

LGTM with one minor nit. Thanks!

Jun 10 2020, 5:57 AM · Restricted Project, Restricted Project
simoll committed rG34fef0c98044: [VE] Support convert instructions in MC layer (authored by kaz7).
[VE] Support convert instructions in MC layer
Jun 10 2020, 3:48 AM
simoll closed D81536: [VE] Support convert instructions in MC layer.
Jun 10 2020, 3:48 AM · Restricted Project, Restricted Project
simoll accepted D81536: [VE] Support convert instructions in MC layer.

Thanks!

Jun 10 2020, 3:47 AM · Restricted Project, Restricted Project
simoll committed rG49e4faa010e1: [VE] Support host memory access instructions in MC layer (authored by kaz7).
[VE] Support host memory access instructions in MC layer
Jun 10 2020, 1:03 AM
simoll closed D81535: [VE] Support host memory access instructions in MC layer.
Jun 10 2020, 1:03 AM · Restricted Project, Restricted Project
simoll accepted D81535: [VE] Support host memory access instructions in MC layer.
Jun 10 2020, 1:03 AM · Restricted Project, Restricted Project
simoll added a comment to D81536: [VE] Support convert instructions in MC layer.

Few nits.

Jun 10 2020, 1:03 AM · Restricted Project, Restricted Project

Jun 9 2020

simoll committed rGb641c9f729fe: [VE] Support rest of load/store instructions in MC layer (authored by kaz7).
[VE] Support rest of load/store instructions in MC layer
Jun 9 2020, 5:27 AM
simoll closed D81454: [VE] Support rest of load/store instructions in MC layer.
Jun 9 2020, 5:27 AM · Restricted Project, Restricted Project
simoll accepted D81454: [VE] Support rest of load/store instructions in MC layer.
Jun 9 2020, 5:27 AM · Restricted Project, Restricted Project
simoll committed rGe9eafb7be9da: [VE] Support Transfer Control Instructions in MC layer (authored by kaz7).
[VE] Support Transfer Control Instructions in MC layer
Jun 9 2020, 2:09 AM
simoll closed D81440: [VE] Support Transfer Control Instructions in MC layer.
Jun 9 2020, 2:09 AM · Restricted Project, Restricted Project
simoll accepted D81440: [VE] Support Transfer Control Instructions in MC layer.
Jun 9 2020, 2:09 AM · Restricted Project, Restricted Project
simoll committed rG0d989cb6ab54: [VE] Support lowering to NND instruction (authored by kaz7).
[VE] Support lowering to NND instruction
Jun 9 2020, 1:37 AM
simoll closed D81383: [VE] Support lowering to NND instruction.
Jun 9 2020, 1:36 AM · Restricted Project, Restricted Project
simoll accepted D81383: [VE] Support lowering to NND instruction.
Jun 9 2020, 1:36 AM · Restricted Project, Restricted Project

Jun 8 2020

simoll committed rGb60404a666fb: [VE] Support floating-point arithmetic instructions in MC layer (authored by kaz7).
[VE] Support floating-point arithmetic instructions in MC layer
Jun 8 2020, 7:06 AM
simoll closed D81386: [VE] Support floating-point arithmetic instructions in MC layer.
Jun 8 2020, 7:05 AM · Restricted Project, Restricted Project
simoll added inline comments to D81383: [VE] Support lowering to NND instruction.
Jun 8 2020, 7:05 AM · Restricted Project, Restricted Project
simoll accepted D81386: [VE] Support floating-point arithmetic instructions in MC layer.
Jun 8 2020, 7:05 AM · Restricted Project, Restricted Project
simoll added a comment to D81383: [VE] Support lowering to NND instruction.

Just one nit.

Jun 8 2020, 5:57 AM · Restricted Project, Restricted Project
simoll committed rGc95ba11a3d87: [VE] Support control instructions in MC layer (authored by kaz7).
[VE] Support control instructions in MC layer
Jun 8 2020, 3:14 AM
simoll closed D81370: [VE] Support control instructions in MC layer.
Jun 8 2020, 3:13 AM · Restricted Project, Restricted Project
simoll accepted D81370: [VE] Support control instructions in MC layer.
Jun 8 2020, 2:41 AM · Restricted Project, Restricted Project
simoll updated the diff for D78203: [VP,Integer,#2] ExpandVectorPredication pass.
  • Removed PredicatedInstruction, which isn't strictly necessary for this patch.
  • Rebased.
Jun 8 2020, 2:08 AM · Restricted Project, Restricted Project
simoll updated the summary of D78203: [VP,Integer,#2] ExpandVectorPredication pass.
Jun 8 2020, 2:08 AM · Restricted Project, Restricted Project
simoll committed rG385adc4720d0: [VE] Support shift operation instructions in MC layer (authored by kaz7).
[VE] Support shift operation instructions in MC layer
Jun 8 2020, 1:35 AM
simoll closed D81324: [VE] Support shift operation instructions in MC layer.
Jun 8 2020, 1:35 AM · Restricted Project, Restricted Project