Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

wangleiat (wanglei)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 14 2021, 1:56 AM (92 w, 6 d)

Recent Activity

Tue, Sep 12

wangleiat accepted D159183: [LoongArch] Support llvm.is.fpclass for f32 and f64.

LGTM

Tue, Sep 12, 1:05 AM · Restricted Project, Restricted Project

Tue, Aug 29

wangleiat committed rG30b6b27385f8: [LoongArch] Fix typos. NFC (authored by wangleiat).
[LoongArch] Fix typos. NFC
Tue, Aug 29, 4:34 AM · Restricted Project, Restricted Project

Aug 23 2023

wangleiat committed rG3693909ca47f: [LoongArch] Reorder LoongArchTargetLowering(). NFC (authored by wangleiat).
[LoongArch] Reorder LoongArchTargetLowering(). NFC
Aug 23 2023, 6:22 PM · Restricted Project, Restricted Project

Aug 22 2023

wangleiat committed rG1bb776648980: [LoongArch] Optimize stack realignment using BSTRINS instruction (authored by wangleiat).
[LoongArch] Optimize stack realignment using BSTRINS instruction
Aug 22 2023, 6:22 PM · Restricted Project, Restricted Project
wangleiat closed D158384: [LoongArch] Optimize stack realignment using BSTRINS instruction.
Aug 22 2023, 6:22 PM · Restricted Project, Restricted Project

Aug 21 2023

wangleiat updated the diff for D158384: [LoongArch] Optimize stack realignment using BSTRINS instruction.

Address @SixWeining's comments.

Aug 21 2023, 4:51 AM · Restricted Project, Restricted Project

Aug 20 2023

wangleiat requested review of D158384: [LoongArch] Optimize stack realignment using BSTRINS instruction.
Aug 20 2023, 8:30 PM · Restricted Project, Restricted Project
wangleiat committed rG0c76f46ca676: [LoongArch] Add testcases of LSX intrinsics with immediates (authored by chenli).
[LoongArch] Add testcases of LSX intrinsics with immediates
Aug 20 2023, 8:05 PM · Restricted Project, Restricted Project
wangleiat closed D157570: [LoongArch] Add testcases of LSX intrinsics with immediates.
Aug 20 2023, 8:05 PM · Restricted Project, Restricted Project

Aug 19 2023

wangleiat committed rGd163ae8c255f: [LoongArch][MC] Add invalid immediate testcases for LASX instructions (authored by chenli).
[LoongArch][MC] Add invalid immediate testcases for LASX instructions
Aug 19 2023, 2:17 AM · Restricted Project, Restricted Project
wangleiat closed D157574: [LoongArch][MC] Add invalid immediate testcases for LASX instructions.
Aug 19 2023, 2:16 AM · Restricted Project, Restricted Project
wangleiat committed rG2f4b6695836e: [LoongArch][MC] Add invalid immediate testcases for LSX instructions (authored by chenli).
[LoongArch][MC] Add invalid immediate testcases for LSX instructions
Aug 19 2023, 2:16 AM · Restricted Project, Restricted Project
wangleiat closed D157573: [LoongArch][MC] Add invalid immediate testcases for LSX instructions.
Aug 19 2023, 2:16 AM · Restricted Project, Restricted Project
wangleiat committed rG82bbf7003cab: [LoongArch] Add testcases of LASX intrinsics with immediates (authored by chenli).
[LoongArch] Add testcases of LASX intrinsics with immediates
Aug 19 2023, 2:15 AM · Restricted Project, Restricted Project
wangleiat closed D157571: [LoongArch] Add testcases of LASX intrinsics with immediates.
Aug 19 2023, 2:14 AM · Restricted Project, Restricted Project
wangleiat committed rG83311b2b5d1b: [LoongArch] Add LASX intrinsic testcases (authored by chenli).
[LoongArch] Add LASX intrinsic testcases
Aug 19 2023, 2:13 AM · Restricted Project, Restricted Project
wangleiat closed D155835: [LoongArch] Add LASX intrinsic testcases.
Aug 19 2023, 2:13 AM · Restricted Project, Restricted Project
wangleiat committed rGf3aa4416319a: [LoongArch] Add LSX intrinsic testcases (authored by chenli).
[LoongArch] Add LSX intrinsic testcases
Aug 19 2023, 2:11 AM · Restricted Project, Restricted Project
wangleiat closed D155834: [LoongArch] Add LSX intrinsic testcases.
Aug 19 2023, 2:11 AM · Restricted Project, Restricted Project
wangleiat committed rG691f0d00b84f: [LoongArch] Add LASX intrinsic support (authored by wangleiat).
[LoongArch] Add LASX intrinsic support
Aug 19 2023, 2:10 AM · Restricted Project, Restricted Project
wangleiat closed D155830: [LoongArch] Add LASX intrinsic support.
Aug 19 2023, 2:10 AM · Restricted Project, Restricted Project
wangleiat committed rG53141b2fcfa2: [LoongArch] Add LSX intrinsic support (authored by wangleiat).
[LoongArch] Add LSX intrinsic support
Aug 19 2023, 1:53 AM · Restricted Project, Restricted Project
wangleiat closed D155829: [LoongArch] Add LSX intrinsic support.
Aug 19 2023, 1:53 AM · Restricted Project, Restricted Project

