Page MenuHomePhabricator

wmi (Wei Mi)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 20 2015, 10:57 AM (256 w, 19 h)

Recent Activity

Thu, Jan 16

wmi accepted D70247: [JumpThreading] Thread jumps through two basic blocks.

LGTM.

Thu, Jan 16, 12:08 PM · Restricted Project

Wed, Jan 15

wmi committed rG154cd6de513e: [SampleFDO] Fix invalid branch profile generated by indirect call promotion. (authored by wmi).
[SampleFDO] Fix invalid branch profile generated by indirect call promotion.
Wed, Jan 15, 6:43 PM
wmi closed D72790: [SampleFDO] Fix invalid branch profile generated by indirect call promotion.
Wed, Jan 15, 6:43 PM · Restricted Project
wmi added inline comments to D70247: [JumpThreading] Thread jumps through two basic blocks.
Wed, Jan 15, 11:27 AM · Restricted Project
wmi created D72790: [SampleFDO] Fix invalid branch profile generated by indirect call promotion.
Wed, Jan 15, 10:31 AM · Restricted Project

Tue, Jan 14

wmi accepted D72711: [ThinLTO] Handle variable with twice promoted name (Rust).

LGTM.

Tue, Jan 14, 8:59 AM · Restricted Project

Fri, Jan 10

wmi accepted D72538: [ThinLTO] Add additional ThinLTO pipeline testing with new PM.

LGTM.

Fri, Jan 10, 7:41 PM · Restricted Project, Restricted Project
wmi added a comment to D72538: [ThinLTO] Add additional ThinLTO pipeline testing with new PM.

The additional pipeline testing will catch any future pass change to the pipeline. A related but separate question is do we have a way to check whether there is any other missing pass in thinlto newpm similar as that in D72386?

Fri, Jan 10, 2:53 PM · Restricted Project, Restricted Project

Thu, Jan 9

wmi committed rG21a4710c67a9: [ThinLTO] Pass CodeGenOpts like UnrollLoops/VectorizeLoop/VectorizeSLP down to… (authored by wmi).
[ThinLTO] Pass CodeGenOpts like UnrollLoops/VectorizeLoop/VectorizeSLP down to…
Thu, Jan 9, 9:15 PM
wmi closed D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.
Thu, Jan 9, 9:14 PM · Restricted Project, Restricted Project
wmi added a comment to D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.

Thanks for the review!

Thu, Jan 9, 8:57 PM · Restricted Project, Restricted Project
wmi updated the diff for D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.

Address Teresa's comment.

Thu, Jan 9, 3:06 PM · Restricted Project, Restricted Project
wmi added inline comments to D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.
Thu, Jan 9, 2:28 PM · Restricted Project, Restricted Project
wmi added inline comments to D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.
Thu, Jan 9, 2:09 PM · Restricted Project, Restricted Project
wmi added inline comments to D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.
Thu, Jan 9, 1:13 PM · Restricted Project, Restricted Project
wmi updated the diff for D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.

Enable loop and slp vectorization in O2/O3 (Os for opt as well) in gold plugin, lld, opt and llvm-lto2. Add related tests.

Thu, Jan 9, 1:13 PM · Restricted Project, Restricted Project

Wed, Jan 8

wmi added a comment to D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.

Teresa, do we have existing tests where I can add some check to see if some passes are executed for the lld and gold plugin changes?

Wed, Jan 8, 9:15 AM · Restricted Project, Restricted Project
wmi added a comment to D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.

Thinking through this some more - this patch fixes the distributed ThinLTO backend case, but not the in-process ThinLTO case. For that, both lld and gold plugin will need to set this up. And since they don't have the clang options, they will just need to set to some reasonable default, probably either hardwired on like in the old PM or set based on the CGOptLevel they set from linker options. However, they both default to -O2 unless a special plugin or lld linker option is set, so we'd probably want to enable these passes there at O2+.

Wed, Jan 8, 9:05 AM · Restricted Project, Restricted Project

Tue, Jan 7

wmi updated the diff for D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.

update flag in the test.

