Page MenuHomePhabricator

pengfei (Pengfei Wang)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 12 2018, 5:57 PM (93 w, 6 d)

Recent Activity

Aug 10 2020

pengfei committed rG951252594702: [X86][FPEnv] Teach X86 mask compare intrinsics to respect strict FP semantics. (authored by pengfei).
[X86][FPEnv] Teach X86 mask compare intrinsics to respect strict FP semantics.
Aug 10 2020, 7:29 PM
pengfei closed D85385: [X86][FPEnv] Teach X86 mask compare intrinsics to respect strict FP semantics..
Aug 10 2020, 7:29 PM · Restricted Project, Restricted Project
pengfei added inline comments to D85385: [X86][FPEnv] Teach X86 mask compare intrinsics to respect strict FP semantics..
Aug 10 2020, 6:42 PM · Restricted Project, Restricted Project
pengfei updated the diff for D85385: [X86][FPEnv] Teach X86 mask compare intrinsics to respect strict FP semantics..

Address review comments.

Aug 10 2020, 6:41 PM · Restricted Project, Restricted Project
pengfei added a comment to D85385: [X86][FPEnv] Teach X86 mask compare intrinsics to respect strict FP semantics..

Ping.

Aug 10 2020, 5:19 PM · Restricted Project, Restricted Project

Aug 5 2020

pengfei requested review of D85385: [X86][FPEnv] Teach X86 mask compare intrinsics to respect strict FP semantics..
Aug 5 2020, 5:50 PM · Restricted Project, Restricted Project

Aug 3 2020

pengfei committed rG6bc7ea2d8d86: [X86][AVX512] Fix build fail after D81548 (authored by pengfei).
[X86][AVX512] Fix build fail after D81548
Aug 3 2020, 9:31 PM
pengfei closed D84922: [X86][AVX512] Fix build fail after D81548.
Aug 3 2020, 9:31 PM · Restricted Project

Aug 2 2020

pengfei added inline comments to D84922: [X86][AVX512] Fix build fail after D81548.
Aug 2 2020, 5:47 PM · Restricted Project

Jul 30 2020

pengfei added inline comments to D84922: [X86][AVX512] Fix build fail after D81548.
Jul 30 2020, 6:23 PM · Restricted Project
pengfei updated the summary of D84922: [X86][AVX512] Fix build fail after D81548.
Jul 30 2020, 6:16 PM · Restricted Project
pengfei updated the diff for D84922: [X86][AVX512] Fix build fail after D81548.

Fix a mistake.

Jul 30 2020, 6:14 PM · Restricted Project
pengfei requested review of D84922: [X86][AVX512] Fix build fail after D81548.
Jul 30 2020, 2:10 AM · Restricted Project

Jul 21 2020

pengfei committed rG18581fd2c441: [CFE] Add nomerge function attribute to inline assembly. (authored by pengfei).
[CFE] Add nomerge function attribute to inline assembly.
Jul 21 2020, 5:25 PM
pengfei closed D84225: [CFE] Add nomerge function attribute to inline assembly..
Jul 21 2020, 5:25 PM · Restricted Project
Herald added a project to D84225: [CFE] Add nomerge function attribute to inline assembly.: Restricted Project.
Jul 21 2020, 2:15 AM · Restricted Project

Jul 10 2020

pengfei committed rGe6280925249c: [X86][MMX] Optimize MMX shift intrinsics. (authored by pengfei).
[X86][MMX] Optimize MMX shift intrinsics.
Jul 10 2020, 8:17 PM
pengfei closed D83534: [X86][MMX] Optimize MMX shift intrinsics..
Jul 10 2020, 8:17 PM · Restricted Project

Jul 9 2020

Herald added a project to D83534: [X86][MMX] Optimize MMX shift intrinsics.: Restricted Project.
Jul 9 2020, 11:43 PM · Restricted Project

Jul 8 2020

pengfei added inline comments to D81791: [X86][SSE] Add SimplifyDemandedVectorEltsForTargetShuffle to handle target shuffle variable masks..
Jul 8 2020, 12:42 AM · Restricted Project

Jun 30 2020

pengfei added inline comments to D82705: [X86-64] Support Intel AMX instructions.
Jun 30 2020, 8:07 AM · Restricted Project

Jun 24 2020

pengfei committed rGb2eb1c5793d7: [X86] Fix a typo error. (authored by pengfei).
[X86] Fix a typo error.
Jun 24 2020, 7:34 PM
pengfei closed D82472: [X86] Fix a typo error..
Jun 24 2020, 7:33 PM · Restricted Project
pengfei committed rGbcb75344a598: [X86][NFC] Pre-commit test case for the following patch. (authored by pengfei).
[X86][NFC] Pre-commit test case for the following patch.
Jun 24 2020, 7:02 PM
pengfei updated the diff for D82472: [X86] Fix a typo error..

