Page MenuHomePhabricator

tlively (Thomas Lively)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 31 2018, 10:54 AM (149 w, 4 d)

Recent Activity

Wed, Jun 9

tlively accepted D95425: Implementation of global.get/set for reftypes in LLVM IR.

Thanks for your patience through all the review! Let's get this landed :)

Wed, Jun 9, 8:41 PM · Restricted Project, Restricted Project

Mon, May 31

tlively accepted D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Quick r? to @tlively -- OK with having the new util function in WebAssemblyFrameLowering? It didn't work to have it in the utils library because the function needs the vtable of WebAssemblyFunctionInfo.

Mon, May 31, 9:59 PM · Restricted Project, Restricted Project

Thu, May 27

tlively accepted D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

LGTM with that one last comment on the test.

Thu, May 27, 12:37 PM · Restricted Project, Restricted Project

Mon, May 24

tlively added a comment to D95425: Implementation of global.get/set for reftypes in LLVM IR.

It would be good to add dedicated tests for table.get and table.set as well.

Mon, May 24, 10:14 PM · Restricted Project, Restricted Project

Fri, May 21

tlively added a comment to D102951: [WebAssembly][lld] Fix segfault on .bss sections in mapfile.

@sbc100 Is there anything better to do here besides falling back and emitting 0 as the offset?

Fri, May 21, 4:02 PM · Restricted Project
tlively requested review of D102951: [WebAssembly][lld] Fix segfault on .bss sections in mapfile.
Fri, May 21, 4:01 PM · Restricted Project

Thu, May 20

tlively accepted D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Thanks for your review, @arsenm! LGTM from me as well.

Thu, May 20, 2:30 PM · Restricted Project

May 12 2021

tlively accepted D102364: [WebAssembly] Allow Wasm EH with Emscripten SjLj.
May 12 2021, 1:26 PM · Restricted Project

May 7 2021

tlively committed rG1e9c39a3f982: [WebAssembly] Use functions instead of macros for const SIMD intrinsics (authored by tlively).
[WebAssembly] Use functions instead of macros for const SIMD intrinsics
May 7 2021, 11:50 AM
tlively closed D102018: [WebAssembly] Use functions instead of macros for const SIMD intrinsics.
May 7 2021, 11:50 AM · Restricted Project
tlively added a comment to D102018: [WebAssembly] Use functions instead of macros for const SIMD intrinsics.

So what prevented us from using functions when we were using _Static_assert and why is it now possible to use functions?

May 7 2021, 11:33 AM · Restricted Project

May 6 2021

tlively added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 6 2021, 5:22 PM · Restricted Project, Restricted Project
tlively updated the summary of D102018: [WebAssembly] Use functions instead of macros for const SIMD intrinsics.
May 6 2021, 1:08 PM · Restricted Project
tlively requested review of D102018: [WebAssembly] Use functions instead of macros for const SIMD intrinsics.
May 6 2021, 1:07 PM · Restricted Project
tlively added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 6 2021, 10:54 AM · Restricted Project, Restricted Project
tlively added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 6 2021, 10:32 AM · Restricted Project, Restricted Project
tlively added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 6 2021, 10:31 AM · Restricted Project, Restricted Project
tlively accepted D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

This LGTM! MANAGED sounds like a good address space name to me. @sbc100, do you have any final comments?

May 6 2021, 10:22 AM · Restricted Project, Restricted Project
tlively committed rGb198b9b8974b: [WebAssembly] Fix argument types in SIMD narrowing intrinsics (authored by tlively).
[WebAssembly] Fix argument types in SIMD narrowing intrinsics
May 6 2021, 10:08 AM
tlively closed D101979: [WebAssembly] Fix argument types in SIMD narrowing intrinsics.
May 6 2021, 10:08 AM · Restricted Project
tlively requested review of D101979: [WebAssembly] Fix argument types in SIMD narrowing intrinsics.
May 6 2021, 12:35 AM · Restricted Project

May 5 2021