Tue, Jan 7, 11:20 PM · Restricted Project, Restricted Project
wmi updated the diff for D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.
Tue, Jan 7, 11:11 PM · Restricted Project, Restricted Project
wmi created D72386: [ThinLTO] pass UnrollLoops/VectorizeLoop/VectorizeSLP in CGOpts down to pass builder in ltobackend.
Tue, Jan 7, 11:11 PM · Restricted Project, Restricted Project
wmi accepted D70247: [JumpThreading] Thread jumps through two basic blocks.

LGTM.

Tue, Jan 7, 10:52 PM · Restricted Project

Mon, Jan 6

wmi added inline comments to D70247: [JumpThreading] Thread jumps through two basic blocks.
Mon, Jan 6, 3:12 PM · Restricted Project

Dec 13 2019

wmi accepted D71485: [profile] Fix a crash when -fprofile-remapping-file= triggers an error.

LGTM.

Dec 13 2019, 11:28 AM · Restricted Project, Restricted Project

Dec 11 2019

wmi accepted D70584: [AutoFDO] Statistic for context sensitive profile guided inlining.
Dec 11 2019, 4:09 PM · Restricted Project

Dec 6 2019

wmi accepted D70750: [AutoFDO] Inline replay for cold/small callees from sample profile loader.

LGTM. Thanks!

Dec 6 2019, 9:07 AM · Restricted Project

Dec 5 2019

wmi added a comment to D70750: [AutoFDO] Inline replay for cold/small callees from sample profile loader.

Did performance test and I saw 0.4% improvement in an internal benchmark. That is a good improvement, thanks for the change!

Dec 5 2019, 9:14 AM · Restricted Project
wmi accepted D70653: [AutoFDO] Properly merge context-sensitive profile of inlinee back to outlined function.

I rerun perf test and I don't see any performance change. Last run I saw very small improvement on latency in a benchmark. This is fine since the benchmark has some fluctuation by itself.

Dec 5 2019, 9:14 AM · Restricted Project

Dec 2 2019

wmi added inline comments to D70653: [AutoFDO] Properly merge context-sensitive profile of inlinee back to outlined function.
Dec 2 2019, 4:02 PM · Restricted Project

Nov 27 2019

wmi added inline comments to D70653: [AutoFDO] Properly merge context-sensitive profile of inlinee back to outlined function.
Nov 27 2019, 10:45 AM · Restricted Project
wmi added a comment to D70653: [AutoFDO] Properly merge context-sensitive profile of inlinee back to outlined function.

I did performance test combing D70653 and D70655, there was ~0.2% latency improvement in a benchmark, so that is good.

Nov 27 2019, 9:41 AM · Restricted Project
wmi accepted D70655: [AutoFDO] Top-down Inlining for specialization with context-sensitive profile.

I did performance test for this change and the result is neutral.

Nov 27 2019, 9:22 AM · Restricted Project

Nov 25 2019

wmi added a comment to D70653: [AutoFDO] Properly merge context-sensitive profile of inlinee back to outlined function.

The change makes sense to me. The only concern is for inline instance getEntrySamples is not precise and sometimes can have a large difference with the actual head count. It will be interesting to see the actual effect. I will test it combined with D70655 on my side.

Nov 25 2019, 12:18 PM · Restricted Project
wmi added a comment to D70655: [AutoFDO] Top-down Inlining for specialization with context-sensitive profile.

That is a good catch. From my understanding it could potentially reduce inlining in some cold places and potentially increase regular inlinling. Do you see how much impact on performance and code size by changing it? I will do some evaluation on my side.

Nov 25 2019, 11:41 AM · Restricted Project
wmi added a comment to D70584: [AutoFDO] Statistic for context sensitive profile guided inlining.

However the reality is most of the inlining actually happens during regular inliner.

Nov 25 2019, 10:16 AM · Restricted Project

Nov 21 2019

wmi accepted D70338: [JumpThreading] Refactor ThreadEdge.

LGTM.

Nov 21 2019, 11:36 AM · Restricted Project

Nov 19 2019

wmi added a comment to D70338: [JumpThreading] Refactor ThreadEdge.

Maybe we can rename current ThreadEdge to TryThreadEdge and let TryThreadEdge call ThreadEdge to do the transformation?

Nov 19 2019, 11:38 AM · Restricted Project

Nov 15 2019

wmi added inline comments to D70247: [JumpThreading] Thread jumps through two basic blocks.
Nov 15 2019, 10:23 AM · Restricted Project

Nov 14 2019

