Page MenuHomePhabricator
Feed Advanced Search

Yesterday

qiucf added inline comments to D74524: [Scheduling] Improve memory ops cluster preparation.
Sun, Feb 16, 7:12 PM · Restricted Project

Thu, Feb 13

qiucf committed rG87c773082a8d: [PowerPC] Exploit VSX rounding instrs for rint (authored by qiucf).
[PowerPC] Exploit VSX rounding instrs for rint
Thu, Feb 13, 5:12 AM
qiucf closed D72685: [PowerPC] Exploit VSX rounding instrs for rint.
Thu, Feb 13, 5:12 AM · Restricted Project
qiucf updated the diff for D63916: [PowerPC] Add exception constraint to FP arithmetic.
  • Rename and combine some cases together.
  • Add some more cases.
Thu, Feb 13, 4:55 AM · Restricted Project
qiucf added a comment to D72685: [PowerPC] Exploit VSX rounding instrs for rint.

@lkail You can compile this simple program and test. I got following results on Linux with GCC (call for rint):

Thu, Feb 13, 1:35 AM · Restricted Project

Wed, Feb 12

qiucf updated the diff for D74524: [Scheduling] Improve memory ops cluster preparation.

Fix build failure

Wed, Feb 12, 10:34 PM · Restricted Project
qiucf updated the summary of D74524: [Scheduling] Improve memory ops cluster preparation.
Wed, Feb 12, 9:55 PM · Restricted Project
qiucf created D74524: [Scheduling] Improve memory ops cluster preparation.
Wed, Feb 12, 9:55 PM · Restricted Project
qiucf added a comment to D72685: [PowerPC] Exploit VSX rounding instrs for rint.

Correct me if I'm wrong. rint(x) returns x if x is an NaN. However, intruction like XSRDPIC may turn SNAN to QNAN. Does it matter?

Wed, Feb 12, 7:40 PM · Restricted Project

Sun, Feb 9

qiucf added a comment to D72685: [PowerPC] Exploit VSX rounding instrs for rint.

Ping...

Sun, Feb 9, 10:25 PM · Restricted Project

Thu, Jan 30

qiucf added a comment to D72685: [PowerPC] Exploit VSX rounding instrs for rint.

Ping...

Thu, Jan 30, 7:45 AM · Restricted Project

Sun, Jan 26

qiucf committed rG59d690850eeb: [NFC] Fix typo in Clang docs (authored by qiucf).
[NFC] Fix typo in Clang docs
Sun, Jan 26, 7:41 PM

Jan 16 2020

qiucf added inline comments to D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
Jan 16 2020, 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)
Jan 16 2020, 2:45 AM · Restricted Project

Jan 14 2020

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.
Jan 14 2020, 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.
Jan 14 2020, 10:53 PM · Restricted Project
qiucf created D72749: [PowerPC] Add exception constraint to FP sqrt, fma, min/max.
Jan 14 2020, 10:53 PM · Restricted Project
qiucf updated the diff for D64193: [PowerPC] Add exception constraint to FP rounding operations.

Rebase and fix test errors

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

Fix a test error

Jan 14 2020, 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.
Jan 14 2020, 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.
Jan 14 2020, 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.
Jan 14 2020, 2:19 AM · Restricted Project
qiucf added inline comments to D71828: [InstCombine] Convert vector store to scalar store if only one element updated.
Jan 14 2020, 2:19 AM · Restricted Project
qiucf created D72685: [PowerPC] Exploit VSX rounding instrs for rint.
Jan 14 2020, 1:33 AM · Restricted Project

Jan 11 2020

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

Jan 10 2020

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

Jan 8 2020

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

Ping..

Jan 8 2020, 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.

Jan 8 2020, 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.
Jan 8 2020, 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.
Jan 8 2020, 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.
Jan 8 2020, 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
Jan 8 2020, 6:16 AM
qiucf closed D72125: [NFC] Move InPQueue into normal argument in releaseNode.
Jan 8 2020, 6:16 AM · Restricted Project

Jan 6 2020

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.

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

Rebase and fix conflicts.

Jan 6 2020, 1:30 AM · Restricted Project

Jan 4 2020

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

Ping..

Jan 4 2020, 8:26 AM · Restricted Project

Jan 2 2020

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

Use explicit template instantiation approach.

Jan 2 2020, 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?

Jan 2 2020, 1:21 AM · Restricted Project
qiucf added inline comments to D72069: [NFC] Add explicit instantiation to releaseNode.
Jan 2 2020, 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
Jan 2 2020, 12:16 AM · Restricted Project
qiucf created D72069: [NFC] Add explicit instantiation to releaseNode.
Jan 2 2020, 12:07 AM · Restricted Project

Jan 1 2020

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.

Jan 1 2020, 11:58 PM

Dec 30 2019

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?

Dec 30 2019, 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.
Dec 30 2019, 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
Dec 30 2019, 12:16 AM
qiucf closed D71886: [NFC] Add test case for load-insert-store pattern in InstCombine.
Dec 30 2019, 12:16 AM · Restricted Project

Dec 29 2019

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

This diff seems out of date, needs rebasing.

Dec 29 2019, 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
Dec 29 2019, 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.

Dec 29 2019, 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.

Dec 29 2019, 7:32 PM · Restricted Project

Dec 27 2019

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

Extend patch with full contexts.

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

Dec 25 2019

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)
Dec 25 2019, 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.
Dec 25 2019, 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.
Dec 25 2019, 11:20 PM · Restricted Project
qiucf created D71886: [NFC] Add test case for load-insert-store pattern in InstCombine.
Dec 25 2019, 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, 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