tlively added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 5 2021, 4:14 PM · Restricted Project, Restricted Project
tlively added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 5 2021, 3:45 PM · Restricted Project, Restricted Project
tlively added a reviewer for D101913: [CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols: sbc100.

@sbc100, you know a lot more about this symbol stuff than I do. Could you take a look at this?

May 5 2021, 3:40 PM · Restricted Project
tlively added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 5 2021, 3:28 PM · Restricted Project, Restricted Project
tlively added inline comments to D95425: Implementation of global.get/set for reftypes in LLVM IR.
May 5 2021, 2:44 PM · Restricted Project, Restricted Project
tlively added a comment to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

LGTM with Sam's comments resolved!

May 5 2021, 2:30 PM · Restricted Project, Restricted Project
tlively added a comment to D101805: [WebAssembly] Add codegen test for wasm_simd128.h.

@dblaikie, what's the best practice for making tests robust to this difference?

May 5 2021, 1:54 PM · Restricted Project
tlively committed rG81fce29d6e1f: [WebAssembly] Add SIMD const_splat intrinsics (authored by tlively).
[WebAssembly] Add SIMD const_splat intrinsics
May 5 2021, 1:47 PM
tlively closed D101885: [WebAssembly] Add SIMD const_splat intrinsics.
May 5 2021, 1:47 PM · Restricted Project
tlively committed rG602f318cfdac: [WebAssembly] Fix constness of pointer params to load intrinsics (authored by tlively).
[WebAssembly] Fix constness of pointer params to load intrinsics
May 5 2021, 1:17 PM
tlively closed D101884: [WebAssembly] Fix constness of pointer params to load intrinsics.
May 5 2021, 1:17 PM · Restricted Project
tlively added a comment to D101884: [WebAssembly] Fix constness of pointer params to load intrinsics.

I see, thanks. Then other load instructions are OK not to be fixed?

  • v128.load
  • v128.loadN_splat
  • v128.loadNxM_s/u
May 5 2021, 1:10 PM · Restricted Project
tlively committed rG627a52695537: [WebAssembly] Update narrowing builtin function operand types (authored by tlively).
[WebAssembly] Update narrowing builtin function operand types
May 5 2021, 1:04 PM
tlively closed D101883: [WebAssembly] Update narrowing builtin function operand types.
May 5 2021, 1:04 PM · Restricted Project
tlively added a comment to D101884: [WebAssembly] Fix constness of pointer params to load intrinsics.

It only matters for pointer parameters. For example, const int * is meaningfully different from int *, but const int is not usefully different from int.

May 5 2021, 12:42 PM · Restricted Project
tlively added a comment to D101805: [WebAssembly] Add codegen test for wasm_simd128.h.

Thanks, @hans! That's very surprising; I'll take a deeper look at what was going wrong.

May 5 2021, 12:12 PM · Restricted Project
tlively committed rG89333b35a7a9: [WebAssembly] Set alignment to 1 for SIMD memory intrinsics (authored by tlively).
[WebAssembly] Set alignment to 1 for SIMD memory intrinsics
May 5 2021, 11:59 AM
tlively closed D101850: [WebAssembly] Set alignment to 1 for SIMD memory intrinsics.
May 5 2021, 11:59 AM · Restricted Project

May 4 2021

tlively requested review of D101885: [WebAssembly] Add SIMD const_splat intrinsics.
May 4 2021, 11:49 PM · Restricted Project
tlively requested review of D101884: [WebAssembly] Fix constness of pointer params to load intrinsics.
May 4 2021, 10:22 PM · Restricted Project
tlively retitled D101883: [WebAssembly] Update narrowing builtin function operand types from [WebAssembly] Update SIMD builtin function operand types to [WebAssembly] Update narrowing builtin function operand types.
May 4 2021, 9:59 PM · Restricted Project
tlively updated the diff for D101883: [WebAssembly] Update narrowing builtin function operand types.
  • Remove (incorrect) const pointer changes. Will fix them and put them in a separate revision.
May 4 2021, 9:57 PM · Restricted Project
tlively requested review of D101883: [WebAssembly] Update narrowing builtin function operand types.
May 4 2021, 9:09 PM · Restricted Project
tlively added a comment to D101684: [WebAssembly] Add end-to-end codegen tests for wasm_simd128.h.

I think there is another dimension to this aside from project composition - intrinsics have a tendency to "interact" with their surroundings, and it better to capture the IR rather than the end result. Even if we can verify that simple calls produce instructions we expect, this might not hold true is the arguments change, or the call is in a different context. IR definitely gives more opportunities to test things through.

May 4 2021, 7:44 PM · Restricted Project, Restricted Project
tlively added inline comments to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.
May 4 2021, 5:18 PM · Restricted Project, Restricted Project
tlively added a comment to D101342: [SelectionDAG][Mips][PowerPC][RISCV][WebAssembly] Teach computeKnownBits/ComputeNumSignBits about atomics.

The Wasm changes LGTM! This is a nice simplification.

May 4 2021, 4:52 PM · Restricted Project
tlively added a comment to D101850: [WebAssembly] Set alignment to 1 for SIMD memory intrinsics.

Sorry I'm not sure if I understand. The "expected alignment" for all those memory instructions is 1, regardless of the size of the element of the vectors? Can you elaborate on why the previous code is incorrect?

May 4 2021, 4:46 PM · Restricted Project
tlively committed rGf3b769e82ff3: [WebAssembly] Add codegen test for wasm_simd128.h (authored by tlively).
[WebAssembly] Add codegen test for wasm_simd128.h
May 4 2021, 4:11 PM
tlively closed D101805: [WebAssembly] Add codegen test for wasm_simd128.h.
May 4 2021, 4:11 PM · Restricted Project
tlively added a comment to D101805: [WebAssembly] Add codegen test for wasm_simd128.h.

At just under 4 seconds on my machine, it's certainly not one of the quickest clang lit tests, but neither is it one of the slowest. It looks like there are many that take tens of seconds.

May 4 2021, 4:03 PM · Restricted Project
tlively committed rG14ca2e5e22e7: [WebAssembly] Mark abs of v2i64 as legal (authored by tlively).
[WebAssembly] Mark abs of v2i64 as legal
May 4 2021, 1:26 PM
tlively closed D101803: [WebAssembly] Mark abs of v2i64 as legal.
May 4 2021, 1:25 PM · Restricted Project
tlively requested review of D101850: [WebAssembly] Set alignment to 1 for SIMD memory intrinsics.
May 4 2021, 1:10 PM · Restricted Project

May 3 2021

tlively requested review of D101805: [WebAssembly] Add codegen test for wasm_simd128.h.
May 3 2021, 5:42 PM · Restricted Project
tlively requested review of D101803: [WebAssembly] Mark abs of v2i64 as legal.
May 3 2021, 5:06 PM · Restricted Project
tlively closed D101684: [WebAssembly] Add end-to-end codegen tests for wasm_simd128.h.
May 3 2021, 2:55 PM · Restricted Project, Restricted Project
tlively added a comment to D101684: [WebAssembly] Add end-to-end codegen tests for wasm_simd128.h.

I chatted with @dblaikie offline about this just now, and we both think it makes sense to turn this particular test into a C->IR test, then later potentially add a C->Wasm end-to-end test to the cross-project-tests directory created in this WIP stack of diffs: https://reviews.llvm.org/D95339. I'll also bump the RFC thread about cross-project-tests with a pointer to this conversation to solicit more feedback about whether this kind of end-to-end intrinsic test should be in scope for cross-project-tests.

May 3 2021, 2:02 PM · Restricted Project, Restricted Project
tlively committed rGcd460c4d11ee: [WebAssembly] Fixup order of ins variables for table instructions (authored by pmatos).
[WebAssembly] Fixup order of ins variables for table instructions
May 3 2021, 1:05 PM
tlively accepted D101735: [WebAssembly] Reenable end-to-end test in wasm-eh.cpp.

This is hopefully less controversial because the test already exists and this is just re-enabling it.

May 3 2021, 10:31 AM · Restricted Project
tlively added a comment to D101656: [WebAssembly] Fixup order of ins variables for table instructions.

Oh right, this only changes the register-based printing, which is used exclusively in llc tests. The stacky assembly that would be used in production is unaffected, so it's not surprising that none of the existing assembly tests are affected.

May 3 2021, 10:20 AM · Restricted Project

May 2 2021

tlively added a comment to D101684: [WebAssembly] Add end-to-end codegen tests for wasm_simd128.h.

In order to get the benefit of this end-to-end test from split tests like that, the LLVM test would have to be automatically generated from the clang test.

Why is that? We don't do that for other test surface area between clang and LLVM.

May 2 2021, 2:12 PM · Restricted Project, Restricted Project
tlively added a comment to D101684: [WebAssembly] Add end-to-end codegen tests for wasm_simd128.h.

Assembly tests are generally discouraged in clang, but in this case we actually care about the specific instruction being generated from the intrinsics.

I don't think this is a sound reason to add an end-to-end test in clang. The same is true of all clang tests, right? We ultimately care that accessing a parameter lowers to a certain register (because we're trying to implement a certain ABI) but we don't test that in clang - we test that we lower to certain IR which is guaranteed to lower to a certain register use - and then in LLVM we test that that IR does lower to that register.

