Page MenuHomePhabricator

qiucf (Qiu Chaofan)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 3 2019, 9:30 PM (46 w, 4 d)

I'm identical to @ecnelises .

Recent Activity

Thu, Jan 16

qiucf added inline comments to D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
Thu, Jan 16, 2:45 AM · Restricted Project
qiucf updated the diff for D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
  • Wrap memory modified check into a single method (which can help other methods)
Thu, Jan 16, 2:45 AM · Restricted Project

Tue, Jan 14

qiucf added a child revision for D64193: [PowerPC] Add exception constraint to FP rounding operations: D72749: [PowerPC] Add exception constraint to FP sqrt, fma, min/max.
Tue, Jan 14, 10:53 PM · Restricted Project
qiucf added a parent revision for D72749: [PowerPC] Add exception constraint to FP sqrt, fma, min/max: D64193: [PowerPC] Add exception constraint to FP rounding operations.
Tue, Jan 14, 10:53 PM · Restricted Project
qiucf created D72749: [PowerPC] Add exception constraint to FP sqrt, fma, min/max.
Tue, Jan 14, 10:53 PM · Restricted Project
qiucf updated the diff for D64193: [PowerPC] Add exception constraint to FP rounding operations.

Rebase and fix test errors

Tue, Jan 14, 10:44 PM · Restricted Project
qiucf updated the diff for D63916: [PowerPC] Add exception constraint to FP arithmetic.

Fix a test error

Tue, Jan 14, 10:43 PM · Restricted Project
qiucf added a parent revision for D64193: [PowerPC] Add exception constraint to FP rounding operations: D63916: [PowerPC] Add exception constraint to FP arithmetic.
Tue, Jan 14, 10:43 PM · Restricted Project
qiucf added a child revision for D63916: [PowerPC] Add exception constraint to FP arithmetic: D64193: [PowerPC] Add exception constraint to FP rounding operations.
Tue, Jan 14, 10:43 PM · Restricted Project
qiucf updated the diff for D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
  • Use dedicated method to check ModRefInfo.
  • Add tests about calls.
Tue, Jan 14, 2:19 AM · Restricted Project
qiucf added inline comments to D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
Tue, Jan 14, 2:19 AM · Restricted Project
qiucf created D72685: [PowerPC] Exploit VSX rounding instrs for rint.
Tue, Jan 14, 1:33 AM · Restricted Project

Sat, Jan 11

qiucf committed rGf33fd43a7c91: [NFC] Refactor memory ops cluster method (authored by qiucf).
[NFC] Refactor memory ops cluster method
Sat, Jan 11, 9:17 PM
qiucf closed D72070: [NFC] Refactor memory ops cluster method.
Sat, Jan 11, 9:17 PM · Restricted Project

Fri, Jan 10

qiucf committed rG4134d706d9bc: [NFC] [PowerPC] Update mi-peephole-splat test (authored by qiucf).
[NFC] [PowerPC] Update mi-peephole-splat test
Fri, Jan 10, 8:00 PM
qiucf committed rG45c4b08d8228: [NFC] [PowerPC] Add isPredicable for basic instrs (authored by qiucf).
[NFC] [PowerPC] Add isPredicable for basic instrs
Fri, Jan 10, 1:00 AM
qiucf closed D71921: [NFC] [PowerPC] Use isPredicable bits in instruction definitions.
Fri, Jan 10, 1:00 AM · Restricted Project

Wed, Jan 8

qiucf added a comment to D72070: [NFC] Refactor memory ops cluster method.

Ping..

Wed, Jan 8, 6:34 PM · Restricted Project
qiucf added a comment to D71828: [InstCombine] Convert vector store to scalar store if only one element updated.

The merge check bot should have some problems in resolving parent-child revision with some already committed. Currently, they have no problem applying into master and tests are passed.

Wed, Jan 8, 7:59 AM · Restricted Project
qiucf removed a child revision for D71886: [NFC] Add test case for load-insert-store pattern in InstCombine: D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
Wed, Jan 8, 7:50 AM · Restricted Project
qiucf removed a parent revision for D71828: [InstCombine] Convert vector store to scalar store if only one element updated: D71886: [NFC] Add test case for load-insert-store pattern in InstCombine.
Wed, Jan 8, 7:50 AM · Restricted Project
qiucf updated the diff for D71828: [InstCombine] Convert vector store to scalar store if only one element updated.

Address some comments.

  • Change some use of auto.
  • Update test cases with comments.
  • Use getModRefInfo.