wmi added inline comments to D70247: [JumpThreading] Thread jumps through two basic blocks.
Nov 14 2019, 5:02 PM · Restricted Project

Nov 6 2019

wmi accepted D69861: [JumpThreading] Factor out code to clone a basic block (NFC).

LGTM.

Nov 6 2019, 1:27 PM · Restricted Project

Nov 5 2019

wmi accepted D69736: Keep import function list for inlinee profile update.
Nov 5 2019, 5:53 PM · Restricted Project
wmi added a comment to D69736: Keep import function list for inlinee profile update.

I saw 0.3% improvement in our server benchmark. That is a great improvement!

Nov 5 2019, 5:43 PM · Restricted Project
wmi added inline comments to D69861: [JumpThreading] Factor out code to clone a basic block (NFC).
Nov 5 2019, 2:20 PM · Restricted Project
wmi accepted D69852: [JumpThreading] Factor out code to merge basic blocks (NFC).

LGTM.

Nov 5 2019, 9:51 AM · Restricted Project
wmi accepted D69317: Fixed a profdata file size detection on Windows system. .

Sorry I missed the patch. Thanks for fixing the test!

Nov 5 2019, 9:24 AM · Restricted Project
wmi added a comment to D69852: [JumpThreading] Factor out code to merge basic blocks (NFC).

Sorry, there is a little more refactoring which could be done.

Nov 5 2019, 9:05 AM · Restricted Project
wmi accepted D69852: [JumpThreading] Factor out code to merge basic blocks (NFC).

LGTM.

Nov 5 2019, 8:56 AM · Restricted Project
wmi added a comment to D69736: Keep import function list for inlinee profile update.

I don't have further comment. It LGTM. I am doing some performance test for it and will report back its performance impact on our side (expect to be positive).

Nov 5 2019, 7:42 AM · Restricted Project

Nov 4 2019

wmi added a comment to D69736: Keep import function list for inlinee profile update.

Could you add a testcase to verify that no profile update for inlining in sampleloader pass?

Nov 4 2019, 2:17 PM · Restricted Project
wmi accepted D69811: [JumpThreading] Factor out common code to update the SSA form (NFC).

LGTM.

Nov 4 2019, 10:38 AM · Restricted Project

Nov 3 2019

wmi added a comment to D69736: Keep import function list for inlinee profile update.

Thanks for the patch!

Nov 3 2019, 7:50 PM · Restricted Project

Oct 31 2019

wmi added inline comments to D68898: JumpThreading: enhance JT to handle BB with no successor and address comparison.
Oct 31 2019, 4:53 PM · Restricted Project

Oct 29 2019

wmi added a comment to D68593: [NewPM] Add an SROA pass after loop unroll.
In D68593#1725683, @wmi wrote:

Looks like a very helpful patch. I saw the problem showing up at multiple places when I was looking at a halide testcase and I was wondering what was wrong. I can try it out and see if the patch can fix it.

Oct 29 2019, 12:09 PM · Restricted Project
wmi added a comment to D68593: [NewPM] Add an SROA pass after loop unroll.

Looks like a very helpful patch. I saw the problem showing up at multiple places when I was looking at a halide testcase and I was wondering what was wrong. I can try it out and see if the patch can fix it.

Oct 29 2019, 10:45 AM · Restricted Project

Oct 18 2019

wmi committed rG8c8ec1f6868b: [SampleFDO] Add profile remapping support for profile on-demand loading used by… (authored by wmi).
[SampleFDO] Add profile remapping support for profile on-demand loading used by…
Oct 18 2019, 3:37 PM
wmi closed D68901: [SampleFDO] Add profile remapping support for profile on-demand loading used by ExtBinary format profile.
Oct 18 2019, 3:37 PM · Restricted Project
wmi committed rL375295: [SampleFDO] Add profile remapping support for profile on-demand loading used.
[SampleFDO] Add profile remapping support for profile on-demand loading used
Oct 18 2019, 3:37 PM

Oct 16 2019

wmi added inline comments to D68901: [SampleFDO] Add profile remapping support for profile on-demand loading used by ExtBinary format profile.
Oct 16 2019, 3:36 PM · Restricted Project
wmi updated the diff for D68901: [SampleFDO] Add profile remapping support for profile on-demand loading used by ExtBinary format profile.

Address Wenlei's comment.

