Page MenuHomePhabricator

tlively (Thomas Lively)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 31 2018, 10:54 AM (59 w, 5 d)

Recent Activity

Fri, Sep 20

tlively updated the diff for D67784: [WebAssembly] vNxM.load_splat instructions.
  • Add encoding tests
Fri, Sep 20, 11:00 AM · Restricted Project

Thu, Sep 19

tlively created D67784: [WebAssembly] vNxM.load_splat instructions.
Thu, Sep 19, 6:49 PM · Restricted Project
tlively added a child revision for D67783: [WebAssembly] Remove unused memory instructions and patterns: D67784: [WebAssembly] vNxM.load_splat instructions.
Thu, Sep 19, 6:49 PM · Restricted Project
tlively added a comment to D67783: [WebAssembly] Remove unused memory instructions and patterns.

@sunfish I believe you originally added the GlobalAddress patterns so I wanted to check in with you before removing them. Do you know whether they can ever be used? If so I will add tests for them instead, but I'm not sure I've ever seen a GlobalAddress offset.

Thu, Sep 19, 6:26 PM · Restricted Project
tlively created D67783: [WebAssembly] Remove unused memory instructions and patterns.
Thu, Sep 19, 6:26 PM · Restricted Project
tlively committed rG0c3d4cfbadef: [WebAssembly][NFC] Remove unnecessary braces (authored by tlively).
[WebAssembly][NFC] Remove unnecessary braces
Thu, Sep 19, 2:53 PM
tlively committed rL372358: [WebAssembly][NFC] Remove unnecessary braces.
[WebAssembly][NFC] Remove unnecessary braces
Thu, Sep 19, 2:50 PM

Wed, Sep 18

tlively committed rG21143b93a6ee: [WebAssembly] Sort output data sections to place .bss last (authored by tlively).
[WebAssembly] Sort output data sections to place .bss last
Wed, Sep 18, 6:14 PM
tlively committed rL372284: [WebAssembly] Sort output data sections to place .bss last.
[WebAssembly] Sort output data sections to place .bss last
Wed, Sep 18, 6:13 PM
tlively closed D67736: [WebAssembly] Sort output data sections to place .bss last.
Wed, Sep 18, 6:13 PM · Restricted Project
tlively added inline comments to D67736: [WebAssembly] Sort output data sections to place .bss last.
Wed, Sep 18, 6:05 PM · Restricted Project
tlively updated the diff for D67736: [WebAssembly] Sort output data sections to place .bss last.
  • Add test for custom section names and change sorting to handle them
Wed, Sep 18, 5:41 PM · Restricted Project
tlively committed rGdbcd7f560270: [WebAssembly] Restore defaults for stores per memop (authored by tlively).
[WebAssembly] Restore defaults for stores per memop
Wed, Sep 18, 4:18 PM
tlively committed rL372275: [WebAssembly] Restore defaults for stores per memop.
[WebAssembly] Restore defaults for stores per memop
Wed, Sep 18, 4:18 PM
tlively closed D67639: [WebAssembly] Restore defaults for stores per memop.
Wed, Sep 18, 4:17 PM · Restricted Project
tlively created D67739: [WebAssembly] Let users know that wasm64 does not exist.
Wed, Sep 18, 4:10 PM · Restricted Project
tlively added a comment to D67639: [WebAssembly] Restore defaults for stores per memop.

What are the default values for those if we unset them?

Wed, Sep 18, 4:04 PM · Restricted Project
tlively created D67736: [WebAssembly] Sort output data sections to place .bss last.
Wed, Sep 18, 3:31 PM · Restricted Project

Mon, Sep 16

tlively created D67639: [WebAssembly] Restore defaults for stores per memop.
Mon, Sep 16, 4:15 PM · Restricted Project

Fri, Sep 13

tlively committed rGae530c5c8004: [WebAssembly] Narrowing and widening SIMD ops (authored by tlively).
[WebAssembly] Narrowing and widening SIMD ops
Fri, Sep 13, 3:54 PM
tlively committed rL371906: [WebAssembly] Narrowing and widening SIMD ops.
[WebAssembly] Narrowing and widening SIMD ops
Fri, Sep 13, 3:53 PM
tlively closed D67425: [WebAssembly] Narrowing and widening SIMD ops.
Fri, Sep 13, 3:53 PM · Restricted Project, Restricted Project