Wed, Jan 8, 7:03 AM · Restricted Project
qiucf committed rGb2c2fe721972: [NFC] Move InPQueue into arguments of releaseNode (authored by qiucf).
[NFC] Move InPQueue into arguments of releaseNode
Wed, Jan 8, 6:16 AM
qiucf closed D72125: [NFC] Move InPQueue into normal argument in releaseNode.
Wed, Jan 8, 6:16 AM · Restricted Project

Mon, Jan 6

qiucf planned changes to D64193: [PowerPC] Add exception constraint to FP rounding operations.

This patch is too large to review and 'remaining parts' is confusing. It's better to split this one into several patches (round, extend/trunc, sqrt, fma, etc.) and push them into a review stack.

Mon, Jan 6, 1:40 AM · Restricted Project
qiucf updated the diff for D63916: [PowerPC] Add exception constraint to FP arithmetic.

Rebase and fix conflicts.

Mon, Jan 6, 1:30 AM · Restricted Project

Sat, Jan 4

qiucf added a comment to D71828: [InstCombine] Convert vector store to scalar store if only one element updated.

Ping..

Sat, Jan 4, 8:26 AM · Restricted Project

Thu, Jan 2

qiucf created D72125: [NFC] Move InPQueue into normal argument in releaseNode.
Thu, Jan 2, 6:53 PM · Restricted Project
qiucf committed rGbdf4224f9cef: [NFC] Add explicit instantiation to releaseNode (authored by qiucf).
[NFC] Add explicit instantiation to releaseNode
Thu, Jan 2, 5:20 AM
qiucf closed D72069: [NFC] Add explicit instantiation to releaseNode.
Thu, Jan 2, 5:19 AM · Restricted Project
qiucf created D72070: [NFC] Refactor memory ops cluster method.
Thu, Jan 2, 1:30 AM · Restricted Project
qiucf updated the diff for D72069: [NFC] Add explicit instantiation to releaseNode.

Use explicit template instantiation approach.

Thu, Jan 2, 1:21 AM · Restricted Project
qiucf added a comment to D72069: [NFC] Add explicit instantiation to releaseNode.

Can you add more info about compilation errors and compiler version?

Thu, Jan 2, 1:21 AM · Restricted Project
qiucf added inline comments to D72069: [NFC] Add explicit instantiation to releaseNode.
Thu, Jan 2, 1:21 AM · Restricted Project
qiucf added a comment to D65506: [MachineScheduler] improve reuse of 'releaseNode'method.

Hi,

bad luck, got a build failure.
Link to the report: http://lab [.] llvm [.] org:8011/builders/clang-ppc64be-linux-lnt/builds/33875

Build Reason: scheduler
Build Source Stamp: [branch master] f9f78cf6ac73d9148be9b626f418bf6770e512f6
Blamelist: Lorenzo Casalino <lorenzo.casalino93@gmail.com>

BUILD FAILED: failed test-suite
Thu, Jan 2, 12:16 AM · Restricted Project
qiucf created D72069: [NFC] Add explicit instantiation to releaseNode.
Thu, Jan 2, 12:07 AM · Restricted Project

Wed, Jan 1

qiucf added a comment to rGf9f78cf6ac73: [MachineScheduler] improve reuse of 'releaseNode'method.

This causes build failure (using GCC 8.2.1), complaining undefined reference to releaseNode, since this patch splits declaration and definition of the template method.

Wed, Jan 1, 11:58 PM

Mon, Dec 30

qiucf added a comment to D71921: [NFC] [PowerPC] Use isPredicable bits in instruction definitions.

I checked all references to isPredicable in codebase:

  • Instr doc generation uses the bit (this is non-functional)
  • CodeGen tablegen itself uses it
  • Both TargetInstrInfo::isUnpredicatedTerminator and TargetInstrInfo::PredicateInstruction references the method, but PPC overrides them and doesn't use it.
  • MachineInstr::findFirstPredOperandIdx references it, but only ARM and AMDGPU invokes it
  • Implicit null check and machine sink have referenced it. However, this patch won't touch instrs may load or store, so result of expression would never change
  • Other references are for other platforms

So, I assume you are saying this is *NFC* for PowerPC, right?

Mon, Dec 30, 7:18 PM · Restricted Project
qiucf retitled D71921: [NFC] [PowerPC] Use isPredicable bits in instruction definitions from [PowerPC] Use isPredicable bits in instruction definitions to [NFC] [PowerPC] Use isPredicable bits in instruction definitions.
Mon, Dec 30, 7:18 PM · Restricted Project
qiucf committed rG65661908cb66: [NFC] Add test for load-insert-store pattern (authored by qiucf).
[NFC] Add test for load-insert-store pattern
Mon, Dec 30, 12:16 AM
qiucf closed D71886: [NFC] Add test case for load-insert-store pattern in InstCombine.
Mon, Dec 30, 12:16 AM · Restricted Project

