Page MenuHomePhabricator

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

wxiao3 (Wei Xiao)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 17 2019, 12:43 AM (244 w, 19 h)

Recent Activity

Jul 12 2023

wxiao3 accepted D154205: [MachineLICM] Handle subloops.
Jul 12 2023, 6:31 AM · Restricted Project, Restricted Project
wxiao3 added inline comments to D154205: [MachineLICM] Handle subloops.
Jul 12 2023, 12:24 AM · Restricted Project, Restricted Project

May 28 2023

wxiao3 accepted D151417: [lld] Partially revert "Always emit symbol table when dwarf section exists in COFF".
May 28 2023, 6:20 PM · Restricted Project, Restricted Project

May 4 2023

wxiao3 added a comment to D28141: [COFF] Use 32-bit jump table entries in .rdata for Win64.
In D28141#4316637, @rnk wrote:

@rnk do you have plan to bring this back?

As far as I can tell, the issue is currently fixed, see the usage of .section .rdata and .long directives from llc here: https://gcc.godbolt.org/z/1znoroP74

May 4 2023, 2:45 AM · Restricted Project, Restricted Project

Apr 26 2023

wxiao3 added a reviewer for D149235: Always emit symbol table when dwarf section exists in COFF: mstorsjo.
Apr 26 2023, 5:33 AM · Restricted Project, Restricted Project

Feb 28 2023

wxiao3 committed rG3fd533fd33f3: [COFF][X86_64] Put jump table in .rdata for Windows (authored by wxiao3).
[COFF][X86_64] Put jump table in .rdata for Windows
Feb 28 2023, 6:36 PM · Restricted Project, Restricted Project
wxiao3 closed D144701: [COFF][X86_64] Put jump table in .rdata for Windows.
Feb 28 2023, 6:36 PM · Restricted Project, Restricted Project
wxiao3 added a comment to D144701: [COFF][X86_64] Put jump table in .rdata for Windows.

Thanks for the updates!

On second look, I'm a bit undecided and divided whether it's better to have the arch switch, or just keep it as it was (or include aarch64 in the switch too?). I guess it's fine with me either way. (And the aarch64 and arm cases should have their own testcases already, I believe.)

For the testcase, can you include i386 or i686 too, since that's at least covered in the switch?

Feb 28 2023, 5:46 AM · Restricted Project, Restricted Project
wxiao3 retitled D144701: [COFF][X86_64] Put jump table in .rdata for Windows from [COFF][X86] Put jump table in .rdata for Windows to [COFF][X86_64] Put jump table in .rdata for Windows.
Feb 28 2023, 5:41 AM · Restricted Project, Restricted Project
wxiao3 updated the diff for D144701: [COFF][X86_64] Put jump table in .rdata for Windows.

restrict the change only to x86_64

Feb 28 2023, 5:40 AM · Restricted Project, Restricted Project
wxiao3 retitled D144701: [COFF][X86_64] Put jump table in .rdata for Windows from [COFF] Put jump table in .rdata for Windows to [COFF][X86] Put jump table in .rdata for Windows.
Feb 28 2023, 3:26 AM · Restricted Project, Restricted Project
wxiao3 added a comment to D144701: [COFF][X86_64] Put jump table in .rdata for Windows.

Note that this behaviour isn't entirely strictly uniform across all COFF targets. See D57277, where the AArch64 target was changed to move jumptables on COFF to the text section. This change was then later reversed in D113576 when the AArch64/COFF target supported the relevant relocations.

Before this change, COFF on x86_32 and aarch64 put the jumptables in rdata, while x86_64 and arm (use thumbv7 in triples passed to llc) put them in the text section (in the case of arm, the jumptable is emitted inline in the function and not after it). This patch seems to change the output of x86_64, but doesn't affect the others. I think it would be good to clarify this aspect in the commit message and wording. I'm mildly concerned about how it affects other targets when this is universal code for COFF, but at least on a quick test it didn't make any difference for the arm case (the only one where the jump tables would be left in the text section).

The testcase here seems a bit brittle; if I run this testcase with an aarch64-pc-win32 triple, I don't get any jumptable generated at all, since it can mostly be optimized out. See e.g. llvm/test/CodeGen/AArch64/win64-jumptable.ll for a less brittle testcase.

Feb 28 2023, 3:25 AM · Restricted Project, Restricted Project
wxiao3 added a reviewer for D144701: [COFF][X86_64] Put jump table in .rdata for Windows: mstorsjo.
Feb 28 2023, 3:18 AM · Restricted Project, Restricted Project
wxiao3 updated the diff for D144701: [COFF][X86_64] Put jump table in .rdata for Windows.
  1. only affect x86
  2. less brittle testcase