Thu, Sep 12

tlively added a comment to D67425: [WebAssembly] Narrowing and widening SIMD ops.

LGTM.

  • Maybe we can lower these to these new instructions later? (I'm not very sure what the difference between versions with and without VECTOR, because the versions without VECTOR seem to be able to take vector arguments as well.)
  • Will this simplify the complicated lowering of SIGN_EXTEND_INREG?
Thu, Sep 12, 6:19 PM · Restricted Project, Restricted Project
tlively accepted D67507: Refer to IEEE 754-2019 in langref instead of 2018 draft.

LGTM, thanks!

Thu, Sep 12, 10:02 AM · Restricted Project

Wed, Sep 11

tlively updated the diff for D67425: [WebAssembly] Narrowing and widening SIMD ops.
  • Make narrows binary ops
Wed, Sep 11, 1:25 PM · Restricted Project, Restricted Project
tlively updated the summary of D67425: [WebAssembly] Narrowing and widening SIMD ops.
Wed, Sep 11, 1:18 PM · Restricted Project, Restricted Project
tlively accepted D67208: [WebAssembly] Add -fwasm-exceptions for wasm EH.
Wed, Sep 11, 1:17 PM · Restricted Project, Restricted Project

Tue, Sep 10

tlively planned changes to D67425: [WebAssembly] Narrowing and widening SIMD ops.

I missed the fact that the narrows are supposed to be binary operations. Oops.

Tue, Sep 10, 8:22 PM · Restricted Project, Restricted Project
tlively created D67425: [WebAssembly] Narrowing and widening SIMD ops.
Tue, Sep 10, 5:26 PM · Restricted Project, Restricted Project

Fri, Sep 6

tlively added a comment to D67208: [WebAssembly] Add -fwasm-exceptions for wasm EH.

Thanks for the clarification. It makes sense to me that -mexception-handling only enables the architectural feature and a separate flag enables the behavior change. This is indeed consistent with how -pthread works.

Fri, Sep 6, 3:26 PM · Restricted Project, Restricted Project

Thu, Sep 5

tlively abandoned D67250: [WebAssembly] Add fence in __wasm_init_memory.
Thu, Sep 5, 8:53 PM · Restricted Project
tlively created D67250: [WebAssembly] Add fence in __wasm_init_memory.
Thu, Sep 5, 5:57 PM · Restricted Project
tlively added a comment to D67208: [WebAssembly] Add -fwasm-exceptions for wasm EH.

Is there a plan to turn this on by default at some point, or will users always have to opt-in to using exceptions? Also, would it make sense to automatically turn this feature on if the user instead supplies -mexception-handling to turn on the target feature?

Thu, Sep 5, 2:41 PM · Restricted Project, Restricted Project

Wed, Sep 4

tlively committed rL370973: Request commit access for tlively.
Request commit access for tlively
Wed, Sep 4, 1:37 PM
tlively committed rG09768c5d7abb: [WebAssembly] Initialize memory in start function (authored by tlively).
[WebAssembly] Initialize memory in start function
Wed, Sep 4, 12:53 PM
tlively committed rL370965: [WebAssembly] Initialize memory in start function.
[WebAssembly] Initialize memory in start function
Wed, Sep 4, 12:52 PM
tlively closed D65783: [WebAssembly] Initialize memory in start function.
Wed, Sep 4, 12:52 PM · Restricted Project
tlively added inline comments to D65783: [WebAssembly] Initialize memory in start function.
Wed, Sep 4, 11:40 AM · Restricted Project
tlively added a comment to D65783: [WebAssembly] Initialize memory in start function.

Can you verify that you can pass all the "wasm2" tests in emscripten with this change?

Wed, Sep 4, 11:38 AM · Restricted Project

Tue, Sep 3

tlively updated the diff for D65783: [WebAssembly] Initialize memory in start function.
  • Address review comments
Tue, Sep 3, 6:20 PM · Restricted Project
tlively added inline comments to D65783: [WebAssembly] Initialize memory in start function.
Tue, Sep 3, 6:20 PM · Restricted Project
tlively updated the diff for D65783: [WebAssembly] Initialize memory in start function.
  • Switch to more robust scheme with cmpxchg/wait/notify
Tue, Sep 3, 5:26 PM · Restricted Project
tlively planned changes to D65783: [WebAssembly] Initialize memory in start function.
Tue, Sep 3, 11:41 AM · Restricted Project
tlively abandoned D66983: [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic.

Abandoning in favor of @sunfish's idea for introducing a cost mechanism for shuffle masks in DAGCombiner.

Tue, Sep 3, 11:39 AM · Restricted Project, Restricted Project

Fri, Aug 30

tlively added a comment to D66983: [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic.

@sunfish That sounds like a useful mechanism to me. I'd be happy to work on that next week. Is the consensus that we should not merge this change and instead pursue that idea?

Fri, Aug 30, 5:24 PM · Restricted Project, Restricted Project
tlively committed rGd0d931706146: [WebAssembly] Add SIMD QFMA/QFMS (authored by tlively).
[WebAssembly] Add SIMD QFMA/QFMS
Fri, Aug 30, 5:12 PM
tlively committed rL370556: [WebAssembly] Add SIMD QFMA/QFMS.
[WebAssembly] Add SIMD QFMA/QFMS
Fri, Aug 30, 5:12 PM
tlively closed D67020: [WebAssembly] Add SIMD QFMA/QFMS.
Fri, Aug 30, 5:12 PM · Restricted Project, Restricted Project
tlively removed a parent revision for D67020: [WebAssembly] Add SIMD QFMA/QFMS: D66983: [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic.
Fri, Aug 30, 5:06 PM · Restricted Project, Restricted Project
tlively removed a child revision for D66983: [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic: D67020: [WebAssembly] Add SIMD QFMA/QFMS.
Fri, Aug 30, 5:06 PM · Restricted Project, Restricted Project
tlively updated the summary of D67020: [WebAssembly] Add SIMD QFMA/QFMS.
Fri, Aug 30, 5:06 PM · Restricted Project, Restricted Project
tlively added a comment to D67020: [WebAssembly] Add SIMD QFMA/QFMS.
Fri, Aug 30, 5:06 PM · Restricted Project, Restricted Project
tlively added a comment to D66983: [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic.

Link to DAGCombiner.cpp code: https://github.com/llvm/llvm-project/blob/802aab5/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp#L19014

Fri, Aug 30, 4:47 PM · Restricted Project, Restricted Project
tlively added a comment to D67020: [WebAssembly] Add SIMD QFMA/QFMS.

They need benchmarking data before they can be merged into the proposal, and they need to be supported in the toolchain for us to get good benchmarking data.

Fri, Aug 30, 4:15 PM · Restricted Project, Restricted Project
tlively added a comment to D66983: [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic.

The context for this CL is https://github.com/emscripten-core/emscripten/issues/9340. The code that does the undesirable optimization is around llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18776. I think it is a reasonable assumption that what you put in is what you get out, especially if you're trying to trigger particular WebAssembly engine behavior that the backend should not really be reasoning about. Now perhaps users should not be reasoning about it either, but given that they are I think this patch is reasonable.

Fri, Aug 30, 2:36 PM · Restricted Project, Restricted Project
tlively added a child revision for D66983: [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic: D67020: [WebAssembly] Add SIMD QFMA/QFMS.
Fri, Aug 30, 2:25 PM · Restricted Project, Restricted Project
tlively created D67020: [WebAssembly] Add SIMD QFMA/QFMS.
Fri, Aug 30, 2:25 PM · Restricted Project, Restricted Project

Thu, Aug 29

tlively accepted D66978: [CodeGen] Fix lowering for returning the result of an extractvalue.

Generally LGTM, although the tests might be more readable if you pass -wasm-disable-explicit-locals and -wasm-keep-registers as well. It's also concerning that no one noticed this issue before. Do you know why other targets may not have run into it?

Thu, Aug 29, 8:50 PM · Restricted Project
tlively created D66983: [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic.
Thu, Aug 29, 5:17 PM · Restricted Project, Restricted Project

Aug 22 2019

tlively added inline comments to D66545: [WebAssembly] Add Emscripten support for UBSan, LSan and ASan.
Aug 22 2019, 11:49 AM · Restricted Project, Restricted Project

Aug 16 2019

tlively accepted D66356: [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp.
Aug 16 2019, 11:18 AM · Restricted Project
tlively added inline comments to D66356: [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp.
Aug 16 2019, 11:00 AM · Restricted Project

Aug 14 2019

tlively added a comment to D65783: [WebAssembly] Initialize memory in start function.

Thanks for you comments! I am also planning to update the memory initialization scheme to use wait and notify so that it works with racing modules instead of requiring the runtime to ensure that no module is called into before the main module is finished initializing. In a web context the runtime will have to ensure the main thread wins this race because it is not allowed to wait, but this is still strictly more general than the current scheme. Does that sound good to you?

Aug 14 2019, 9:59 AM · Restricted Project
tlively committed rGde0133eaa2c5: [WebAssembly] Stop unrolling SIMD shifts since they are fixed in V8 (authored by tlively).
[WebAssembly] Stop unrolling SIMD shifts since they are fixed in V8
Aug 14 2019, 9:25 AM
tlively committed rL368868: [WebAssembly] Stop unrolling SIMD shifts since they are fixed in V8.
[WebAssembly] Stop unrolling SIMD shifts since they are fixed in V8
Aug 14 2019, 9:24 AM
tlively closed D66166: [WebAssembly] Stop unrolling SIMD shifts since they are fixed in V8.
Aug 14 2019, 9:24 AM · Restricted Project

Aug 13 2019

tlively created D66166: [WebAssembly] Stop unrolling SIMD shifts since they are fixed in V8.
Aug 13 2019, 2:06 PM · Restricted Project

Aug 7 2019

tlively accepted D65887: [TargetLowering] SimplifyDemandedBits - call SimplifyMultipleUseDemandedBits for ISD::EXTRACT_VECTOR_ELT.

@tlively Another thing we could consider is adding WebAssemblyISD opcodes for zero extending extract vector element - similar to what X86ISD does with PEXTRW/PEXTRB - this would avoid the need for the (and, extract_element(v, c), 0xFFFF) pattern that is causing all the problems.

Aug 7 2019, 1:41 PM · Restricted Project

Aug 6 2019

tlively accepted D65684: [WebAssembly] Lower ASan constructor priority on Emscripten.

It would be good to add a test here, too ;)

Aug 6 2019, 1:05 PM · Restricted Project, Restricted Project
tlively accepted D65785: [WebAssembly] Fix null pointer in createInitTLSFunction.
Aug 6 2019, 1:03 PM · Restricted Project
tlively added a comment to D65720: [WebAssembly] Regenerate SIMD Arithmetic tests.

Sounds good; I'm happy to help out.

Aug 6 2019, 8:57 AM · Restricted Project

Aug 5 2019

tlively accepted D65785: [WebAssembly] Fix null pointer in createInitTLSFunction.
Aug 5 2019, 7:30 PM · Restricted Project
tlively added a comment to D65785: [WebAssembly] Fix null pointer in createInitTLSFunction.

Oops it would be good to have a test, too ;)

Aug 5 2019, 7:30 PM · Restricted Project
tlively created D65783: [WebAssembly] Initialize memory in start function.
Aug 5 2019, 5:46 PM · Restricted Project
tlively added a comment to D65720: [WebAssembly] Regenerate SIMD Arithmetic tests.

I have mixed feelings about this. One one hand I understand that this file is huge and cross-cutting changes could cause a lot of manual updating work, but on the other hand each individual test was very readable and succinct. The auto-generated version would certainly be less work to maintain, but its enormous amount of irrelevant information and repetition is unfortunate. @aheejin, what do you think about this?

Aug 5 2019, 12:58 PM · Restricted Project
tlively accepted D65463: [WebAssembly] Fix conflict between ret legalization and sjlj.

LGTM with a small test format change.

Aug 5 2019, 11:56 AM · Restricted Project
tlively added inline comments to D65684: [WebAssembly] Lower ASan constructor priority on Emscripten.
Aug 5 2019, 11:34 AM · Restricted Project, Restricted Project

Jul 31 2019

tlively added inline comments to D64758: [WebAssembly] Assembler/InstPrinter: support call_indirect type index..
Jul 31 2019, 10:52 AM · Restricted Project
tlively added a comment to D65463: [WebAssembly] Fix conflict between ret legalization and sjlj.

I like this approach. I prefer the option 2 among the three options you described: 1 is redundantly doing what ISel is already doing, and 3 makes LLVM-backend generated code incorrect so we have to rely on the other tool to fix it, which seems not very desirable. As you said, having to add an extra argument to the interface of CanLowerReturn is a bit sad but I don't really mind that if others are OK with it.

@dschuff @tlively Any more opinions?

Jul 31 2019, 10:47 AM · Restricted Project

Jul 30 2019

tlively accepted D64758: [WebAssembly] Assembler/InstPrinter: support call_indirect type index..

This looks great! The code is straightforward and I like the extra information in the text format. We will have to do a little more work to support return_call_indirect, but it looks like doing so should be fairly straightforward on top of this base.

Jul 30 2019, 11:03 PM · Restricted Project
tlively committed rGe0a9dce543ad: [WebAssembly] Do not emit tail calls with return type mismatch (authored by tlively).
[WebAssembly] Do not emit tail calls with return type mismatch
Jul 30 2019, 11:09 AM
tlively committed rL367339: [WebAssembly] Do not emit tail calls with return type mismatch.
[WebAssembly] Do not emit tail calls with return type mismatch
Jul 30 2019, 11:08 AM
tlively closed D65246: [WebAssembly] Do not emit tail calls with return type mismatch.
Jul 30 2019, 11:08 AM · Restricted Project

Jul 29 2019

tlively updated the diff for D65246: [WebAssembly] Do not emit tail calls with return type mismatch.
  • Update documentation
Jul 29 2019, 6:01 PM · Restricted Project
tlively added inline comments to D65246: [WebAssembly] Do not emit tail calls with return type mismatch.
Jul 29 2019, 5:55 PM · Restricted Project

Jul 26 2019

tlively updated the diff for D65246: [WebAssembly] Do not emit tail calls with return type mismatch.
  • Do not allow varargs tail calls
Jul 26 2019, 8:11 PM · Restricted Project
tlively updated the diff for D65246: [WebAssembly] Do not emit tail calls with return type mismatch.
  • Address comments, add a few more tests
Jul 26 2019, 6:24 PM · Restricted Project
tlively added inline comments to D65246: [WebAssembly] Do not emit tail calls with return type mismatch.
Jul 26 2019, 5:03 PM · Restricted Project
tlively updated the diff for D65246: [WebAssembly] Do not emit tail calls with return type mismatch.
  • Record proper return types for indirect tail calls as well
Jul 26 2019, 4:15 PM · Restricted Project

Jul 24 2019

tlively created D65246: [WebAssembly] Do not emit tail calls with return type mismatch.
Jul 24 2019, 3:19 PM · Restricted Project
tlively accepted D65177: [WebAssembly] Set __tls_align to 1 when there is no TLS.
Jul 24 2019, 11:24 AM · Restricted Project

Jul 23 2019

tlively accepted D65177: [WebAssembly] Set __tls_align to 1 when there is no TLS.
Jul 23 2019, 5:46 PM · Restricted Project

Jul 19 2019

tlively accepted D65028: [WebAssembly] Compute and export TLS block alignment.

Nice

Jul 19 2019, 4:32 PM · Restricted Project, Restricted Project

Jul 18 2019

tlively committed rG6a6f28f7b720: [WebAssembly] Use passive segments by default when memory is shared (authored by tlively).
[WebAssembly] Use passive segments by default when memory is shared
Jul 18 2019, 2:51 PM
tlively committed rL366504: [WebAssembly] Use passive segments by default when memory is shared.
[WebAssembly] Use passive segments by default when memory is shared
Jul 18 2019, 2:51 PM
tlively closed D64950: [WebAssembly] Use passive segments by default when memory is shared.
Jul 18 2019, 2:50 PM · Restricted Project
tlively added inline comments to D64950: [WebAssembly] Use passive segments by default when memory is shared.
Jul 18 2019, 2:39 PM · Restricted Project
tlively updated the diff for D64950: [WebAssembly] Use passive segments by default when memory is shared.
  • Simplify flags logic
Jul 18 2019, 2:39 PM · Restricted Project
tlively created D64950: [WebAssembly] Use passive segments by default when memory is shared.
Jul 18 2019, 2:10 PM · Restricted Project
tlively accepted D64949: [WebAssembly] Fix __builtin_wasm_tls_base intrinsic.

LGTM modulo a test!

Jul 18 2019, 2:08 PM · Restricted Project, Restricted Project