Sun, Dec 29

qiucf added a comment to D69949: [PowerPC] Legalize rounding nodes.

This diff seems out of date, needs rebasing.

Sun, Dec 29, 11:57 PM · Restricted Project
qiucf updated the diff for D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
  • Create inbounds store
  • Strip casted pointer before comparison
  • Make sure load and store belong to the same BB
  • Keep nontemporal metadata of store
Sun, Dec 29, 11:30 PM · Restricted Project
qiucf updated the diff for D71886: [NFC] Add test case for load-insert-store pattern in InstCombine.

Update test case to reflect new points in main patch.

Sun, Dec 29, 11:12 PM · Restricted Project
qiucf added a comment to D71921: [NFC] [PowerPC] Use isPredicable bits in instruction definitions.

You need to revisit the place that use the isPredicable bit of the MI, which might cause functionality change.

Sun, Dec 29, 7:32 PM · Restricted Project

Fri, Dec 27

qiucf updated the diff for D71921: [NFC] [PowerPC] Use isPredicable bits in instruction definitions.

Extend patch with full contexts.

Fri, Dec 27, 1:38 AM · Restricted Project
qiucf created D71921: [NFC] [PowerPC] Use isPredicable bits in instruction definitions.
Fri, Dec 27, 1:28 AM · Restricted Project

Wed, Dec 25

qiucf updated the diff for D71828: [InstCombine] Convert vector store to scalar store if only one element updated.

Addressed comments:

  • Add check for address of load and store.
  • Add check for any memory write instructions between load and store.
  • Add more test cases for cases above. (Thanks to spatel)
Wed, Dec 25, 11:20 PM · Restricted Project
qiucf added a child revision for D71886: [NFC] Add test case for load-insert-store pattern in InstCombine: D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
Wed, Dec 25, 11:20 PM · Restricted Project
qiucf added a parent revision for D71828: [InstCombine] Convert vector store to scalar store if only one element updated: D71886: [NFC] Add test case for load-insert-store pattern in InstCombine.
Wed, Dec 25, 11:20 PM · Restricted Project
qiucf created D71886: [NFC] Add test case for load-insert-store pattern in InstCombine.
Wed, Dec 25, 11:11 PM · Restricted Project

Dec 23 2019

qiucf updated the diff for D71828: [InstCombine] Convert vector store to scalar store if only one element updated.

Update test using auto-genearate tool.

Dec 23 2019, 12:52 AM · Restricted Project
qiucf created D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
Dec 23 2019, 12:25 AM · Restricted Project
qiucf abandoned D70223: [DAGCombine] Split vector load-update-store into single element stores.

https://reviews.llvm.org/D71828 is created for simpler logic at InstCombine.

Dec 23 2019, 12:25 AM · Restricted Project

Dec 12 2019

qiucf added a comment to D71138: [PowerPC] Fix %llvm.ppc.altivec.vc* lowering.
In D71138#1782976, @Jim wrote:

Link http://llvm.org/44239 is not available.

Dec 12 2019, 9:43 PM · Restricted Project
qiucf updated the summary of D71138: [PowerPC] Fix %llvm.ppc.altivec.vc* lowering.
Dec 12 2019, 9:43 PM · Restricted Project

Dec 4 2019

qiucf added inline comments to D70651: [Power8] Add the MacroFusion support for Power8 .
Dec 4 2019, 7:38 PM · Restricted Project
qiucf planned changes to D70223: [DAGCombine] Split vector load-update-store into single element stores.

Thanks for comments and explanation from everyone. I think there're two key issues to clarify and solve about this revision:

Dec 4 2019, 8:18 AM · Restricted Project

Dec 3 2019

qiucf closed D70941: [UpdateTestChecks] Fix issue on handling backslashes of RUN lines..

Sorry I didn't see this revision. I commited the same change in rGc246d6e536c7112019cba6cfc764daeb9088ef29

Dec 3 2019, 12:36 AM · Restricted Project
qiucf created D70941: [UpdateTestChecks] Fix issue on handling backslashes of RUN lines..
Dec 3 2019, 12:06 AM · Restricted Project

Nov 28 2019

qiucf updated the diff for D70223: [DAGCombine] Split vector load-update-store into single element stores.

Address some comments from the community:

Nov 28 2019, 2:18 AM · Restricted Project