Aug 9 2023

wangleiat committed rGea8d3b1f9f2d: [Clang][LoongArch] Use the ClangBuiltin class to automatically generate support… (authored by wangleiat).
[Clang][LoongArch] Use the ClangBuiltin class to automatically generate support…
Aug 9 2023, 1:27 AM · Restricted Project, Restricted Project, Restricted Project
wangleiat closed D156866: [Clang][LoongArch] Use the ClangBuiltin class to automatically generate support for CBE and CFE.
Aug 9 2023, 1:26 AM · Restricted Project, Restricted Project, Restricted Project

Aug 3 2023

wangleiat updated the diff for D156866: [Clang][LoongArch] Use the ClangBuiltin class to automatically generate support for CBE and CFE.

Address @SixWeining's commonts.

Aug 3 2023, 6:07 PM · Restricted Project, Restricted Project, Restricted Project

Aug 2 2023

wangleiat requested review of D156866: [Clang][LoongArch] Use the ClangBuiltin class to automatically generate support for CBE and CFE.
Aug 2 2023, 2:23 AM · Restricted Project, Restricted Project, Restricted Project

Jul 26 2023

wangleiat committed rGffe2b6f75de5: [lld][ELF][test] Fix excessive output file size in loongarch-add-sub.s (authored by WANG Xuerui <git@xen0n.name>).
[lld][ELF][test] Fix excessive output file size in loongarch-add-sub.s
Jul 26 2023, 7:18 AM · Restricted Project
wangleiat closed D156293: [lld][ELF][test] Fix excessive output file size in loongarch-add-sub.s.
Jul 26 2023, 7:17 AM · Restricted Project, Restricted Project

Jul 25 2023

wangleiat added a reverting change for rG92c06114b2ea: [LoongArch] Support -march=native and -mtune=: rG212d6aa0daa0: Revert "[LoongArch] Support -march=native and -mtune=".
Jul 25 2023, 8:33 AM · Restricted Project, Restricted Project, Restricted Project
wangleiat committed rG212d6aa0daa0: Revert "[LoongArch] Support -march=native and -mtune=" (authored by SixWeining).
Revert "[LoongArch] Support -march=native and -mtune="
Jul 25 2023, 8:33 AM · Restricted Project, Restricted Project, Restricted Project
wangleiat added a reverting change for D155824: [LoongArch] Support -march=native and -mtune=: rG212d6aa0daa0: Revert "[LoongArch] Support -march=native and -mtune=".
Jul 25 2023, 8:32 AM · Restricted Project, Restricted Project, Restricted Project
wangleiat accepted D155824: [LoongArch] Support -march=native and -mtune=.
Jul 25 2023, 6:00 AM · Restricted Project, Restricted Project, Restricted Project

Jul 23 2023