Add a test case. Thanks Craig.

Jun 24 2020, 7:01 PM · Restricted Project
pengfei created D82472: [X86] Fix a typo error..
Jun 24 2020, 9:09 AM · Restricted Project

Jun 10 2020

pengfei committed rG6eb9eae0100f: [MS] Copy the symbols assigned to the former instruction when memory folding. (authored by pengfei).
[MS] Copy the symbols assigned to the former instruction when memory folding.
Jun 10 2020, 1:03 AM
pengfei closed D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..
Jun 10 2020, 1:03 AM · Restricted Project
pengfei added a comment to D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..

Thanks @craig.topper

Jun 10 2020, 1:03 AM · Restricted Project

Jun 9 2020

pengfei updated the diff for D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..

Rebase.

Jun 9 2020, 11:57 PM · Restricted Project

May 27 2020

pengfei added a comment to D80608: [llvm-mc] Make the suffix matcher more accurate..

Thanks @MaskRay.

May 27 2020, 6:02 PM · Restricted Project

May 26 2020

pengfei committed rG6565b5858444: [X86][llvm-mc] Make the suffix matcher more accurate. (authored by pengfei).
[X86][llvm-mc] Make the suffix matcher more accurate.
May 26 2020, 11:57 PM
pengfei closed D80608: [llvm-mc] Make the suffix matcher more accurate..
May 26 2020, 11:57 PM · Restricted Project
pengfei updated the diff for D80608: [llvm-mc] Make the suffix matcher more accurate..

Address review comments.

May 26 2020, 11:22 PM · Restricted Project
pengfei created D80608: [llvm-mc] Make the suffix matcher more accurate..
May 26 2020, 8:42 PM · Restricted Project

May 18 2020

pengfei updated the diff for D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..

Address review comment.

May 18 2020, 2:38 AM · Restricted Project

May 13 2020

pengfei abandoned D79760: [WinEH64] Fix a crush issue when c++ exception nested in a particular form..

right, I noticed that too and looked into it further..

It turned out that Windows 32-bit runtime expects post-ordering when looking for catch-handler, but sharing the code with 64-bit runtime when looking up EH State during DTor cleaning-up.
Thus, MSVC/X86 today actually fails on Test7 in ehthrow.cxx.

Incorrect Ctor/Dtor ordering is less significant than Catch handling. for now LLVM must be compatible with MSVC.
This also affects the other two targets on Windows; Arm32 & Arm64. I re-submitted a simper and more completed patch (in D79474), including test case for AArch64. will add one for Arm32 later..

May 13 2020, 11:57 PM · Restricted Project
pengfei retitled D78471: [MS] Copy the symbols assigned to the former instruction when memory folding. from [x86/SLH] Pin function address in physical register after it been hardened. to [MS] Copy the symbols assigned to the former instruction when memory folding..
May 13 2020, 8:11 PM · Restricted Project
pengfei added a comment to D79760: [WinEH64] Fix a crush issue when c++ exception nested in a particular form..

@andrew.w.kaylor I tested for below 3 cases, and get the runtime result for them in different compilers.

What I was trying to say is that you should add a new LIT test case that corresponds to the failure in PR42266. But also, I think we need stronger checking of the correlation between the try map and the handler map. Currently the test is looking for a specific order of the states in the try map, but the handler map is using a wild card check -- "CHECK-NEXT: .long "?catch${{[0-9]+}}@?0?try_in_catch@4HA"" We should be verifying somehow that the states in the try map get connected to the correct handler, which involves matching the specific handler. Your change reversed the order of the try map, but appeared not to change the handler map. That's a problem. If the handler map didn't also change, the code would be wrong.

Now that I've seen the patch from @tentzen I am not convinced that there is a required difference between 64-bit and 32-bit. I could be wrong, but it looks like the 64-bit case is different because newer runtimes require it. It isn't clear to me whether the 32-bit runtime will work with the new format.

If D79474 works for the cases you're trying to fix (including the 32-bit case), I think it's a better solution.

May 13 2020, 7:07 PM · Restricted Project
pengfei added a comment to D79760: [WinEH64] Fix a crush issue when c++ exception nested in a particular form..

I meant did you debug into the crash of your test case in https://bugs.llvm.org/show_bug.cgi?id=42266 ?

May 13 2020, 1:34 AM · Restricted Project
pengfei updated the diff for D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..

