Page MenuHomePhabricator

hoyFB (Hongtao Yu)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 7 2020, 1:31 PM (15 w, 6 d)

Recent Activity

Today

hoyFB added a comment to D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Can you beef up the testing? I.e. ensure that the save temps output files for just the specified module get created. Also please add a test to make sure this interacts well with distributed thinlto build options, i.e. -thinlto-index-only (e.g. that it creates the expected output files just for the specified module).

Not sure if you saw this comment from my earlier reply - please add additional testing as suggested above.

Thu, May 28, 10:23 AM · Restricted Project
hoyFB added a comment to D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Addressed feedbacks.

Thu, May 28, 9:50 AM · Restricted Project
hoyFB updated the diff for D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Updating D80406: [LLD][ThinLTO] A switch to allow compilation of only one module.

Thu, May 28, 9:50 AM · Restricted Project

Yesterday

hoyFB updated the diff for D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Updating D80406: [LLD][ThinLTO] A switch to allow compilation of only one module.

Wed, May 27, 12:29 PM · Restricted Project
hoyFB added inline comments to D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..
Wed, May 27, 12:29 PM · Restricted Project
hoyFB added a comment to D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Address feedbacks.

Wed, May 27, 11:22 AM · Restricted Project
hoyFB updated the diff for D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Updating D80406: [LLD][ThinLTO] A switch to allow compilation of only one module.

Wed, May 27, 11:22 AM · Restricted Project
hoyFB updated the diff for D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Updating D80406: [LLD][ThinLTO] A switch to allow compilation of only one module.

Wed, May 27, 9:11 AM · Restricted Project
hoyFB added a comment to D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Fixed clang-tidy warnings.

Wed, May 27, 9:11 AM · Restricted Project

Tue, May 26

hoyFB added inline comments to D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..
Tue, May 26, 9:11 AM · Restricted Project
hoyFB updated the diff for D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Updating D80406: [LLD][ThinLTO] A switch to allow compilation of only one module.

Tue, May 26, 9:11 AM · Restricted Project

Thu, May 21

hoyFB updated the diff for D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..

Updating D80406: [LLD][ThinLTO] A switch to allow compilation of only one module.

Thu, May 21, 2:38 PM · Restricted Project
hoyFB added reviewers for D80406: [LLD][ThinLTO] A switch to allow compilation of only one module.: tejohnson, wenlei.
Thu, May 21, 2:38 PM · Restricted Project
hoyFB updated the summary of D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..
Thu, May 21, 2:38 PM · Restricted Project
hoyFB created D80406: [LLD][ThinLTO] A switch to allow compilation of only one module..
Thu, May 21, 2:38 PM · Restricted Project

Tue, May 19

hoyFB added inline comments to D79959: [SampleFDO] Add use-sample-profile function attribute .
Tue, May 19, 10:30 PM · Restricted Project

Fri, May 15

hoyFB committed rG90af55d8a972: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members (authored by hoyFB).
[LLD][ELF] Use offset in thin archives to disambiguate thinLTO members
Fri, May 15, 12:32 PM
hoyFB closed D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members.
Fri, May 15, 12:31 PM · Restricted Project

Wed, May 13

hoyFB updated the diff for D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members.

Updating D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members

Wed, May 13, 4:24 PM · Restricted Project
hoyFB added inline comments to D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members.
Wed, May 13, 4:24 PM · Restricted Project
hoyFB updated the diff for D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members.

Updating D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members

Wed, May 13, 12:31 PM · Restricted Project
hoyFB updated the diff for D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members.

Updating D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members