wangleiat updated the diff for D155830: [LoongArch] Add LASX intrinsic support.

Rebase.
Similar to VLDI, the immediate operand of XVLDI is treated as a signed number.

Jul 23 2023, 9:00 PM · Restricted Project, Restricted Project
wangleiat updated the diff for D155829: [LoongArch] Add LSX intrinsic support.

Address @SixWeining's comments.

Jul 23 2023, 8:57 PM · Restricted Project, Restricted Project
wangleiat added inline comments to D155829: [LoongArch] Add LSX intrinsic support.
Jul 23 2023, 8:54 PM · Restricted Project, Restricted Project

Jul 21 2023

wangleiat updated the diff for D155917: [LoongArch] Add definition for LVZ/LBT instructions.

Fixed an error caused by intuition, thank you very much for @xen0n's prompt reminder.

Jul 21 2023, 1:39 AM · Restricted Project, Restricted Project
wangleiat added inline comments to D155917: [LoongArch] Add definition for LVZ/LBT instructions.
Jul 21 2023, 1:21 AM · Restricted Project, Restricted Project
wangleiat updated the diff for D155917: [LoongArch] Add definition for LVZ/LBT instructions.

Just adding some comments.

Jul 21 2023, 1:17 AM · Restricted Project, Restricted Project

Jul 20 2023

wangleiat requested review of D155917: [LoongArch] Add definition for LVZ/LBT instructions.
Jul 20 2023, 11:08 PM · Restricted Project, Restricted Project
wangleiat updated the diff for D155830: [LoongArch] Add LASX intrinsic support.

rebase

Jul 20 2023, 7:31 PM · Restricted Project, Restricted Project
wangleiat updated the diff for D155829: [LoongArch] Add LSX intrinsic support.

Address @xen0n's comments.

Jul 20 2023, 7:31 PM · Restricted Project, Restricted Project
wangleiat added a comment to D155829: [LoongArch] Add LSX intrinsic support.

Thanks.

Jul 20 2023, 7:29 PM · Restricted Project, Restricted Project
wangleiat abandoned D151298: [clang][LoongArch] Fix the calling convention for empty struct in C++ mode.

We have decided to keep it unchanged. Thank you, everyone.

Jul 20 2023, 6:10 AM · Restricted Project, Restricted Project
wangleiat abandoned D151297: [clang][test][LoongArch] Pre-commit test for empty struct in C++ mode.
Jul 20 2023, 6:07 AM · Restricted Project, Restricted Project
wangleiat updated the summary of D155830: [LoongArch] Add LASX intrinsic support.
Jul 20 2023, 5:57 AM · Restricted Project, Restricted Project
wangleiat requested review of D155830: [LoongArch] Add LASX intrinsic support.
Jul 20 2023, 5:54 AM · Restricted Project, Restricted Project
wangleiat requested review of D155829: [LoongArch] Add LSX intrinsic support.
Jul 20 2023, 5:52 AM · Restricted Project, Restricted Project
wangleiat committed rG4a8cc7382c19: [LoongArch] Fix instruction definitions that were incorrectly specified… (authored by wangleiat).
[LoongArch] Fix instruction definitions that were incorrectly specified…
Jul 20 2023, 5:50 AM · Restricted Project, Restricted Project

Jul 18 2023

wangleiat committed rG46aec7bc0947: [LoongArch][NFC] Revise instruction format to match lsx and lasx styles (authored by wangleiat).
[LoongArch][NFC] Revise instruction format to match lsx and lasx styles
Jul 18 2023, 5:59 AM · Restricted Project, Restricted Project

Jul 6 2023