Copy the symbol only. Thanks @craig.topper 's suggestion and @chandlerc 's interpretation.

May 13 2020, 1:34 AM · Restricted Project

May 12 2020

pengfei added a comment to D79760: [WinEH64] Fix a crush issue when c++ exception nested in a particular form..

Hi, Pengfei,
Did you get to the root of the bug and check the correctness of ctor&dtor ordering on your test cases?
Or you just tried to copy MSVC?

May 12 2020, 11:57 PM · Restricted Project
pengfei added a comment to D79760: [WinEH64] Fix a crush issue when c++ exception nested in a particular form..

Hi, Pengfei,
Is this the same bug as this patch, https://reviews.llvm.org/D79474/new/ , right?

May 12 2020, 9:00 PM · Restricted Project
pengfei added a comment to D79760: [WinEH64] Fix a crush issue when c++ exception nested in a particular form..

@andrew.w.kaylor I tested for below 3 cases, and get the runtime result for them in different compilers.

void ex1() {
  try {
    throw 1;
  } catch (...) {
    try {
      throw 2;
    } catch (...) {
    }
  }
}
void ex2() {
  try {
    try {
      throw 1;
    } catch (...) {
      throw 2;
    }
  } catch (...) {
  }
}
void ex3() {
  try {
    throw 1;
  } catch (...) {
    try {
      try {
        throw 2;
      } catch (...) {
        throw 3;
      }
    } catch (...) {
    }
  }
}


You can see that the layout of try map table of some nested exception is different under 32 and 64 bit MSVC. This patch makes LLVM has the same behavior with MSVC.

May 12 2020, 8:29 PM · Restricted Project
pengfei added a comment to D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..

Is the problem here really that foldMemoryOperand doesn't know to preserve the post instr symbol?

May 12 2020, 6:52 PM · Restricted Project

May 11 2020

pengfei committed rG2e9f1153c5d4: [x86/SLH][NFC] Add a test to produce a failed generation. (authored by pengfei).
[x86/SLH][NFC] Add a test to produce a failed generation.
May 11 2020, 9:04 PM
pengfei updated the diff for D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..

Rebased.

May 11 2020, 9:03 PM · Restricted Project
pengfei added a comment to D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..

Can you pre-commit the test with the current codegen to show the problem this patch fixes?

May 11 2020, 9:03 PM · Restricted Project
pengfei added a comment to D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..

Ping again. This is a bug fix. If no one opposes, I'll submit it to LLVM.

May 11 2020, 7:59 PM · Restricted Project
pengfei created D79760: [WinEH64] Fix a crush issue when c++ exception nested in a particular form..
May 11 2020, 7:28 PM · Restricted Project

Apr 23 2020

pengfei added a comment to D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..

Ping.

Apr 23 2020, 8:38 PM · Restricted Project

Apr 19 2020

pengfei created D78471: [MS] Copy the symbols assigned to the former instruction when memory folding..
Apr 19 2020, 10:25 PM · Restricted Project

Apr 15 2020

pengfei added a comment to D78180: [X86][MC][NFC] Reduce the parameters of functions in X86MCCodeEmitter(Part I).

It's better to add NFC in the title.
The type of TSFlags is uint64_t instead of const uint64_t, is it possible this value been changed during function call?

Apr 15 2020, 2:08 AM · Restricted Project

Mar 29 2020

pengfei added a comment to D76190: CET for Exception Handle.

@pengfei You can strip unneeded Phabricator tags with:

% which arcfilter
arcfilter () {
        git log -1 --pretty=%B | awk '/Reviewers:|Subscribers:/{p=1} /Reviewed By:|Differential Revision:/{p=0} !p && !/^Summary:$/ {sub(/^Summary: /,
"");print}' | git commit --amend -F -
}

Subscribers: and Reviewers: are just annoying. It is also not appropriate to use Patch By: Xiang Zhang (xiangzhangllvm). See https://llvm.org/docs/DeveloperPolicy.html#commit-messages " git commit --amend --author="John Doe <jdoe@llvm.org> to correct the author property"

Mar 29 2020, 6:12 PM · Restricted Project

Mar 17 2020

pengfei committed rG974d649f8eaf: CET for Exception Handle (authored by pengfei).
CET for Exception Handle
Mar 17 2020, 10:41 PM
pengfei closed D76190: CET for Exception Handle.
Mar 17 2020, 10:41 PM · Restricted Project

Mar 3 2020

pengfei added a comment to D75506: [X86] Fix bug: Scalar FMA intrinsics generate wrong result.

Doesn't the modifier {z} clean the upper 64 bits?