Oct 16 2019, 3:36 PM · Restricted Project

Oct 15 2019

wmi updated the diff for D68901: [SampleFDO] Add profile remapping support for profile on-demand loading used by ExtBinary format profile.

Address Wenlei and David's comments.
Change SampleProfileReaderItaniumRemapper from a proxy of SampleProfileReader to a helper object inside of SampleProfileReader, and it is used in two places: one in SampleProfileReader::getSamplesFor for looking up a function sample and one in SampleProfileReaderExtBinary::readFuncProfiles for loading profiles on demand.

Oct 15 2019, 10:36 PM · Restricted Project
wmi added a comment to D68901: [SampleFDO] Add profile remapping support for profile on-demand loading used by ExtBinary format profile.

Thanks Wenlei and David for the reviews.

Oct 15 2019, 11:45 AM · Restricted Project

Oct 14 2019

wmi accepted D68948: [ThinLTO] Fix printing of NoInline function summary flag.

LGTM.

Oct 14 2019, 11:30 AM · Restricted Project

Oct 12 2019

wmi added a comment to D68898: JumpThreading: enhance JT to handle BB with no successor and address comparison.

I change the testcase a little so the terminator won't be ret, but the generated code pattern is the same. Should it be handled as well?

Oct 12 2019, 10:01 PM · Restricted Project

Oct 11 2019

wmi created D68901: [SampleFDO] Add profile remapping support for profile on-demand loading used by ExtBinary format profile.
Oct 11 2019, 5:10 PM · Restricted Project

Oct 9 2019

wmi committed rG09dcfe680570: [SampleFDO] Add indexing for function profiles so they can be loaded on demand… (authored by wmi).
[SampleFDO] Add indexing for function profiles so they can be loaded on demand…
Oct 9 2019, 2:35 PM
wmi closed D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.
Oct 9 2019, 2:35 PM · Restricted Project
wmi committed rL374233: [SampleFDO] Add indexing for function profiles so they can be loaded on demand.
[SampleFDO] Add indexing for function profiles so they can be loaded on demand
Oct 9 2019, 2:35 PM
wmi updated the diff for D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.

Address David's comment.

Oct 9 2019, 11:36 AM · Restricted Project
wmi added inline comments to D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.
Oct 9 2019, 11:27 AM · Restricted Project
wmi updated the diff for D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.

Address David's comment.

Oct 9 2019, 11:08 AM · Restricted Project
wmi added inline comments to D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.
Oct 9 2019, 10:56 AM · Restricted Project
wmi added a comment to D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.

LGTM. Thanks!

Symbol list can be provided to llvm-profdata in a plain text file.

I thought it's more convenient to have PSL auto-populated by the tool that generates AutoFDO profile, or is there any reason for not using auto-generated PSL, and instead providing a plain text file as side input?

Oct 9 2019, 10:56 AM · Restricted Project

Oct 8 2019

wmi updated the diff for D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.

Address Wenlei's comment.

Oct 8 2019, 3:28 PM · Restricted Project
wmi added a comment to D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.

Thanks for making indexing available for extended binary format. We've recently adding indexing to binary format as well in an internal patch, and also observed similar (~30%) build time reduction for some large services.

Oct 8 2019, 3:12 PM · Restricted Project

Oct 7 2019

wmi committed rG283df8cf7428: Fix build errors caused by rL373914. (authored by wmi).
Fix build errors caused by rL373914.
Oct 7 2019, 10:15 PM
wmi committed rL373919: Fix build errors caused by rL373914..
Fix build errors caused by rL373914.
Oct 7 2019, 10:15 PM
wmi committed rGb523790ae1b3: [SampleFDO] Add compression support for any section in ExtBinary profile format (authored by wmi).
[SampleFDO] Add compression support for any section in ExtBinary profile format
Oct 7 2019, 10:14 PM
wmi committed rL373914: [SampleFDO] Add compression support for any section in ExtBinary profile format.
[SampleFDO] Add compression support for any section in ExtBinary profile format
Oct 7 2019, 10:14 PM
wmi closed D68253: [SampleFDO] Add compression support for any section in ExtBinary profile format.
Oct 7 2019, 10:14 PM · Restricted Project
wmi updated subscribers of D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.
Oct 7 2019, 3:13 PM · Restricted Project
wmi created D68601: [SampleFDO] Add indexing for function profiles so they can be loaded on demand in ExtBinary format.
Oct 7 2019, 3:13 PM · Restricted Project
wmi accepted D68440: [llvm-profdata] Minor format fix.