wangleiat committed rG99d74edcf584: [LoongArch][MC] Add testcases for LASX instructions (authored by chenli).
[LoongArch][MC] Add testcases for LASX instructions
Jul 6 2023, 8:23 PM · Restricted Project, Restricted Project
wangleiat committed rG12d2acdf4acc: [LoongArch][MC] Add testcases for LSX instructions (authored by chenli).
[LoongArch][MC] Add testcases for LSX instructions
Jul 6 2023, 8:23 PM · Restricted Project, Restricted Project
wangleiat committed rGf3d18b9dc6f7: [LoongArch] Add definition for LASX instructions (authored by wangleiat).
[LoongArch] Add definition for LASX instructions
Jul 6 2023, 8:23 PM · Restricted Project, Restricted Project
wangleiat committed rG1aa3b64ed278: [LoongArch] Add definition for LSX instructions (authored by wangleiat).
[LoongArch] Add definition for LSX instructions
Jul 6 2023, 8:23 PM · Restricted Project, Restricted Project
wangleiat closed D154326: [LoongArch][MC] Add testcases for LASX instructions.
Jul 6 2023, 8:23 PM · Restricted Project, Restricted Project
wangleiat closed D154197: [LoongArch][MC] Add testcases for LSX instructions.
Jul 6 2023, 8:23 PM · Restricted Project, Restricted Project
wangleiat closed D154195: [LoongArch] Add definition for LASX instructions.
Jul 6 2023, 8:23 PM · Restricted Project, Restricted Project
wangleiat closed D154183: [LoongArch] Add definition for LSX instructions.
Jul 6 2023, 8:22 PM · Restricted Project, Restricted Project

Jul 2 2023

wangleiat updated the diff for D154195: [LoongArch] Add definition for LASX instructions.
  1. Add register definition, and fix the old interface parameters.
  2. Specify instruction properties.
Jul 2 2023, 8:35 PM · Restricted Project, Restricted Project
wangleiat updated the diff for D154183: [LoongArch] Add definition for LSX instructions.

rebase

Jul 2 2023, 8:30 PM · Restricted Project, Restricted Project
wangleiat updated the diff for D154183: [LoongArch] Add definition for LSX instructions.

specify instruction properties.

Jul 2 2023, 8:08 PM · Restricted Project, Restricted Project

Jun 30 2023

wangleiat added inline comments to D154195: [LoongArch] Add definition for LASX instructions.
Jun 30 2023, 3:08 AM · Restricted Project, Restricted Project
wangleiat updated the diff for D154195: [LoongArch] Add definition for LASX instructions.

fix typo

Jun 30 2023, 3:07 AM · Restricted Project, Restricted Project
wangleiat requested review of D154195: [LoongArch] Add definition for LASX instructions.
Jun 30 2023, 2:48 AM · Restricted Project, Restricted Project

Jun 29 2023

wangleiat updated the diff for D154183: [LoongArch] Add definition for LSX instructions.

Address @xen0n's comments.

Jun 29 2023, 10:42 PM · Restricted Project, Restricted Project
wangleiat added inline comments to D154183: [LoongArch] Add definition for LSX instructions.
Jun 29 2023, 10:39 PM · Restricted Project, Restricted Project
wangleiat added a reviewer for D154183: [LoongArch] Add definition for LSX instructions: hev.
Jun 29 2023, 10:15 PM · Restricted Project, Restricted Project
wangleiat updated subscribers of D154183: [LoongArch] Add definition for LSX instructions.
Jun 29 2023, 10:14 PM · Restricted Project, Restricted Project
wangleiat added a comment to D154183: [LoongArch] Add definition for LSX instructions.

There will be separate test patches in the future.

Jun 29 2023, 10:09 PM · Restricted Project, Restricted Project
wangleiat requested review of D154183: [LoongArch] Add definition for LSX instructions.
Jun 29 2023, 10:05 PM · Restricted Project, Restricted Project
wangleiat committed rG2086801a9aac: [LoongArch] Reuse LoongArchRegWithSubRegs class to shorten some code in… (authored by wangleiat).
[LoongArch] Reuse LoongArchRegWithSubRegs class to shorten some code in…
Jun 29 2023, 8:09 PM · Restricted Project, Restricted Project

May 24 2023

wangleiat added a comment to D151298: [clang][LoongArch] Fix the calling convention for empty struct in C++ mode.

If we want to ignore empty structures, it is not enough to only modify psABI, because the current implementations of gcc and clang do not ignore empty structures in all cases. For example:

struct { struct{}; int i; }; // in this case, the empty struct is not ignored.
struct { struct{}; float f; }; // ignored.

This is the same behavior as RISC-V. While attempting to pass a struct through FPRs, the empty field is ignored. But if passing through FPR does not work and it's passed through GPRs, the empty fields are not ignored:

May 24 2023, 2:29 AM · Restricted Project, Restricted Project
wangleiat added a comment to D151298: [clang][LoongArch] Fix the calling convention for empty struct in C++ mode.

I think the paragraph means:

class Empty {};
int test(Empty empty, int a);

Then we should put a into a1, not a0. And we are indeed doing so.

yes. with this patch, a will be passed with a1 register.

May 24 2023, 1:42 AM · Restricted Project, Restricted Project
wangleiat added a comment to D151298: [clang][LoongArch] Fix the calling convention for empty struct in C++ mode.

Blocking this as it's a deliberate decision made in D132285.

Is there any imperative reason we must really pass the empty struct? The C++ standard only treats struct {} as size 1 for the semantics of pointer comparison. While there is no pointers to registers, ignoring it in the register calling convention will make no harm.

And AFAIK it will be an undefined behavior attempting to (mis)use the padding space of/after the empty struct to pass any information.

Our current modifications are closer to the description of Itanium C++ ABI, and we try to keep it consistent with the description of the calling convention under reasonable premise.

Hmm, could you provide a link to the section saying this in the Itanium C++ ABI?

May 24 2023, 1:00 AM · Restricted Project, Restricted Project
wangleiat added a reviewer for D151298: [clang][LoongArch] Fix the calling convention for empty struct in C++ mode: seehearfeel.
May 24 2023, 12:14 AM · Restricted Project, Restricted Project
wangleiat added a comment to D151298: [clang][LoongArch] Fix the calling convention for empty struct in C++ mode.

Blocking this as it's a deliberate decision made in D132285.

Is there any imperative reason we must really pass the empty struct? The C++ standard only treats struct {} as size 1 for the semantics of pointer comparison. While there is no pointers to registers, ignoring it in the register calling convention will make no harm.

And AFAIK it will be an undefined behavior attempting to (mis)use the padding space of/after the empty struct to pass any information.

May 24 2023, 12:12 AM · Restricted Project, Restricted Project

May 23 2023

wangleiat updated the summary of D151298: [clang][LoongArch] Fix the calling convention for empty struct in C++ mode.
May 23 2023, 11:49 PM · Restricted Project, Restricted Project
wangleiat updated the summary of D151297: [clang][test][LoongArch] Pre-commit test for empty struct in C++ mode.
May 23 2023, 11:49 PM · Restricted Project, Restricted Project
wangleiat requested review of D151298: [clang][LoongArch] Fix the calling convention for empty struct in C++ mode.
May 23 2023, 11:47 PM · Restricted Project, Restricted Project
wangleiat requested review of D151297: [clang][test][LoongArch] Pre-commit test for empty struct in C++ mode.
May 23 2023, 11:47 PM · Restricted Project, Restricted Project

May 18 2023

wangleiat committed rG3b78065e3026: [LoongArch] Handle out-fo-range uimm8 operands in LoongArchAsmParser (authored by wangleiat).
[LoongArch] Handle out-fo-range uimm8 operands in LoongArchAsmParser
May 18 2023, 6:39 PM · Restricted Project, Restricted Project

May 7 2023

wangleiat committed rGda44a9b0fa41: [LoongArch] Add some comments to getBPReg. NFC (authored by wangleiat).
[LoongArch] Add some comments to getBPReg. NFC
May 7 2023, 8:42 PM · Restricted Project, Restricted Project

Apr 23 2023

wangleiat committed rGfd9f7b90109b: [lsan][test] Obtaining page size using sysconf(_SC_PAGESIZE) (authored by Ami-zhang).
[lsan][test] Obtaining page size using sysconf(_SC_PAGESIZE)
Apr 23 2023, 11:28 PM · Restricted Project, Restricted Project
wangleiat closed D148407: [lsan][test] Obtaining page size using sysconf(_SC_PAGESIZE).
Apr 23 2023, 11:28 PM · Restricted Project, Restricted Project