Nov 27 2019

qiucf abandoned D70373: [NFC] [PowerPC] Add volatile flag to a swap optimization test.

Will abandon this revision and add them back to D70223 for easier discussion.

Nov 27 2019, 2:49 AM · Restricted Project

Nov 25 2019

qiucf added a comment to D70223: [DAGCombine] Split vector load-update-store into single element stores.

It looks like this is missing some checks on the load. The code needs to check that the load and store target the same address, and that there aren't any operations between the load and the store that could modify the memory.

The profitability check probably needs to weigh the cost of the memory operations a little more carefully in cases where the total number of memory operations increases.

I'm a little worried there could be a performance penalty on certain CPUs if the vector value is loaded soon afterwards, due to the partial overlap. Depends on details of the specific CPU, though, and maybe it's rare enough that it doesn't matter.

Nov 25 2019, 10:43 PM · Restricted Project

Nov 19 2019

qiucf added a comment to D70373: [NFC] [PowerPC] Add volatile flag to a swap optimization test.

My concern is store and store volatile are so different in semantics that it might break original test intention.

Nov 19 2019, 9:38 PM · Restricted Project

Nov 17 2019

qiucf updated the diff for D70223: [DAGCombine] Split vector load-update-store into single element stores.

Remove test case change to swaps-le-5 and swaps-le-6 since they're moved to a single differential D70373.

Nov 17 2019, 11:09 PM · Restricted Project
qiucf retitled D70373: [NFC] [PowerPC] Add volatile flag to a swap optimization test from [NFC] [PowerPC] Add volatile flag to a swap optimization test. to [NFC] [PowerPC] Add volatile flag to a swap optimization test.
Nov 17 2019, 10:51 PM · Restricted Project
qiucf added a parent revision for D70223: [DAGCombine] Split vector load-update-store into single element stores: D70373: [NFC] [PowerPC] Add volatile flag to a swap optimization test.
Nov 17 2019, 10:43 PM · Restricted Project
qiucf added a child revision for D70373: [NFC] [PowerPC] Add volatile flag to a swap optimization test: D70223: [DAGCombine] Split vector load-update-store into single element stores.
Nov 17 2019, 10:43 PM · Restricted Project
qiucf created D70373: [NFC] [PowerPC] Add volatile flag to a swap optimization test.
Nov 17 2019, 10:42 PM · Restricted Project

Nov 15 2019

qiucf updated the diff for D70223: [DAGCombine] Split vector load-update-store into single element stores.
  • Add regression test.
  • Check legality before doing costy operations.
Nov 15 2019, 1:38 AM · Restricted Project

Nov 14 2019

qiucf added a reviewer for D70223: [DAGCombine] Split vector load-update-store into single element stores: fhahn.
Nov 14 2019, 12:05 AM · Restricted Project

Nov 13 2019

qiucf created D70223: [DAGCombine] Split vector load-update-store into single element stores.
Nov 13 2019, 11:20 PM · Restricted Project

Nov 10 2019

qiucf added a comment to D69998: [MacroFusion] Create the missing artificial edges if there are more than 2 SU fused..
Nov 10 2019, 7:29 PM · Restricted Project

Oct 15 2019

qiucf added inline comments to D68035: [PowerPC] Extend custom lower of vector truncate to handle wider input.
Oct 15 2019, 1:58 AM · Restricted Project

Oct 11 2019

qiucf commandeered D64193: [PowerPC] Add exception constraint to FP rounding operations.
Oct 11 2019, 7:27 PM · Restricted Project
qiucf commandeered D62565: [PowerPC] Exploiting to use mtvsrdd instruction when save called-saved GPR register to VSR registers.
Oct 11 2019, 7:27 PM · Restricted Project
qiucf commandeered D63916: [PowerPC] Add exception constraint to FP arithmetic.
Oct 11 2019, 7:27 PM · Restricted Project

Sep 12 2019

qiucf committed rGb7fb5d0f6f2a: [DAGCombiner] Improve division estimation of floating points. (authored by qiucf).
[DAGCombiner] Improve division estimation of floating points.
Sep 12 2019, 12:53 AM

Sep 9 2019

qiucf updated the diff for D66050: Improve division estimation of floating points..

Remove unexpected changed file caused by newline characters.

Sep 9 2019, 9:08 PM · Restricted Project
qiucf updated the diff for D66050: Improve division estimation of floating points..

Upload patch with full context.

Sep 9 2019, 8:05 PM · Restricted Project
qiucf updated the diff for D66050: Improve division estimation of floating points..

Update patch to fix check regressions from recent commits.