I think the same holds true here - and a clang test should verify the IR and an LLVM test should verify the assembly.

May 2 2021, 1:34 PM · Restricted Project, Restricted Project

Apr 30 2021

tlively updated the diff for D101684: [WebAssembly] Add end-to-end codegen tests for wasm_simd128.h.
  • squash to include all changes
Apr 30 2021, 10:39 PM · Restricted Project, Restricted Project
tlively requested review of D101684: [WebAssembly] Add end-to-end codegen tests for wasm_simd128.h.
Apr 30 2021, 10:37 PM · Restricted Project, Restricted Project
tlively added a comment to D101656: [WebAssembly] Fixup order of ins variables for table instructions.

@sbc100 Will fixing the assembly format to have the correct operand order like this break Emscripten at all? I think the incorrect order also made it into the LLVM 12 release, but I think we have few enough users that it's probably worth fixing now.

Apr 30 2021, 12:35 PM · Restricted Project
tlively added a comment to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

Nice! I think that splitting this out of the change that adds reference types is a good idea. Regarding the FIXME in the test, is it the case that the globals are also not emitted in the binary format, or is it just the assembly output that is broken?

Apr 30 2021, 11:23 AM · Restricted Project, Restricted Project

Apr 28 2021

tlively added a comment to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Nice! This turns out to be relatively simple. It would be good to add more tests with reference typed locals mixed in with normal locals, etc. Also, what happens when one of the alloca values is used by something other than a load or a store? Is it just an ISel failure at that point?