LGTM. Thanks for the fix.

Oct 7 2019, 8:41 AM · Restricted Project
wmi closed D34583: [LSR] Narrow search space by filtering non-optimal formulae with the same ScaledReg and Scale..
Oct 7 2019, 5:50 AM · Restricted Project

Oct 4 2019

wmi updated the diff for D68253: [SampleFDO] Add compression support for any section in ExtBinary profile format.

Address David's comment

Oct 4 2019, 5:17 PM · Restricted Project
wmi added inline comments to D68253: [SampleFDO] Add compression support for any section in ExtBinary profile format.
Oct 4 2019, 5:15 PM · Restricted Project
wmi updated the diff for D68253: [SampleFDO] Add compression support for any section in ExtBinary profile format.

Address David's comment.

Oct 4 2019, 4:10 PM · Restricted Project
wmi added inline comments to D68253: [SampleFDO] Add compression support for any section in ExtBinary profile format.
Oct 4 2019, 4:07 PM · Restricted Project

Sep 30 2019

wmi created D68253: [SampleFDO] Add compression support for any section in ExtBinary profile format.
Sep 30 2019, 4:15 PM · Restricted Project

Sep 27 2019

wmi committed rGf0c4e70e95d9: [SampleFDO] Create a separate flag profile-accurate-for-symsinlist to handle… (authored by wmi).
[SampleFDO] Create a separate flag profile-accurate-for-symsinlist to handle…
Sep 27 2019, 3:40 PM
wmi committed rL373133: [SampleFDO] Create a separate flag profile-accurate-for-symsinlist to handle.
[SampleFDO] Create a separate flag profile-accurate-for-symsinlist to handle
Sep 27 2019, 3:32 PM
wmi closed D68047: [SampleFDO] Create a separate flag ProfileAccurateForProfSymList for handling profile symbol list.
Sep 27 2019, 3:32 PM · Restricted Project
wmi updated the diff for D68047: [SampleFDO] Create a separate flag ProfileAccurateForProfSymList for handling profile symbol list.

Address David's comment.

Sep 27 2019, 1:52 PM · Restricted Project
wmi added inline comments to D68047: [SampleFDO] Create a separate flag ProfileAccurateForProfSymList for handling profile symbol list.
Sep 27 2019, 1:48 PM · Restricted Project
wmi updated the diff for D68047: [SampleFDO] Create a separate flag ProfileAccurateForProfSymList for handling profile symbol list.

Update the flag description of profile-accurate-for-symsinlist.

Sep 27 2019, 10:47 AM · Restricted Project
wmi updated the diff for D68047: [SampleFDO] Create a separate flag ProfileAccurateForProfSymList for handling profile symbol list.

Address David's comment: profile-accurate-for-symsinlist will be overriden by profile-sample-accurate if both flags present. Add test for it.

Sep 27 2019, 10:47 AM · Restricted Project
wmi added inline comments to D68047: [SampleFDO] Create a separate flag ProfileAccurateForProfSymList for handling profile symbol list.
Sep 27 2019, 10:10 AM · Restricted Project

Sep 26 2019

wmi committed rG40d4b53329d5: [LoopInfo] Remove duplicates in ExitBlocks to reduce the compile time of… (authored by wmi).
[LoopInfo] Remove duplicates in ExitBlocks to reduce the compile time of…
Sep 26 2019, 10:44 PM
wmi committed rG9c8efeda5c81: Revert "[LoopInfo] Limit the iterations to check whether a loop has dedicated… (authored by wmi).
Revert "[LoopInfo] Limit the iterations to check whether a loop has dedicated…
Sep 26 2019, 10:44 PM
wmi committed rL373045: [LoopInfo] Remove duplicates in ExitBlocks to reduce the compile time of.
[LoopInfo] Remove duplicates in ExitBlocks to reduce the compile time of
Sep 26 2019, 10:44 PM
wmi closed D68107: [LoopInfo] Remove duplicates in ExitBlocks to reduce the compile time of hasDedicatedExits.
Sep 26 2019, 10:43 PM · Restricted Project