Apr 11 2023

wangleiat committed rGa79ddac5e126: [LoongArch] Fix typos in file description. NFC (authored by wangleiat).
[LoongArch] Fix typos in file description. NFC
Apr 11 2023, 1:42 AM · Restricted Project, Restricted Project

Apr 6 2023

wangleiat requested review of D147701: [gn] Move LoongArch target from llvm_all_experimental_targets to llvm_all_stable_targets.
Apr 6 2023, 4:50 AM · Restricted Project, Restricted Project

Apr 4 2023

wangleiat accepted D147371: [libunwind][test] Add test to check for unw_resume().

LGTM

Apr 4 2023, 5:09 AM · Restricted Project, Restricted Project, Restricted Project

Mar 28 2023

wangleiat committed rGcfdcdf05feb2: [tsan] Derive the unmangled SP in longjmp with xor key on loongarch64 (authored by Ami-zhang).
[tsan] Derive the unmangled SP in longjmp with xor key on loongarch64
Mar 28 2023, 1:25 AM · Restricted Project, Restricted Project
wangleiat closed D146716: [tsan] Derive the unmangled SP in longjmp with xor key on loongarch64.
Mar 28 2023, 1:24 AM · Restricted Project, Restricted Project

Mar 27 2023

wangleiat accepted D146716: [tsan] Derive the unmangled SP in longjmp with xor key on loongarch64.

LGTM

Mar 27 2023, 12:09 AM · Restricted Project, Restricted Project

Feb 9 2023

wangleiat committed rGd507c01012de: [LoongArch] Convert test to opaque pointer. NFC (authored by wangleiat).
[LoongArch] Convert test to opaque pointer. NFC
Feb 9 2023, 10:57 PM · Restricted Project, Restricted Project

Feb 1 2023

wangleiat committed rGf2d52c053169: [ExecutionEngine] Enable ExecutionEngine regression tests on LoongArch (authored by wangleiat).
[ExecutionEngine] Enable ExecutionEngine regression tests on LoongArch
Feb 1 2023, 7:16 PM · Restricted Project, Restricted Project
wangleiat closed D142954: [ExecutionEngine] Enable ExecutionEngine regression tests on LoongArch.
Feb 1 2023, 7:16 PM · Restricted Project, Restricted Project
wangleiat committed rGe9d658f72b36: [LoongArch] Implement isUsedByReturnOnly for tailcall more libcalls (authored by wangleiat).
[LoongArch] Implement isUsedByReturnOnly for tailcall more libcalls
Feb 1 2023, 6:33 PM · Restricted Project, Restricted Project
wangleiat closed D142958: [LoongArch] Implement isUsedByReturnOnly for tailcall more libcalls.
Feb 1 2023, 6:33 PM · Restricted Project, Restricted Project
wangleiat committed rGe53f41c39f3e: [LoongArch] Support getHostCPUName and getHostCPUFeatures (authored by wangleiat).
[LoongArch] Support getHostCPUName and getHostCPUFeatures
Feb 1 2023, 12:39 AM · Restricted Project, Restricted Project
wangleiat closed D142950: [LoongArch] Support getHostCPUName and getHostCPUFeatures.
Feb 1 2023, 12:38 AM · Restricted Project, Restricted Project

Jan 31 2023

wangleiat committed rG25ecfbf892ae: [LoongArch] Enable shrink wrapping when optimize the function (authored by wangleiat).
[LoongArch] Enable shrink wrapping when optimize the function
Jan 31 2023, 6:08 PM · Restricted Project, Restricted Project
wangleiat closed D142876: [LoongArch] Enable shrink wrapping when optimize the function.
Jan 31 2023, 6:08 PM · Restricted Project, Restricted Project

Jan 30 2023

wangleiat requested review of D142958: [LoongArch] Implement isUsedByReturnOnly for tailcall more libcalls.
Jan 30 2023, 11:22 PM · Restricted Project, Restricted Project