Apr 28 2021, 9:52 PM · Restricted Project, Restricted Project
tlively added a comment to D95425: Implementation of global.get/set for reftypes in LLVM IR.

This is looking really good!

Apr 28 2021, 3:38 PM · Restricted Project, Restricted Project

Apr 27 2021

tlively accepted D101403: [WebAssembly] Error when wasm EH is used with Emscripten EH/SjLj.
Apr 27 2021, 3:28 PM · Restricted Project

Apr 23 2021

tlively added a comment to D95425: Implementation of global.get/set for reftypes in LLVM IR.

Apparently getTypeForEVT in LowerArguments is only necessary to call the getABIAlignmentForCallingConv. I was thinking that since reference types really are pointers to different address spaces we could return their TypeForEVT as being int32. That will then return as the alignment for reference types the default alignment for int32. This should help with avoiding us touching middle end code. I will experiment in this direction.

Apr 23 2021, 6:10 PM · Restricted Project, Restricted Project
tlively added inline comments to D101112: [WebAssembly] Finalize wasm_simd128.h intrinsics.
Apr 23 2021, 3:53 PM · Restricted Project
tlively committed rG502f54049d17: [WebAssembly] Finalize wasm_simd128.h intrinsics (authored by tlively).
[WebAssembly] Finalize wasm_simd128.h intrinsics
Apr 23 2021, 1:37 PM
tlively closed D101112: [WebAssembly] Finalize wasm_simd128.h intrinsics.
Apr 23 2021, 1:37 PM · Restricted Project
tlively added inline comments to D101112: [WebAssembly] Finalize wasm_simd128.h intrinsics.
Apr 23 2021, 1:17 PM · Restricted Project
tlively added inline comments to D101112: [WebAssembly] Finalize wasm_simd128.h intrinsics.
Apr 23 2021, 1:04 PM · Restricted Project
tlively added a comment to D101112: [WebAssembly] Finalize wasm_simd128.h intrinsics.

General question about SIMD intrinsics: So we make dedicated wasm intrinsics only for the cases there are not general intrinsics people can use instead?

Apr 23 2021, 12:08 PM · Restricted Project
tlively updated the diff for D101112: [WebAssembly] Finalize wasm_simd128.h intrinsics.
  • "stand" => "standard"
  • Update builtins for v128.any_true
Apr 23 2021, 10:49 AM · Restricted Project
tlively added inline comments to D101112: [WebAssembly] Finalize wasm_simd128.h intrinsics.
Apr 23 2021, 10:25 AM · Restricted Project

Apr 22 2021