Feb 28 2023, 3:16 AM · Restricted Project, Restricted Project

Feb 27 2023

wxiao3 added inline comments to D144701: [COFF][X86_64] Put jump table in .rdata for Windows.
Feb 27 2023, 6:36 PM · Restricted Project, Restricted Project
wxiao3 added inline comments to D144701: [COFF][X86_64] Put jump table in .rdata for Windows.
Feb 27 2023, 6:24 PM · Restricted Project, Restricted Project

Feb 26 2023

wxiao3 updated the diff for D144701: [COFF][X86_64] Put jump table in .rdata for Windows.

RUN to check the added option

Feb 26 2023, 2:26 AM · Restricted Project, Restricted Project

Feb 23 2023

wxiao3 added reviewers for D144701: [COFF][X86_64] Put jump table in .rdata for Windows: pengfei, rnk, LuoYuanke.
Feb 23 2023, 11:20 PM · Restricted Project, Restricted Project
wxiao3 requested review of D144701: [COFF][X86_64] Put jump table in .rdata for Windows.
Feb 23 2023, 11:18 PM · Restricted Project, Restricted Project

Feb 21 2023

Herald added projects to D28141: [COFF] Use 32-bit jump table entries in .rdata for Win64: Restricted Project, Restricted Project.

@rnk do you have plan to bring this back?

Feb 21 2023, 7:22 PM · Restricted Project, Restricted Project

Nov 3 2022

wxiao3 accepted D137234: [CodeGenPrep] Change ValueToSExts from DeseMap to MapVector.
Nov 3 2022, 7:08 PM · Restricted Project, Restricted Project
wxiao3 added a comment to D137234: [CodeGenPrep] Change ValueToSExts from DeseMap to MapVector.

LGTM.

Nov 3 2022, 7:07 PM · Restricted Project, Restricted Project

Oct 23 2022

wxiao3 added inline comments to D136456: [SelectionDAG] Clamp stack alignment for memset, memmove.
Oct 23 2022, 11:02 PM · Restricted Project, Restricted Project

Apr 22 2022

Herald added a project to D99487: [CodeGen] Port basic block sections from ELF to COFF: Restricted Project.
Apr 22 2022, 7:58 PM · Restricted Project, Restricted Project, Restricted Project

Apr 7 2022

wxiao3 committed rG842d0bf93176: [x86] Improve select lowering for smin(x, 0) & smax(x, 0) (authored by wxiao3).
[x86] Improve select lowering for smin(x, 0) & smax(x, 0)
Apr 7 2022, 12:54 AM · Restricted Project, Restricted Project
wxiao3 closed D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).
Apr 7 2022, 12:53 AM · Restricted Project, Restricted Project

Apr 6 2022

wxiao3 updated the diff for D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).

Address Phoebe's comments.

Apr 6 2022, 8:00 PM · Restricted Project, Restricted Project
wxiao3 updated the diff for D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).

Address Simon's comments.

Apr 6 2022, 7:22 PM · Restricted Project, Restricted Project
wxiao3 updated the summary of D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).
Apr 6 2022, 7:38 AM · Restricted Project, Restricted Project
wxiao3 added inline comments to D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).
Apr 6 2022, 7:37 AM · Restricted Project, Restricted Project
wxiao3 retitled D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0) from [x86] improve select lowering for smin(x, 0) & smax(x, 0) to [x86] Improve select lowering for smin(x, 0) & smax(x, 0).
Apr 6 2022, 7:34 AM · Restricted Project, Restricted Project
wxiao3 updated the diff for D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).

Address Phoebe's comments.

Apr 6 2022, 7:33 AM · Restricted Project, Restricted Project
wxiao3 committed rG6c0e04386657: [X86] Add test for smin(x, 0) & smax(x, 0) (authored by wxiao3).
[X86] Add test for smin(x, 0) & smax(x, 0)
Apr 6 2022, 3:02 AM · Restricted Project, Restricted Project

Apr 5 2022

wxiao3 added inline comments to D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).
Apr 5 2022, 2:28 AM · Restricted Project, Restricted Project
wxiao3 updated the summary of D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).
Apr 5 2022, 1:12 AM · Restricted Project, Restricted Project
wxiao3 updated the diff for D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).

update the comments.