Mar 3 2020, 2:09 AM · Restricted Project

Feb 26 2020

pengfei added inline comments to D75224: [SelectionDAG][FPEnv] Take into account SelectionDAG continuous CSE when setting the nofpexcept flag for constrained intrinsics.
Feb 26 2020, 8:04 PM · Restricted Project

Feb 13 2020

pengfei accepted D74552: [X86] Fix bug that mm_mask_cvtsepi64_epi32 generates result without zero the upper 64bit.

LGTM.

Feb 13 2020, 7:30 AM · Restricted Project

Feb 3 2020

pengfei accepted D73864: [X86] FUCOMI/FCOMI instructions should Def FPSW not FPCW..

Agreed, LGTM.

Feb 3 2020, 3:34 AM · Restricted Project

Jan 31 2020

pengfei added inline comments to D73784: [FPEnv][AArch64] Add lowering of f128 STRICT_FSETCC.
Jan 31 2020, 7:12 AM · Restricted Project
pengfei added inline comments to D73784: [FPEnv][AArch64] Add lowering of f128 STRICT_FSETCC.
Jan 31 2020, 6:33 AM · Restricted Project

Jan 29 2020

pengfei added inline comments to D73625: [FPEnv][AArch64] Add lowering and instruction selection for strict conversions.
Jan 29 2020, 6:30 PM · Restricted Project

Jan 28 2020

pengfei committed rGdba8cd5438c3: Fix sphinx build bot failure. NFCI. (authored by pengfei).
Fix sphinx build bot failure. NFCI.
Jan 28 2020, 6:13 AM
pengfei added inline comments to D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..
Jan 28 2020, 6:04 AM · Restricted Project, Restricted Project
pengfei committed rG3239b5034ee9: [FPEnv] Add pragma FP_CONTRACT support under strict FP. (authored by pengfei).
[FPEnv] Add pragma FP_CONTRACT support under strict FP.
Jan 28 2020, 4:50 AM
pengfei closed D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..
Jan 28 2020, 4:50 AM · Restricted Project, Restricted Project
pengfei committed rG3d1f0ce3b9f8: [X86] Add combination for fma and fneg on X86 under strict FP. (authored by pengfei).
[X86] Add combination for fma and fneg on X86 under strict FP.
Jan 28 2020, 4:32 AM
pengfei closed D72824: [X86] Add combination for fma and fneg on X86 under strict FP..
Jan 28 2020, 4:32 AM · Restricted Project

Jan 26 2020

pengfei added inline comments to D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..
Jan 26 2020, 9:19 PM · Restricted Project, Restricted Project
pengfei updated the diff for D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..

Address review comment.

Jan 26 2020, 9:19 PM · Restricted Project, Restricted Project
pengfei updated the diff for D72824: [X86] Add combination for fma and fneg on X86 under strict FP..

Rebase and add vector instructions test.

Jan 26 2020, 8:10 PM · Restricted Project
pengfei committed rG17b8f96d65e4: [FPEnv] Divide macro INSTRUCTION into INSTRUCTION and DAG_INSTRUCTION, and… (authored by pengfei).
[FPEnv] Divide macro INSTRUCTION into INSTRUCTION and DAG_INSTRUCTION, and…
Jan 26 2020, 6:56 PM
pengfei closed D72871: [FPEnv] Divide macro INSTRUCTION into INSTRUCTION and DAG_INSTRUCTION, and macro FUNCTION likewise. NFCI..
Jan 26 2020, 6:56 PM · Restricted Project

Jan 23 2020

pengfei added a comment to D72824: [X86] Add combination for fma and fneg on X86 under strict FP..

Add to isNegatibleForFree/getNegatedExpression as well?

Jan 23 2020, 1:25 AM · Restricted Project

Jan 17 2020

pengfei updated the diff for D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..

Remove unnecessary comment.

Jan 17 2020, 7:09 AM · Restricted Project, Restricted Project
pengfei added inline comments to D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..
Jan 17 2020, 7:09 AM · Restricted Project, Restricted Project
pengfei updated the diff for D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..

Address review comments.

Jan 17 2020, 6:59 AM · Restricted Project, Restricted Project

Jan 16 2020

pengfei retitled D72871: [FPEnv] Divide macro INSTRUCTION into INSTRUCTION and DAG_INSTRUCTION, and macro FUNCTION likewise. NFCI. from [FPEnv] Alternative implementation of constrained fmuladd that avoids fmuladd ISD opcodes to [FPEnv] Divide macro INSTRUCTION into INSTRUCTION and DAG_INSTRUCTION, and macro FUNCTION likewise. NFCI..
Jan 16 2020, 6:53 PM · Restricted Project
pengfei updated the diff for D72871: [FPEnv] Divide macro INSTRUCTION into INSTRUCTION and DAG_INSTRUCTION, and macro FUNCTION likewise. NFCI..