Sep 9 2019, 1:21 AM · Restricted Project

Sep 5 2019

qiucf added a comment to D66050: Improve division estimation of floating points..

I updated a test for testing this new way of division estimations. It's posted at https://github.com/ecnelises/fp-division-test/blob/master/algorithm_test.c so people can do test by their own. Here are my accuracy results:

Sep 5 2019, 1:02 AM · Restricted Project

Sep 3 2019

qiucf added a comment to D66050: Improve division estimation of floating points..

I think these two points weren't addressed.
I'd like to see at least some publicly-stated numbers on accuracy,
just so we all know this is going in the right direction for all inputs.

Changing my 'accepted' until this is answered.

The test at:
https://github.com/ecnelises/fp-division-test/
...seems to do a small random sampling.

The original transform was tested on x86 using brute force for all possible floats (1.0f/x) and is attached here:
https://bugs.llvm.org/show_bug.cgi?id=21385

I'm not sure how to prove this, but by distributing the multiplication into the last step of the estimate, I think we are always trading better accuracy around the numerator value with potentially overflowing to infinity for extremely different numerator/denominator. That's a good trade-off IMO and within the loosely-defined behavior enabled by 'arcp' in LLVM and '-mrecip' with Clang.

Sep 3 2019, 12:10 AM · Restricted Project

Sep 2 2019

qiucf added a comment to rL370071: [DAGCombiner] cancel fnegs from multiplied operands of FMA.

Thanks!

Sep 2 2019, 12:18 AM
qiucf added inline comments to D66050: Improve division estimation of floating points..
Sep 2 2019, 12:15 AM · Restricted Project
qiucf updated the diff for D66050: Improve division estimation of floating points..

Update test to reflect changes introduced in rL370071.

Sep 2 2019, 12:15 AM · Restricted Project

Aug 27 2019

BlackAngel35 awarded D66050: Improve division estimation of floating points. a Y So Serious token.
Aug 27 2019, 2:36 PM · Restricted Project

Aug 26 2019

qiucf updated the diff for D66050: Improve division estimation of floating points..

Fix typo and rebase.

Aug 26 2019, 6:22 AM · Restricted Project
qiucf added inline comments to D66050: Improve division estimation of floating points..
Aug 26 2019, 6:17 AM · Restricted Project

Aug 22 2019

qiucf added a comment to D66050: Improve division estimation of floating points..

I posted a simple test for fp division on GitHub.
This patch helps on the accuracy especially when compared with GCC. :)
@nemanjai @lebedev.ri

Aug 22 2019, 3:02 AM · Restricted Project

Aug 18 2019

qiucf updated the diff for D66050: Improve division estimation of floating points..

Rebase to fix regression.

Aug 18 2019, 9:51 AM · Restricted Project

Aug 16 2019

qiucf updated the diff for D66050: Improve division estimation of floating points..

Fix broken LIT tests.

Aug 16 2019, 2:11 AM · Restricted Project

Aug 14 2019

qiucf updated the diff for D66050: Improve division estimation of floating points..

Update patch format.

Aug 14 2019, 1:40 AM · Restricted Project
qiucf updated the summary of D66050: Improve division estimation of floating points..
Aug 14 2019, 1:33 AM · Restricted Project
qiucf added a comment to D66050: Improve division estimation of floating points..
  1. The patch needs full context to be reviewable
  2. The formatting needs to be fixed up (some lines too long, etc.)
  3. We need testing (I imagine this makes a bunch of LIT tests fail which need to be updated)
Aug 14 2019, 1:30 AM · Restricted Project
qiucf added a comment to D66050: Improve division estimation of floating points..

Missing test coverage; performance/precision overview - how much of performance do we loose for how much extra precision, comparison with native division?

Aug 14 2019, 1:19 AM · Restricted Project

Aug 13 2019

qiucf committed rG4fb99a3330e9: [PowerPC] Fix ICE when truncating some vectors (authored by qiucf).
[PowerPC] Fix ICE when truncating some vectors
Aug 13 2019, 12:54 AM

Aug 10 2019

qiucf created D66050: Improve division estimation of floating points..
Aug 10 2019, 3:41 AM · Restricted Project

Aug 9 2019

qiucf added inline comments to D65261: [PowerPC] Fix ICE when truncating to vector with odd-size elements..
Aug 9 2019, 12:14 AM · Restricted Project
qiucf added a comment to D65261: [PowerPC] Fix ICE when truncating to vector with odd-size elements..

pr25080.ll

Did you write a wrong PR number?

Aug 9 2019, 12:05 AM · Restricted Project