tlively requested review of D101112: [WebAssembly] Finalize wasm_simd128.h intrinsics.
Apr 22 2021, 2:40 PM · Restricted Project
tlively accepted D101029: [WebAssembly] Serialize params/results in MachineFunctionInfo.

Thanks for the context links! This LGTM 👍

Apr 22 2021, 12:26 PM · Restricted Project
tlively accepted D101036: [WebAssembly] Fix fixEndsAtEndOfFunction for delegate.
Apr 22 2021, 11:06 AM · Restricted Project
tlively added a reviewer for D101045: [IR][Verifier] Relax restriction on alloca address spaces: arsenm.

The code looks fine, but explicitly requesting a review from @arsenm because I don't know the history of this restriction or how this affects other targets.

Apr 22 2021, 10:54 AM · Restricted Project
tlively added inline comments to D101029: [WebAssembly] Serialize params/results in MachineFunctionInfo.
Apr 22 2021, 10:27 AM · Restricted Project

Apr 20 2021

tlively committed rG693d767c6093: [WebAssembly] More codegen for f64x2.convert_low_i32x4_{s,u} (authored by tlively).
[WebAssembly] More codegen for f64x2.convert_low_i32x4_{s,u}
Apr 20 2021, 12:37 PM
tlively closed D100790: [WebAssembly] More codegen for f64x2.convert_low_i32x4_{s,u}.
Apr 20 2021, 12:37 PM · Restricted Project

Apr 19 2021

tlively requested review of D100790: [WebAssembly] More codegen for f64x2.convert_low_i32x4_{s,u}.
Apr 19 2021, 1:28 PM · Restricted Project
tlively committed rGe657c84fa10e: [WebAssembly] Use v128.const instead of splats for constants (authored by tlively).
[WebAssembly] Use v128.const instead of splats for constants
Apr 19 2021, 12:44 PM
tlively closed D100716: [WebAssembly] Use v128.const instead of splats for constants.
Apr 19 2021, 12:44 PM · Restricted Project
tlively added inline comments to D100716: [WebAssembly] Use v128.const instead of splats for constants.
Apr 19 2021, 12:36 PM · Restricted Project
tlively added a comment to D95425: Implementation of global.get/set for reftypes in LLVM IR.

I'm still not comfortable approving this patch with changes to llvm-c/, Bitcode/, or IR/. If those changes can't be backed out, this will require an RFC on llvm-dev, but I would be surprised if that were necessary.

Apr 19 2021, 10:44 AM · Restricted Project, Restricted Project

Apr 18 2021

tlively requested review of D100716: [WebAssembly] Use v128.const instead of splats for constants.
Apr 18 2021, 12:24 AM · Restricted Project

Apr 16 2021

tlively committed rG5c729750a6d7: [WebAssembly] Remove saturating fp-to-int target intrinsics (authored by tlively).
[WebAssembly] Remove saturating fp-to-int target intrinsics
Apr 16 2021, 12:11 PM
tlively closed D100596: [WebAssembly] Remove saturating fp-to-int target intrinsics.
Apr 16 2021, 12:11 PM · Restricted Project, Restricted Project
tlively added inline comments to D100596: [WebAssembly] Remove saturating fp-to-int target intrinsics.
Apr 16 2021, 12:01 PM · Restricted Project, Restricted Project

Apr 15 2021

tlively requested review of D100596: [WebAssembly] Remove saturating fp-to-int target intrinsics.
Apr 15 2021, 1:38 PM · Restricted Project, Restricted Project

Apr 14 2021

tlively committed rG6a18cc23efad: [WebAssembly] Codegen for i64x2.extend_{low,high}_i32x4_{s,u} (authored by tlively).
[WebAssembly] Codegen for i64x2.extend_{low,high}_i32x4_{s,u}
Apr 14 2021, 1:43 PM
tlively closed D100402: [WebAssembly] Codegen for i64x2.extend_{low,high}_i32x4_{s,u}.
Apr 14 2021, 1:43 PM · Restricted Project, Restricted Project
tlively added inline comments to D100425: [WebAssembly] Codegen for f64x2.convert_low_i32x4_{s,u}.
Apr 14 2021, 12:39 PM · Restricted Project, Restricted Project
tlively committed rGaf7925b4dd65: [WebAssembly] Codegen for f64x2.convert_low_i32x4_{s,u} (authored by tlively).
[WebAssembly] Codegen for f64x2.convert_low_i32x4_{s,u}
Apr 14 2021, 11:11 AM