Removed the FP_CONTRACT support code.

Jan 16 2020, 6:53 PM · Restricted Project
pengfei commandeered D72871: [FPEnv] Divide macro INSTRUCTION into INSTRUCTION and DAG_INSTRUCTION, and macro FUNCTION likewise. NFCI..
Jan 16 2020, 6:43 PM · Restricted Project
pengfei updated the diff for D72824: [X86] Add combination for fma and fneg on X86 under strict FP..

Add FMA4 tests. Thanks @RKSimon.

Jan 16 2020, 12:44 AM · Restricted Project

Jan 15 2020

pengfei retitled D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP. from Add pragma FP_CONTRACT support. to [FPEnv] Add pragma FP_CONTRACT support under strict FP..
Jan 15 2020, 10:09 PM · Restricted Project, Restricted Project
pengfei updated the diff for D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..

Address review comment.

Jan 15 2020, 10:05 PM · Restricted Project, Restricted Project
pengfei created D72824: [X86] Add combination for fma and fneg on X86 under strict FP..
Jan 15 2020, 9:56 PM · Restricted Project
pengfei updated the diff for D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..

Address review comments.

Jan 15 2020, 9:10 PM · Restricted Project, Restricted Project
pengfei updated the diff for D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..

Remove dead code.

Jan 15 2020, 7:29 PM · Restricted Project, Restricted Project
pengfei created D72820: [FPEnv] Add pragma FP_CONTRACT support under strict FP..
Jan 15 2020, 7:11 PM · Restricted Project, Restricted Project

Jan 13 2020

pengfei added a comment to D72665: [X86] Break the loop in LowerReturn into 2 loops..

Yeah, it's useful and clear to use a STRICT_FP_EXTEND. Anyway, I think we can also achieve it by getting the function's attribute or propagating the fpexcept to FP_EXTEND.

Jan 13 2020, 7:18 PM · Restricted Project
pengfei added a comment to D72665: [X86] Break the loop in LowerReturn into 2 loops..

Do we really need to distinguish STRICT_FP_EXTEND and FP_EXTEND for a return? Currently the STRICT nodes are used to avoid to be optimized out or reordered. But I think neither occurs for a return.

Jan 13 2020, 6:41 PM · Restricted Project

Jan 10 2020

pengfei added inline comments to D72466: [FPEnv][RFC] Invert sense of MIFlag::FPExcept flag.
Jan 10 2020, 12:00 AM · Restricted Project

Jan 9 2020

pengfei added inline comments to D72466: [FPEnv][RFC] Invert sense of MIFlag::FPExcept flag.
Jan 9 2020, 10:25 PM · Restricted Project
pengfei added inline comments to D72466: [FPEnv][RFC] Invert sense of MIFlag::FPExcept flag.
Jan 9 2020, 6:49 PM · Restricted Project
pengfei added inline comments to D72466: [FPEnv][RFC] Invert sense of MIFlag::FPExcept flag.
Jan 9 2020, 6:40 PM · Restricted Project
pengfei accepted D72477: [TargetLowering][ARM][X86] Change softenSetCCOperands handling of ONE to avoid spurious exceptions for QNANs with strict FP quiet compares.

LGTM.

Jan 9 2020, 4:48 PM · Restricted Project

Jan 7 2020

pengfei committed rG9a621de1ecad: [X86] Adding fp128 support for strict fcmp (authored by pengfei).
[X86] Adding fp128 support for strict fcmp
Jan 7 2020, 9:20 PM
pengfei closed D71897: [X86] Adding fp128 support for strict fcmp.
Jan 7 2020, 9:20 PM · Restricted Project
pengfei updated the diff for D71897: [X86] Adding fp128 support for strict fcmp.

Add Fixme for softenSetCCOperands. We don't want to add extra logic code instead of pushing the libraries to do the right thing.
Address review comment.

Jan 7 2020, 7:32 PM · Restricted Project
pengfei added a comment to D71897: [X86] Adding fp128 support for strict fcmp.
Jan 7 2020, 7:32 PM · Restricted Project

Jan 2 2020

pengfei committed rG60333a531799: [X86] Enable strict FP by default and remove option -disable-strictnode… (authored by pengfei).
[X86] Enable strict FP by default and remove option -disable-strictnode…
Jan 2 2020, 7:03 PM