Wed, May 13, 11:25 AM · Restricted Project
hoyFB added inline comments to D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members.
Wed, May 13, 11:25 AM · Restricted Project
hoyFB retitled D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members from [LLD][ELF] Use offset in thin-archive to disambiguate thinLTO members to [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members.
Wed, May 13, 9:45 AM · Restricted Project
hoyFB created D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members.
Wed, May 13, 9:44 AM · Restricted Project
hoyFB updated the summary of D79880: [LLD][ELF] Use offset in thin archives to disambiguate thinLTO members.
Wed, May 13, 9:44 AM · Restricted Project

Mon, May 11

hoyFB committed rG47c1f2741fe7: Properly add out-of-module functions to the import list (authored by hoyFB).
Properly add out-of-module functions to the import list
Mon, May 11, 10:12 AM
hoyFB closed D79379: Properly add out-of-module functions to the import list.
Mon, May 11, 10:12 AM · Restricted Project

Wed, May 6

hoyFB accepted D79379: Properly add out-of-module functions to the import list.

LGTM.

Wed, May 6, 6:12 PM · Restricted Project
hoyFB added inline comments to D79379: Properly add out-of-module functions to the import list.
Wed, May 6, 9:41 AM · Restricted Project

Tue, May 5

hoyFB added inline comments to D79379: Properly add out-of-module functions to the import list.
Tue, May 5, 11:57 PM · Restricted Project

Sun, May 3

hoyFB committed rG911e06f5eba6: [ICP] Handling must tail calls in indirect call promotion (authored by hoyFB).
[ICP] Handling must tail calls in indirect call promotion
Sun, May 3, 11:09 AM
hoyFB closed D79258: [ICP] Handling must tail calls in indirect call promotion.
Sun, May 3, 11:09 AM · Restricted Project
hoyFB retitled D79258: [ICP] Handling must tail calls in indirect call promotion from [AutoFDO] Handling must tail calls in indirect call promotion to [ICP] Handling must tail calls in indirect call promotion.
Sun, May 3, 10:37 AM · Restricted Project

Sat, May 2

hoyFB added a comment to D79258: [ICP] Handling must tail calls in indirect call promotion.

Forgot to mention earlier - this is not unique to AutoFDO, so you may want to change the title.

Sat, May 2, 9:43 PM · Restricted Project
hoyFB added a comment to D79258: [ICP] Handling must tail calls in indirect call promotion.

Can the code be refactored such that the splitting and cloning part of the code are mostly shared?

Sat, May 2, 9:43 PM · Restricted Project

Fri, May 1

hoyFB added reviewers for D79258: [ICP] Handling must tail calls in indirect call promotion: wenlei, davidxl.
Fri, May 1, 5:11 PM · Restricted Project
hoyFB updated the summary of D79258: [ICP] Handling must tail calls in indirect call promotion.
Fri, May 1, 5:11 PM · Restricted Project
hoyFB created D79258: [ICP] Handling must tail calls in indirect call promotion.
Fri, May 1, 5:11 PM · Restricted Project
hoyFB updated the summary of D79258: [ICP] Handling must tail calls in indirect call promotion.
Fri, May 1, 5:11 PM · Restricted Project

Apr 27 2020

hoyFB added a comment to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

@MaskRay @grimar @tejohnson Thank you all for your great code reviews! I'm going to close this.

Delete unnecessary Phabricator tags with:

arcfilter () {
        arc amend
        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 -
}
Apr 27 2020, 12:22 PM · Restricted Project
hoyFB committed rG964ef8eecc98: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm (authored by hoyFB).
[lld] Support --lto-emit-asm and --plugin-opt=emit-asm
Apr 27 2020, 11:19 AM
hoyFB closed D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 27 2020, 11:18 AM · Restricted Project
hoyFB added a comment to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

@MaskRay @grimar @tejohnson Thank you all for your great code reviews! I'm going to close this.

Apr 27 2020, 10:43 AM · Restricted Project

Apr 26 2020

hoyFB committed rG93efe25ab386: [ViewCFG] Allow printing edge weights in debuggers (authored by hoyFB).
[ViewCFG] Allow printing edge weights in debuggers
Apr 26 2020, 1:48 PM
hoyFB closed D77978: [ViewCFG] Allow printing edge weights in debuggers.
Apr 26 2020, 1:48 PM · Restricted Project
hoyFB updated the diff for D77978: [ViewCFG] Allow printing edge weights in debuggers.

Updating D77978: [ViewCFG] Allow printing edge weights in debuggers

Apr 26 2020, 12:12 PM · Restricted Project
hoyFB added a comment to D77978: [ViewCFG] Allow printing edge weights in debuggers.

Rebased and capitalized function parameter names.

Apr 26 2020, 12:12 PM · Restricted Project

Apr 24 2020

hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm

Apr 24 2020, 4:48 PM · Restricted Project
hoyFB added a comment to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

@hoyFB LLVM is very loose by giving commit access to everyone, but we are expecting people to act in good faith. Your initial action (adding a colleague (with all due respect) who has no contribution to lld yet) and your word I'm planning to land this shortly made me very concerned that you wanted to bypass the usual review process. (I would not have overreacted if I had seen some lld contribution from you)

Apr 24 2020, 4:48 PM · Restricted Project
hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm

Apr 24 2020, 4:48 PM · Restricted Project

Apr 21 2020

hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm

Apr 21 2020, 3:11 PM · Restricted Project
hoyFB updated the summary of D77978: [ViewCFG] Allow printing edge weights in debuggers.
Apr 21 2020, 1:01 PM · Restricted Project
hoyFB added a comment to D77978: [ViewCFG] Allow printing edge weights in debuggers.

@davidxl Please let me know if you have more feedbacks. Thanks.

Apr 21 2020, 12:26 PM · Restricted Project

Apr 16 2020

hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm

Apr 16 2020, 1:56 PM · Restricted Project
hoyFB added inline comments to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 16 2020, 1:55 PM · Restricted Project
hoyFB added a comment to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Please let me know any more feedbacks. I'm planning to land this shortly. Thanks!

Apr 16 2020, 11:41 AM · Restricted Project

Apr 13 2020

hoyFB updated the diff for D77978: [ViewCFG] Allow printing edge weights in debuggers.

Updating D77978: [ViewCFG] Allow printing edge weights in debuggers

Apr 13 2020, 4:25 PM · Restricted Project
hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm

Apr 13 2020, 4:20 PM · Restricted Project
hoyFB added inline comments to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 13 2020, 4:20 PM · Restricted Project
hoyFB added inline comments to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 13 2020, 3:47 PM · Restricted Project
hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm

Apr 13 2020, 3:15 PM · Restricted Project
hoyFB updated the diff for D77978: [ViewCFG] Allow printing edge weights in debuggers.

Updating D77978: [ViewCFG] Allow printing edge weights in debuggers

Apr 13 2020, 2:48 PM · Restricted Project
hoyFB added a comment to D77978: [ViewCFG] Allow printing edge weights in debuggers.

Decorated BFI/BPI parameters with const.

Apr 13 2020, 2:48 PM · Restricted Project
hoyFB added inline comments to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 13 2020, 2:07 PM · Restricted Project
hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm

Apr 13 2020, 2:07 PM · Restricted Project
hoyFB added a comment to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Ping... I'm checkout out to see if you have more feedbacks for this change. Thanks!

Apr 13 2020, 9:39 AM · Restricted Project

Apr 12 2020

hoyFB updated the diff for D77978: [ViewCFG] Allow printing edge weights in debuggers.

Updating D77978: [ViewCFG] Allow printing edge weights in debuggers

Apr 12 2020, 12:16 PM · Restricted Project
hoyFB added reviewers for D77978: [ViewCFG] Allow printing edge weights in debuggers: wenlei, davidxl, knaumov.
Apr 12 2020, 12:16 PM · Restricted Project
hoyFB created D77978: [ViewCFG] Allow printing edge weights in debuggers.
Apr 12 2020, 12:16 PM · Restricted Project
hoyFB updated the diff for D77978: [ViewCFG] Allow printing edge weights in debuggers.

Updating D77978: [ViewCFG] Allow printing edge weights in debuggers

Apr 12 2020, 12:16 PM · Restricted Project

Apr 11 2020

hoyFB accepted D77952: [TLII] Reduce copies of TLII for TLA.
Apr 11 2020, 1:52 PM · Restricted Project
hoyFB added a comment to D77952: [TLII] Reduce copies of TLII for TLA.

Thanks for the nice cleanup!

Apr 11 2020, 1:52 PM · Restricted Project

Apr 8 2020

hoyFB updated the summary of D77748: [CodeGen] Allow partial tail duplication in Machine Block Placement..
Apr 8 2020, 11:57 AM · Restricted Project
hoyFB created D77748: [CodeGen] Allow partial tail duplication in Machine Block Placement..
Apr 8 2020, 11:57 AM · Restricted Project

Apr 5 2020

hoyFB added a comment to D77484: [Vector] Pass VectLib to LTO backend so TLI build correct vector function list.

We're trying to move towards encoding all of this in the IR. And in fact, I recently implemented a series of patches to make the TLI to be built per-function, and along with some patches from @gchatelet to encode -fno-builtin* as function attributes, we now handle that part of the TLII with IR. See D67923 which is the last patch in the series. We should encode the vectlib as function attributes similarly, and just thread that through to the TLI.

Apr 5 2020, 10:40 AM · Restricted Project

Apr 4 2020

hoyFB added a comment to D77114: Handle exp2 with proper vectorization and lowering to SVML calls.

Is there a publicly available SVML library that is usable with LLVM that uses these function names? The Intel library that comes with icc uses these names but uses a non-standard calling convention that LLVM doesn't implement. The other library I'm aware of is some SVML functions embedded in libgcc or libm(not sure which), but they don't use the same names as the Intel library as far as I know.

I'm not aware of a publicly available SVML library. We've been targeting the Intel one. By standard calling convention do you mean the x86_64 System V calling convention where vector parameters are passed through XMM0 to XMM7 and returned in XMM0 and XMM1?

I guess it does sort of match the SystemV calling convention. The SVML library does treat some of the vector registers as callee saved which is different than SystemV. But if LLVM thinks they are all clobbered that probably doesn't cause an issue. There are masked versions for 512-bit that take the mask in a k-register which LLVM wouldn't know how to do.

Apr 4 2020, 8:46 PM · Restricted Project

Apr 2 2020

hoyFB added a comment to D77114: Handle exp2 with proper vectorization and lowering to SVML calls.

Is there a publicly available SVML library that is usable with LLVM that uses these function names? The Intel library that comes with icc uses these names but uses a non-standard calling convention that LLVM doesn't implement. The other library I'm aware of is some SVML functions embedded in libgcc or libm(not sure which), but they don't use the same names as the Intel library as far as I know.

Apr 2 2020, 11:17 PM · Restricted Project
hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support -emit-asm with LTO

Apr 2 2020, 12:28 PM · Restricted Project
hoyFB added inline comments to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 2 2020, 12:28 PM · Restricted Project
hoyFB added inline comments to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 2 2020, 9:44 AM · Restricted Project
hoyFB added inline comments to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 2 2020, 9:44 AM · Restricted Project

Apr 1 2020

hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support -emit-asm with LTO

Apr 1 2020, 12:57 PM · Restricted Project
hoyFB added inline comments to D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 1 2020, 12:04 PM · Restricted Project
hoyFB updated the summary of D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 1 2020, 12:04 PM · Restricted Project
hoyFB updated the diff for D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.

Updating D77231: [lld] Support -emit-asm with LTO

Apr 1 2020, 10:41 AM · Restricted Project
hoyFB updated the summary of D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 1 2020, 10:41 AM · Restricted Project
hoyFB created D77231: [lld] Support --lto-emit-asm and --plugin-opt=emit-asm.
Apr 1 2020, 10:26 AM · Restricted Project

Mar 30 2020

hoyFB added reviewers for D77114: Handle exp2 with proper vectorization and lowering to SVML calls: wenlei, hoyFB.
Mar 30 2020, 10:22 PM · Restricted Project

Mar 27 2020

hoyFB added a comment to D76248: Fix a bug in the inliner that causes subsequent double inlining.

The decl of debugCallSites can be moved even further ahead with incremental update, but probably won't make a big difference in practice,

Mar 27 2020, 2:52 PM · Restricted Project
hoyFB updated the diff for D76248: Fix a bug in the inliner that causes subsequent double inlining.

Updating D76248: Fix a bug in the inliner that causes subsequent double inlining

Mar 27 2020, 1:43 PM · Restricted Project
hoyFB added inline comments to D76248: Fix a bug in the inliner that causes subsequent double inlining.
Mar 27 2020, 1:43 PM · Restricted Project
hoyFB added a comment to D76248: Fix a bug in the inliner that causes subsequent double inlining.

Can probably turn this into a debug assert -- i.e, make sure that a callsite is not pushed into the queue more than once.

Mar 27 2020, 11:28 AM · Restricted Project
hoyFB updated the diff for D76248: Fix a bug in the inliner that causes subsequent double inlining.

Updating D76248: Fix a bug in the inliner that causes subsequent double inlining

Mar 27 2020, 11:28 AM · Restricted Project

Mar 21 2020

hoyFB added a comment to D76248: Fix a bug in the inliner that causes subsequent double inlining.

FTR the simplification in question (D75815) has since been reverted and added to InstCombine instead. See also there for a smaller reproducer. Is this change still needed now?

Mar 21 2020, 2:57 PM · Restricted Project
hoyFB added a comment to D76248: Fix a bug in the inliner that causes subsequent double inlining.

Thanks for the explanation.

The inliner does bottom up inlining -- after inlining each site for a node, a worklist based TopDown Inlining is attempted (in breadth first order) -- i.e., the new callsites from the the cloned inline instance will be pushed to the queue. The candidate callsites must be originated from the callee, not a reference to a callsite in the caller due to simplification. I think the better fix is at the queue update :

if (!InlineInfo.InlinedCalls.empty()) {
   // Create a new inline history entry for this, so that we remember
   // that these new callsites came about due to inlining Callee.

   int NewHistoryID = InlineHistory.size();
   InlineHistory.push_back(std::make_pair(Callee, InlineHistoryID));
 
   for (Value *Ptr : InlineInfo.InlinedCalls)
     CallSites.push_back(std::make_pair(CallSite(Ptr), NewHistoryID));
 }

In otherwords, if the callsite is already in the queue, do not attempt to insert it into it.

Mar 21 2020, 2:25 PM · Restricted Project

Mar 20 2020

hoyFB added a comment to D76248: Fix a bug in the inliner that causes subsequent double inlining.

ok -- I misunderstood (it to be a runtime problem) -- it is actually a stale reference related issue. In the failing case, is the inlining order the following?

top->second
top->first (original site)
top->first (from the clone of 'second')?

Even without ICE, this is still wrong unless first has no side effect.

Mar 20 2020, 10:43 PM · Restricted Project
hoyFB added inline comments to D76248: Fix a bug in the inliner that causes subsequent double inlining.
Mar 20 2020, 6:27 PM · Restricted Project

Mar 19 2020

hoyFB added a comment to D76248: Fix a bug in the inliner that causes subsequent double inlining.

Thanks for fixing this! I forgot to ask earlier, but this could happen with inlining under new PM as well, right? With new PM, we collect calls within SCC, then iterate over them for inlining, so for the same reason we could have dangling call in VMap from cloning?

Yes, it could, though that didn't happen in our case. I think it's due to different orders calls are processed in the legacy and new inliner.

Ok, then change the title/description to reflect that (not legacy PM specific)? otherwise LGTM.

Mar 19 2020, 1:09 PM · Restricted Project
hoyFB updated the summary of D76248: Fix a bug in the inliner that causes subsequent double inlining.
Mar 19 2020, 1:09 PM · Restricted Project