Apr 5 2022, 1:11 AM · Restricted Project, Restricted Project
wxiao3 added reviewers for D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0): pengfei, craig.topper, LuoYuanke.
Apr 5 2022, 1:08 AM · Restricted Project, Restricted Project
wxiao3 requested review of D123109: [x86] Improve select lowering for smin(x, 0) & smax(x, 0).
Apr 5 2022, 1:06 AM · Restricted Project, Restricted Project

Apr 4 2022

wxiao3 committed rGca33d74ca5ce: [X86] Improve x86-partial-reduction to support abs intrinsic (authored by wxiao3).
[X86] Improve x86-partial-reduction to support abs intrinsic
Apr 4 2022, 8:33 PM · Restricted Project, Restricted Project
wxiao3 closed D122777: [X86] Improve x86-partial-reduction to support abs intrinsic.
Apr 4 2022, 8:33 PM · Restricted Project, Restricted Project

Apr 1 2022

wxiao3 updated the diff for D122777: [X86] Improve x86-partial-reduction to support abs intrinsic.

Address comments from Craig.

Apr 1 2022, 3:29 AM · Restricted Project, Restricted Project

Mar 30 2022

wxiao3 added reviewers for D122777: [X86] Improve x86-partial-reduction to support abs intrinsic: craig.topper, pengfei, LuoYuanke.
Mar 30 2022, 7:04 PM · Restricted Project, Restricted Project
wxiao3 requested review of D122777: [X86] Improve x86-partial-reduction to support abs intrinsic.
Mar 30 2022, 7:01 PM · Restricted Project, Restricted Project
wxiao3 committed rG3728eebd7bce: [X86] Add test with abs intrinsic for x86-partial-reduction optimization (authored by wxiao3).
[X86] Add test with abs intrinsic for x86-partial-reduction optimization
Mar 30 2022, 6:59 PM · Restricted Project, Restricted Project

Sep 24 2021

wxiao3 added a comment to D106408: Allow rematerialization of virtual reg uses.

I still consider this a good experiment as it has uncovered couple RA bugs in the process.

Sep 24 2021, 7:02 PM · Restricted Project, Restricted Project
wxiao3 added a comment to D106408: Allow rematerialization of virtual reg uses.

Obviously 0.01 there is a pure guesstimate.

To fix one of my local performance regressions, I need to set it to 0.1 at least.
But tuning the value seems to be meaningless. Because:
Without your patch, isReallyTriviallyReMaterializableGeneric return true means that the VR is definitely ReMaterializable.
With your patch, isReallyTriviallyReMaterializableGeneric return true means that the VR is probably ReMaterializable.
I don't think the change is consistent with this function's orignal design goal.
Moreover, your patch conflicts with our target implementation: X86InstrInfo::isReallyTriviallyReMaterializable (llvm/lib/Target/X86/X86InstrInfo.cpp). E.g., for most LEA instructions, our implementation will return false. While your patch will always return true if LEA is using virtual registers. Your patch makes our target implementation useless anymore.

Sep 24 2021, 7:30 AM · Restricted Project, Restricted Project

Sep 22 2021

wxiao3 added a comment to D106408: Allow rematerialization of virtual reg uses.

There is some internal benchmark performance regression after the patch landed.
The story is as follows:
There is a virtual register: %5 which lives across many basic blocks (some are inside loops).
Before this patch is landed, its weight is: 2.299834e-03 as below:

Sep 22 2021, 12:01 AM · Restricted Project, Restricted Project

Apr 26 2021

wxiao3 added a comment to D94215: [PostRASched] Breaking More CriticalAntiDeps.

