Page MenuHomePhabricator

quantum (Guanzhong Chen)
User

Projects

User does not belong to any projects.

User Details

User Since
May 17 2019, 10:45 AM (17 w, 6 d)

Recent Activity

Wed, Aug 21

quantum planned changes to D66545: [WebAssembly] Add Emscripten support for UBSan, LSan and ASan.
Wed, Aug 21, 11:20 AM · Restricted Project, Restricted Project
quantum created D66545: [WebAssembly] Add Emscripten support for UBSan, LSan and ASan.
Wed, Aug 21, 11:20 AM · Restricted Project, Restricted Project

Aug 16 2019

quantum added inline comments to D66356: [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp.
Aug 16 2019, 12:31 PM · Restricted Project
quantum committed rGb1cb9fd1aaf0: [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp (authored by quantum).
[WebAssembly] Forbid use of EM_ASM with setjmp/longjmp
Aug 16 2019, 11:24 AM
quantum committed rL369137: [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp.
[WebAssembly] Forbid use of EM_ASM with setjmp/longjmp
Aug 16 2019, 11:23 AM
quantum closed D66356: [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp.
Aug 16 2019, 11:23 AM · Restricted Project
quantum updated the diff for D66356: [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp.

Address review comments.

Aug 16 2019, 11:09 AM · Restricted Project
quantum added inline comments to D66356: [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp.
Aug 16 2019, 11:08 AM · Restricted Project
quantum created D66356: [WebAssembly] Forbid use of EM_ASM with setjmp/longjmp.
Aug 16 2019, 10:55 AM · Restricted Project

Aug 15 2019

quantum committed rG82bfd1d25712: [WebAssembly] Correctly handle va_arg of zero-sized structures (authored by quantum).
[WebAssembly] Correctly handle va_arg of zero-sized structures
Aug 15 2019, 12:34 PM
quantum committed rL369042: [WebAssembly] Correctly handle va_arg of zero-sized structures.
[WebAssembly] Correctly handle va_arg of zero-sized structures
Aug 15 2019, 12:33 PM
quantum closed D66255: [WebAssembly] Correctly handle va_arg of zero-sized structures.
Aug 15 2019, 12:33 PM · Restricted Project, Restricted Project

Aug 14 2019

quantum added inline comments to D66255: [WebAssembly] Correctly handle va_arg of zero-sized structures.
Aug 14 2019, 3:41 PM · Restricted Project, Restricted Project
quantum updated the diff for D66255: [WebAssembly] Correctly handle va_arg of zero-sized structures.

Address review feedback.

Aug 14 2019, 3:41 PM · Restricted Project, Restricted Project
quantum created D66255: [WebAssembly] Correctly handle va_arg of zero-sized structures.
Aug 14 2019, 2:05 PM · Restricted Project, Restricted Project

Aug 13 2019

quantum committed rG8a503e439d0d: [WebAssembly] Make clang emit correct va_arg code for structs (authored by quantum).
[WebAssembly] Make clang emit correct va_arg code for structs
Aug 13 2019, 2:42 PM
quantum committed rL368750: [WebAssembly] Make clang emit correct va_arg code for structs.
[WebAssembly] Make clang emit correct va_arg code for structs
Aug 13 2019, 2:41 PM
quantum closed D66168: [WebAssembly] Make clang emit correct va_arg code for structs.
Aug 13 2019, 2:41 PM · Restricted Project, Restricted Project
quantum created D66168: [WebAssembly] Make clang emit correct va_arg code for structs.
Aug 13 2019, 2:07 PM · Restricted Project, Restricted Project

Aug 8 2019

quantum accepted D65985: [lld][WebAssembly] Don't create optional symbols when outputing an object file.

Fix looks fine.

Aug 8 2019, 4:50 PM · Restricted Project
quantum committed rGc5ccbf52ad93: [WebAssembly][lld] control __data_end export with config->shared (authored by quantum).
[WebAssembly][lld] control __data_end export with config->shared
Aug 8 2019, 3:41 PM
quantum committed rL368361: [WebAssembly][lld] control __data_end export with config->shared.
[WebAssembly][lld] control __data_end export with config->shared
Aug 8 2019, 3:39 PM
quantum closed D65980: [WebAssembly][lld] control __data_end export with config->shared.
Aug 8 2019, 3:39 PM · Restricted Project
quantum updated the diff for D65980: [WebAssembly][lld] control __data_end export with config->shared.

Remove the curlies.

Aug 8 2019, 3:38 PM · Restricted Project
quantum created D65980: [WebAssembly][lld] control __data_end export with config->shared.
Aug 8 2019, 3:20 PM · Restricted Project

Aug 6 2019

quantum committed rGb3292a8469c3: [WebAssembly] Lower ASan constructor priority on Emscripten (authored by quantum).
[WebAssembly] Lower ASan constructor priority on Emscripten
Aug 6 2019, 2:54 PM
quantum committed rL368101: [WebAssembly] Lower ASan constructor priority on Emscripten.
[WebAssembly] Lower ASan constructor priority on Emscripten
Aug 6 2019, 2:52 PM
quantum closed D65684: [WebAssembly] Lower ASan constructor priority on Emscripten.
Aug 6 2019, 2:52 PM · Restricted Project, Restricted Project
quantum updated the diff for D65684: [WebAssembly] Lower ASan constructor priority on Emscripten.

Add constructor priority test

Aug 6 2019, 2:15 PM · Restricted Project, Restricted Project
quantum committed rG0cb776e61a74: [WebAssembly] Fix null pointer in createInitTLSFunction (authored by quantum).
[WebAssembly] Fix null pointer in createInitTLSFunction
Aug 6 2019, 1:12 PM
quantum committed rL368078: [WebAssembly] Fix null pointer in createInitTLSFunction.
[WebAssembly] Fix null pointer in createInitTLSFunction
Aug 6 2019, 1:08 PM
quantum closed D65785: [WebAssembly] Fix null pointer in createInitTLSFunction.
Aug 6 2019, 1:08 PM · Restricted Project
quantum updated the diff for D65785: [WebAssembly] Fix null pointer in createInitTLSFunction.

Add test to check --relocatable with --shared-memory.

Aug 6 2019, 11:22 AM · Restricted Project

Aug 5 2019

quantum created D65785: [WebAssembly] Fix null pointer in createInitTLSFunction.
Aug 5 2019, 6:06 PM · Restricted Project
quantum resigned from D65720: [WebAssembly] Regenerate SIMD Arithmetic tests.

I have never touched the SIMD code and as a result, am not qualified to review this.

Aug 5 2019, 1:13 PM · Restricted Project
quantum added inline comments to D65684: [WebAssembly] Lower ASan constructor priority on Emscripten.
Aug 5 2019, 1:01 PM · Restricted Project, Restricted Project
quantum updated the diff for D65684: [WebAssembly] Lower ASan constructor priority on Emscripten.

Apply suggestions.

Aug 5 2019, 1:01 PM · Restricted Project, Restricted Project

Aug 2 2019

quantum updated the summary of D65684: [WebAssembly] Lower ASan constructor priority on Emscripten.
Aug 2 2019, 5:28 PM · Restricted Project, Restricted Project
quantum updated the summary of D65684: [WebAssembly] Lower ASan constructor priority on Emscripten.
Aug 2 2019, 5:28 PM · Restricted Project, Restricted Project
quantum created D65684: [WebAssembly] Lower ASan constructor priority on Emscripten.
Aug 2 2019, 5:23 PM · Restricted Project, Restricted Project

Jul 26 2019

quantum abandoned D65358: [WebAssembly] allow EM_ASM to be used with setjmp.

Now that you mention it, it doesn't feel correct to me either. I think the fix would have to be in binaryen.

Jul 26 2019, 5:26 PM · Restricted Project
quantum updated the summary of D65358: [WebAssembly] allow EM_ASM to be used with setjmp.
Jul 26 2019, 4:42 PM · Restricted Project
quantum created D65358: [WebAssembly] allow EM_ASM to be used with setjmp.
Jul 26 2019, 4:42 PM · Restricted Project

Jul 24 2019

quantum committed rG87186b2447c8: [WebAssembly] Set __tls_align to 1 when there is no TLS (authored by quantum).
[WebAssembly] Set __tls_align to 1 when there is no TLS
Jul 24 2019, 2:49 PM
quantum committed rL366948: [WebAssembly] Set __tls_align to 1 when there is no TLS.
[WebAssembly] Set __tls_align to 1 when there is no TLS
Jul 24 2019, 2:47 PM
quantum closed D65177: [WebAssembly] Set __tls_align to 1 when there is no TLS.
Jul 24 2019, 2:47 PM · Restricted Project
quantum updated the diff for D65177: [WebAssembly] Set __tls_align to 1 when there is no TLS.

Add a comment to explain what the test is testing.

Jul 24 2019, 1:18 PM · Restricted Project

Jul 23 2019

quantum added inline comments to D65177: [WebAssembly] Set __tls_align to 1 when there is no TLS.
Jul 23 2019, 5:58 PM · Restricted Project
quantum updated the diff for D65177: [WebAssembly] Set __tls_align to 1 when there is no TLS.

Switched to not using default arguments

Jul 23 2019, 5:58 PM · Restricted Project
quantum created D65177: [WebAssembly] Set __tls_align to 1 when there is no TLS.
Jul 23 2019, 5:24 PM · Restricted Project

Jul 19 2019

quantum committed rG5204f7611f4a: [WebAssembly] Compute and export TLS block alignment (authored by quantum).
[WebAssembly] Compute and export TLS block alignment
Jul 19 2019, 4:37 PM
quantum committed rL366624: [WebAssembly] Compute and export TLS block alignment.
[WebAssembly] Compute and export TLS block alignment
Jul 19 2019, 4:36 PM
quantum closed D65028: [WebAssembly] Compute and export TLS block alignment.
Jul 19 2019, 4:35 PM · Restricted Project, Restricted Project
quantum created D65028: [WebAssembly] Compute and export TLS block alignment.
Jul 19 2019, 4:22 PM · Restricted Project, Restricted Project

Jul 18 2019

quantum accepted D64950: [WebAssembly] Use passive segments by default when memory is shared.
Jul 18 2019, 2:43 PM · Restricted Project
quantum added inline comments to D64950: [WebAssembly] Use passive segments by default when memory is shared.
Jul 18 2019, 2:23 PM · Restricted Project
quantum committed rG21aafc2e0c5c: [WebAssembly] fix bug in finding .tdata segment (authored by quantum).
[WebAssembly] fix bug in finding .tdata segment
Jul 18 2019, 2:22 PM
quantum committed rGdf4479200b39: [WebAssembly] Fix __builtin_wasm_tls_base intrinsic (authored by quantum).
[WebAssembly] Fix __builtin_wasm_tls_base intrinsic
Jul 18 2019, 2:21 PM
quantum committed rL366500: [WebAssembly] fix bug in finding .tdata segment.
[WebAssembly] fix bug in finding .tdata segment
Jul 18 2019, 2:21 PM
quantum closed D64947: [WebAssembly] fix bug in finding .tdata segment.
Jul 18 2019, 2:20 PM · Restricted Project
quantum committed rL366499: [WebAssembly] Fix __builtin_wasm_tls_base intrinsic.
[WebAssembly] Fix __builtin_wasm_tls_base intrinsic
Jul 18 2019, 2:17 PM
quantum closed D64949: [WebAssembly] Fix __builtin_wasm_tls_base intrinsic.
Jul 18 2019, 2:17 PM · Restricted Project, Restricted Project
quantum updated the diff for D64949: [WebAssembly] Fix __builtin_wasm_tls_base intrinsic.

Add a test with a memory dependency on __builtin_wasm_tls_base.

Jul 18 2019, 2:17 PM · Restricted Project, Restricted Project
quantum updated the diff for D64947: [WebAssembly] fix bug in finding .tdata segment.

Change test to put non-TLS variables first

Jul 18 2019, 2:11 PM · Restricted Project
quantum created D64949: [WebAssembly] Fix __builtin_wasm_tls_base intrinsic.
Jul 18 2019, 1:46 PM · Restricted Project, Restricted Project
quantum created D64947: [WebAssembly] fix bug in finding .tdata segment.
Jul 18 2019, 1:43 PM · Restricted Project
quantum committed rG801fa8e6b9eb: [WebAssembly] Implement __builtin_wasm_tls_base intrinsic (authored by quantum).
[WebAssembly] Implement __builtin_wasm_tls_base intrinsic
Jul 18 2019, 10:54 AM
quantum committed rL366475: [WebAssembly] Implement __builtin_wasm_tls_base intrinsic.
[WebAssembly] Implement __builtin_wasm_tls_base intrinsic
Jul 18 2019, 10:53 AM
quantum closed D64900: [WebAssembly] Implement __builtin_wasm_tls_base intrinsic.
Jul 18 2019, 10:53 AM · Restricted Project, Restricted Project
quantum added a comment to D64900: [WebAssembly] Implement __builtin_wasm_tls_base intrinsic.

What does this return when __wasm_init_tls has not been called?

Jul 18 2019, 10:32 AM · Restricted Project, Restricted Project

Jul 17 2019

quantum created D64900: [WebAssembly] Implement __builtin_wasm_tls_base intrinsic.
Jul 17 2019, 5:38 PM · Restricted Project, Restricted Project

Jul 16 2019

quantum added a comment to D64537: [WebAssembly] Implement thread-local storage (local-exec model).

I had a reply that got eaten here, so I'm going to keep trolling you on your CL since we don't have a design doc for this.
The offset field of a data segment initializer can be a global.get on an imported global. (https://webassembly.github.io/spec/core/valid/instructions.html#constant-expressions). Since each thread is separately instantiated with separate JS, we could have a global import like __tls_base which has a different value in each thread. Then we wouldn't need to manually call the init code anywhere. Would there be other advantages or disadvantages for that?

Jul 16 2019, 5:18 PM · Restricted Project, Restricted Project
quantum committed rG0a8d4df7999e: [WebAssembly] Compile all TLS on Emscripten as local-exec (authored by quantum).
[WebAssembly] Compile all TLS on Emscripten as local-exec
Jul 16 2019, 3:24 PM
quantum committed rL366275: [WebAssembly] Compile all TLS on Emscripten as local-exec.
[WebAssembly] Compile all TLS on Emscripten as local-exec
Jul 16 2019, 3:24 PM
quantum closed D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.
Jul 16 2019, 3:23 PM · Restricted Project
quantum committed rG42bba4b852b1: [WebAssembly] Implement thread-local storage (local-exec model) (authored by quantum).
[WebAssembly] Implement thread-local storage (local-exec model)
Jul 16 2019, 3:04 PM
quantum updated the diff for D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.

Rebase onto latest LLVM.

Jul 16 2019, 3:04 PM · Restricted Project
quantum committed rL366272: [WebAssembly] Implement thread-local storage (local-exec model).
[WebAssembly] Implement thread-local storage (local-exec model)
Jul 16 2019, 3:01 PM
quantum closed D64537: [WebAssembly] Implement thread-local storage (local-exec model).
Jul 16 2019, 3:01 PM · Restricted Project, Restricted Project
quantum updated the diff for D64537: [WebAssembly] Implement thread-local storage (local-exec model).

Disable atomics when TLS is stripped

Jul 16 2019, 3:00 PM · Restricted Project, Restricted Project
quantum updated the diff for D64537: [WebAssembly] Implement thread-local storage (local-exec model).

Remove extra braces

Jul 16 2019, 2:54 PM · Restricted Project, Restricted Project
quantum updated the diff for D64537: [WebAssembly] Implement thread-local storage (local-exec model).

Removed the trailing .. I would add a test to make sure things work without -fdata-sections, but this->Options.DataSections = true; is hard-coded in WebAssemblyTargetMachine.cpp.

Jul 16 2019, 2:37 PM · Restricted Project, Restricted Project
quantum updated the diff for D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.

Use better error message.

Jul 16 2019, 2:03 PM · Restricted Project
quantum added inline comments to D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.
Jul 16 2019, 1:58 PM · Restricted Project
quantum updated the diff for D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.

Rebase onto latest D64537

Jul 16 2019, 1:56 PM · Restricted Project
quantum updated the diff for D64537: [WebAssembly] Implement thread-local storage (local-exec model).

More fine-grainted stripping.

Jul 16 2019, 1:45 PM · Restricted Project, Restricted Project
quantum updated the diff for D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.
  • Not sure what this means. The CL description says it tries to compile things into local-exec, but what this CL does look like checking if a global var is local-exec and if not report an error.
  • What is supposed to happen when the OS is not emscripten? If we don't support TLS in non-emscripten OSes regardless of its mode (local-exec or not), should we print an error in that case too?
  • Also, a test would be good too.
Jul 16 2019, 11:12 AM · Restricted Project

Jul 15 2019

quantum added a comment to D64537: [WebAssembly] Implement thread-local storage (local-exec model).

Where should we call __wasm_init_tls, in case within a library?

Jul 15 2019, 6:23 PM · Restricted Project, Restricted Project
quantum added inline comments to D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.
Jul 15 2019, 4:51 PM · Restricted Project
quantum removed a project from D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec: Restricted Project.
Jul 15 2019, 4:51 PM · Restricted Project
quantum updated the diff for D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.

Undo compressing the previous diff.

Jul 15 2019, 4:50 PM · Restricted Project
quantum updated the diff for D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.

Change to use TODO instead of XXX

Jul 15 2019, 4:50 PM · Restricted Project
quantum added a comment to D64537: [WebAssembly] Implement thread-local storage (local-exec model).

Another high-level question (based just on reading the CL description): The TLS-size intrinsic is per-function, does that mean that the tls-init function is called for every function? are there just multiple TLS sections per object file?

Jul 15 2019, 3:45 PM · Restricted Project, Restricted Project
quantum created D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.
Jul 15 2019, 3:21 PM · Restricted Project
quantum added a child revision for D64537: [WebAssembly] Implement thread-local storage (local-exec model): D64776: [WebAssembly] Compile all TLS on Emscripten as local-exec.
Jul 15 2019, 3:21 PM · Restricted Project, Restricted Project
quantum updated the diff for D64537: [WebAssembly] Implement thread-local storage (local-exec model).

Fix duplicate end function

Jul 15 2019, 3:07 PM · Restricted Project, Restricted Project
quantum added inline comments to D64537: [WebAssembly] Implement thread-local storage (local-exec model).
Jul 15 2019, 1:58 PM · Restricted Project, Restricted Project
quantum updated the diff for D64537: [WebAssembly] Implement thread-local storage (local-exec model).

Deal with review comments.

Jul 15 2019, 1:58 PM · Restricted Project, Restricted Project

Jul 12 2019

quantum updated the diff for D64537: [WebAssembly] Implement thread-local storage (local-exec model).

Change per review feedback.

Jul 12 2019, 6:07 PM · Restricted Project, Restricted Project
quantum added inline comments to D64537: [WebAssembly] Implement thread-local storage (local-exec model).
Jul 12 2019, 6:07 PM · Restricted Project, Restricted Project