The broken antideps number looks good but how about the final impact to runtime performance?
Could you please provide SPEC2017 performance data such as rate (like https://reviews.llvm.org/D85368)?

Apr 26 2021, 7:37 AM · Restricted Project

Apr 8 2021

wxiao3 added inline comments to D97116: Reduce the number of attributes attached to each function.
Apr 8 2021, 7:34 AM · Restricted Project
wxiao3 added inline comments to D97116: Reduce the number of attributes attached to each function.
Apr 8 2021, 2:03 AM · Restricted Project

Mar 11 2021

wxiao3 added a comment to D94215: [PostRASched] Breaking More CriticalAntiDeps.

Can you provide any performance data for SPEC? SPEC2017 is better than SPEC2006.

Mar 11 2021, 2:12 AM · Restricted Project

Jan 6 2021

wxiao3 accepted D93898: [X86] Fix tile register spill issue..

LGTM. But I suggest you waiting for one or two days to see if @qcolombet or others object.

Jan 6 2021, 6:37 PM · Restricted Project

Jan 3 2021

wxiao3 added inline comments to D93898: [X86] Fix tile register spill issue..
Jan 3 2021, 7:20 PM · Restricted Project

Nov 16 2020

wxiao3 added a comment to D87981: [X86] AMX programming model..
Nov 16 2020, 6:50 AM · Restricted Project, Restricted Project
wxiao3 added inline comments to D87981: [X86] AMX programming model..
Nov 16 2020, 6:47 AM · Restricted Project, Restricted Project

Sep 11 2019

wxiao3 added a comment to D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.

@RKSimon I'm busy with other stuff and my colleague: LiuChen3 will help finish the work.

Sep 11 2019, 2:14 AM · Restricted Project
wxiao3 added a reviewer for D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc: LiuChen3.
Sep 11 2019, 2:05 AM · Restricted Project

Jun 18 2019

wxiao3 added a comment to D59744: Fix i386 ABI "__m64" type bug.

Can anyone provide me some small reproducers code for the issue tripped over by Chromium / Skia?

Jun 18 2019, 10:11 PM · Restricted Project, Restricted Project
wxiao3 added a comment to D63473: Support -fclang-abi-compat=8.0 to keep old ABI behavior.

Yes, there is a test to ensure that Darwin defaults to the old behaviour in "test/CodeGen/x86_32-m64.c".

Jun 18 2019, 12:01 AM · Restricted Project
wxiao3 updated the diff for D63473: Support -fclang-abi-compat=8.0 to keep old ABI behavior.
Jun 18 2019, 12:01 AM · Restricted Project

Jun 17 2019

wxiao3 added a comment to D59744: Fix i386 ABI "__m64" type bug.

I have created a patch for you: https://reviews.llvm.org/D63473
Is it ok?

Jun 17 2019, 8:51 PM · Restricted Project, Restricted Project
wxiao3 created D63473: Support -fclang-abi-compat=8.0 to keep old ABI behavior.
Jun 17 2019, 8:51 PM · Restricted Project
wxiao3 added a comment to D59744: Fix i386 ABI "__m64" type bug.

Please make sure all Chromium for 32-bit Linux libraries are following System V ABI (i.e., m64 is passed on mmx register). I suspect that there are some hand written assembly code in your libraries which is not following the ABI.

Jun 17 2019, 6:12 PM · Restricted Project, Restricted Project

Jun 11 2019

wxiao3 added a comment to D59744: Fix i386 ABI "__m64" type bug.

Thanks for the comments!
Updated for landing.

Jun 11 2019, 6:11 PM · Restricted Project, Restricted Project
wxiao3 updated the diff for D59744: Fix i386 ABI "__m64" type bug.
Jun 11 2019, 6:08 PM · Restricted Project, Restricted Project
wxiao3 added a comment to D59744: Fix i386 ABI "__m64" type bug.

Thanks for the suggestions!
I have updated it.

Jun 11 2019, 7:09 AM · Restricted Project, Restricted Project
wxiao3 updated the diff for D59744: Fix i386 ABI "__m64" type bug.
Jun 11 2019, 7:06 AM · Restricted Project, Restricted Project

Jun 6 2019

wxiao3 added a comment to D59744: Fix i386 ABI "__m64" type bug.

Thanks for the suggestions!
I have updated the patch accordingly.

Jun 6 2019, 9:41 PM · Restricted Project, Restricted Project
wxiao3 updated the diff for D59744: Fix i386 ABI "__m64" type bug.
Jun 6 2019, 9:38 PM · Restricted Project, Restricted Project
wxiao3 added a reviewer for D59744: Fix i386 ABI "__m64" type bug: joerg.
Jun 6 2019, 9:38 PM · Restricted Project, Restricted Project

Jun 3 2019

wxiao3 added a comment to D59744: Fix i386 ABI "__m64" type bug.

Consider other Systems (e.g Darwin, PS4 and FreeBSD) don't want to spend any effort dealing with the ramifications of ABI breaks (as discussed in https://reviews.llvm.org/D60748) at present, I only fix the bug for Linux. If other system wants the fix, the only thing needed is to add a flag (like "IsLinuxABI" ) to enable it.

Jun 3 2019, 7:13 AM · Restricted Project, Restricted Project

Jun 1 2019

wxiao3 added a comment to D59744: Fix i386 ABI "__m64" type bug.

Hi all,

Jun 1 2019, 8:07 PM · Restricted Project, Restricted Project
wxiao3 updated the diff for D59744: Fix i386 ABI "__m64" type bug.
Jun 1 2019, 7:54 PM · Restricted Project, Restricted Project
wxiao3 added a reviewer for D59744: Fix i386 ABI "__m64" type bug: krytarowski.
Jun 1 2019, 7:51 PM · Restricted Project, Restricted Project
wxiao3 added a reviewer for D59744: Fix i386 ABI "__m64" type bug: rjmccall.
Jun 1 2019, 7:50 PM · Restricted Project, Restricted Project

May 30 2019

wxiao3 added a comment to D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.

Thanks for the information!
We have reverted the patch and will resubmit it when we have a complete fix.

May 30 2019, 7:40 PM · Restricted Project

May 28 2019

wxiao3 added a comment to D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.

Ok for merge now?

May 28 2019, 1:28 AM · Restricted Project

May 23 2019

wxiao3 added a comment to D61224: Fix i386 stack alignment for parameter type with breakdowns.

No, in most normal operation for x86_32, LLVM does the wrong thing. A simple example to show the ABI bug:

May 23 2019, 7:28 AM · Restricted Project

May 14 2019

wxiao3 added a comment to D61224: Fix i386 stack alignment for parameter type with breakdowns.

Hi all,

May 14 2019, 2:47 AM · Restricted Project

May 13 2019

wxiao3 added a comment to D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.

Yes, the ABI bug will cause SEGV in Linux where a lot of libraries are built by GCC.
I have restricted the fix to Linux only in the latest revision.

May 13 2019, 8:34 PM · Restricted Project
wxiao3 updated the diff for D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.
May 13 2019, 8:28 PM · Restricted Project
wxiao3 added a comment to D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.

Any other comments?

May 13 2019, 3:49 AM · Restricted Project
wxiao3 added inline comments to D59744: Fix i386 ABI "__m64" type bug.
May 13 2019, 3:47 AM · Restricted Project, Restricted Project
wxiao3 updated the diff for D59744: Fix i386 ABI "__m64" type bug.
May 13 2019, 3:38 AM · Restricted Project, Restricted Project
wxiao3 updated the diff for D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.
May 13 2019, 3:38 AM · Restricted Project
wxiao3 updated the diff for D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.
May 13 2019, 3:38 AM · Restricted Project

Apr 27 2019

wxiao3 updated the summary of D61224: Fix i386 stack alignment for parameter type with breakdowns.
Apr 27 2019, 8:24 AM · Restricted Project
wxiao3 created D61224: Fix i386 stack alignment for parameter type with breakdowns.
Apr 27 2019, 8:22 AM · Restricted Project
wxiao3 added inline comments to D59744: Fix i386 ABI "__m64" type bug.
Apr 27 2019, 8:08 AM · Restricted Project, Restricted Project
wxiao3 added a comment to D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.

Ok, I have excluded Darwin and PS4 for the changes.
The fix mainly targets at Linux so that we can compile a project with parts by GCC and parts by LLVM given that they follow the same ABI.

Apr 27 2019, 7:50 AM · Restricted Project
wxiao3 updated the diff for D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.
Apr 27 2019, 7:43 AM · Restricted Project

Apr 17 2019

wxiao3 updated the diff for D59744: Fix i386 ABI "__m64" type bug.
Apr 17 2019, 6:37 PM · Restricted Project, Restricted Project
wxiao3 updated the diff for D59744: Fix i386 ABI "__m64" type bug.
Apr 17 2019, 6:25 PM · Restricted Project, Restricted Project

Apr 15 2019

wxiao3 created D60748: Adds an option "malign-pass-aggregate" to make the alignment of the struct and union parameters compatible with the default gcc.
Apr 15 2019, 7:35 PM · Restricted Project
wxiao3 updated the diff for D59744: Fix i386 ABI "__m64" type bug.
Apr 15 2019, 7:26 PM · Restricted Project, Restricted Project

Apr 14 2019

wxiao3 updated the diff for D59744: Fix i386 ABI "__m64" type bug.
Apr 14 2019, 11:00 PM · Restricted Project, Restricted Project

Apr 3 2019

wxiao3 added a comment to D59744: Fix i386 ABI "__m64" type bug.

Dear reviewers, any comments?

Apr 3 2019, 7:37 PM · Restricted Project, Restricted Project

Mar 24 2019

wxiao3 updated the summary of D59744: Fix i386 ABI "__m64" type bug.
Mar 24 2019, 1:10 AM · Restricted Project, Restricted Project

Mar 23 2019

wxiao3 created D59744: Fix i386 ABI "__m64" type bug.
Mar 23 2019, 9:08 PM · Restricted Project, Restricted Project

Feb 26 2019

wxiao3 added inline comments to D57643: [X86] Fix bug in vectorcall calling convention.
Feb 26 2019, 1:29 AM · Restricted Project