danielcdh (Dehao Chen)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 26 2015, 2:20 PM (112 w, 49 m)

Recent Activity

Tue, Oct 10

danielcdh created D38763: Include already promoted counts when computing SUM for VP..
Tue, Oct 10, 2:21 PM
danielcdh closed D38478: Use the first instruction's count to estimate the funciton's entry frequency..
Tue, Oct 10, 2:13 PM
danielcdh updated the diff for D38478: Use the first instruction's count to estimate the funciton's entry frequency..

extract the change that update the SUM of VP.

Tue, Oct 10, 10:39 AM

Mon, Oct 9

danielcdh added inline comments to D38478: Use the first instruction's count to estimate the funciton's entry frequency..
Mon, Oct 9, 9:26 AM
danielcdh updated the diff for D38478: Use the first instruction's count to estimate the funciton's entry frequency..

update comment

Mon, Oct 9, 9:26 AM

Fri, Oct 6

danielcdh updated the diff for D38478: Use the first instruction's count to estimate the funciton's entry frequency..

rebase

Fri, Oct 6, 10:09 AM
danielcdh closed D38603: Directly return promoted direct call instead of rely on stripPointerCast..
Fri, Oct 6, 10:06 AM
danielcdh updated the diff for D38603: Directly return promoted direct call instead of rely on stripPointerCast..

update comments

Fri, Oct 6, 8:54 AM
danielcdh added a comment to D38603: Directly return promoted direct call instead of rely on stripPointerCast..

Thanks.

Fri, Oct 6, 8:54 AM

Thu, Oct 5

danielcdh created D38603: Directly return promoted direct call instead of rely on stripPointerCast..
Thu, Oct 5, 2:50 PM
danielcdh updated the diff for D38478: Use the first instruction's count to estimate the funciton's entry frequency..

rebase

Thu, Oct 5, 1:18 PM
danielcdh closed D38477: Annotate VP prof on indirect call if it is ICPed in the profiled binary..
Thu, Oct 5, 1:17 PM
danielcdh updated the summary of D38477: Annotate VP prof on indirect call if it is ICPed in the profiled binary..
Thu, Oct 5, 12:38 PM

Tue, Oct 3

danielcdh updated the diff for D38478: Use the first instruction's count to estimate the funciton's entry frequency..

update comment

Tue, Oct 3, 12:48 PM
danielcdh added inline comments to D38478: Use the first instruction's count to estimate the funciton's entry frequency..
Tue, Oct 3, 12:48 PM
danielcdh added inline comments to D38477: Annotate VP prof on indirect call if it is ICPed in the profiled binary..
Tue, Oct 3, 11:28 AM
danielcdh updated the diff for D38477: Annotate VP prof on indirect call if it is ICPed in the profiled binary..

update comment

Tue, Oct 3, 11:28 AM

Mon, Oct 2

danielcdh created D38478: Use the first instruction's count to estimate the funciton's entry frequency..
Mon, Oct 2, 1:52 PM
danielcdh created D38477: Annotate VP prof on indirect call if it is ICPed in the profiled binary..
Mon, Oct 2, 1:35 PM
danielcdh closed D37877: Update getMergedLocation to check the instruction type and merge properly..
Mon, Oct 2, 11:14 AM
danielcdh updated the diff for D37877: Update getMergedLocation to check the instruction type and merge properly..

update comments

Mon, Oct 2, 10:33 AM

Sat, Sep 30

danielcdh closed D38094: Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases..
Sat, Sep 30, 10:26 PM
danielcdh updated the diff for D38094: Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases..

update

Sat, Sep 30, 2:51 PM
danielcdh updated the diff for D38094: Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases..

rebase and address Teresa's comments

Sat, Sep 30, 2:07 PM
danielcdh added a comment to D38094: Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases..

Is this patch NFC? It looks like there is some new handling for indirect call targets in findImportedFunctions that makes it non-NFC. Could you split this into an NFC refactoring patch and a separate non-NFC patch with the enhancements if so? I think that would be clearer and easier to review.

Sat, Sep 30, 2:06 PM

Fri, Sep 29

danielcdh added a comment to D37877: Update getMergedLocation to check the instruction type and merge properly..

Adrian, please let me know if you have further concerns about this patch.

Fri, Sep 29, 5:39 PM
danielcdh added a comment to D38392: Disallow sinking of unordered atomic loads into loops.

I see your point now. My concern is performance: if we allow hoisting of atomic load, but not allow sinking it, we may end up with bad performance as we may have too much redundant atomic loads in the preheader. Any suggestions on how to solve that?

Not really. I can say that we've been running performance tests for months in this configuration (LICM hoisting unordered loads, no LoopSink) without noticing any problems. I'm not immediately concerned.

Fri, Sep 29, 5:31 PM
danielcdh added a comment to D38392: Disallow sinking of unordered atomic loads into loops.

I see your point now. My concern is performance: if we allow hoisting of atomic load, but not allow sinking it, we may end up with bad performance as we may have too much redundant atomic loads in the preheader. Any suggestions on how to solve that?

Fri, Sep 29, 4:36 PM
danielcdh added a comment to D38392: Disallow sinking of unordered atomic loads into loops.

In the following example:

Fri, Sep 29, 12:35 PM
danielcdh added a comment to D38392: Disallow sinking of unordered atomic loads into loops.

How about the following case:

Fri, Sep 29, 9:20 AM
danielcdh added a comment to D38392: Disallow sinking of unordered atomic loads into loops.

Is it legal to hoist an atomic load out of the loop?

Fri, Sep 29, 9:04 AM
danielcdh accepted D38405: [ThinLTO] Use decimal suffix for promoted values to match demanglers.
Fri, Sep 29, 8:56 AM

Wed, Sep 20

danielcdh updated the diff for D38094: Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases..

refactor

Wed, Sep 20, 12:38 PM
danielcdh created D38094: Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases..
Wed, Sep 20, 12:27 PM
danielcdh accepted D38086: [ThinLTO] Fix dead stripping analysis for SamplePGO.

LGTM, Thanks!

Wed, Sep 20, 9:38 AM

Tue, Sep 19

danielcdh closed D36637: Import all inlined indirect call targets for SamplePGO..
Tue, Sep 19, 2:19 PM
danielcdh added inline comments to D36637: Import all inlined indirect call targets for SamplePGO..
Tue, Sep 19, 1:39 PM
danielcdh updated the diff for D36637: Import all inlined indirect call targets for SamplePGO..

update

Tue, Sep 19, 1:39 PM
danielcdh closed D38018: Handle profile mismatch correctly for SamplePGO..
Tue, Sep 19, 11:28 AM
danielcdh updated the diff for D38018: Handle profile mismatch correctly for SamplePGO..

update

Tue, Sep 19, 10:48 AM
danielcdh added inline comments to D38018: Handle profile mismatch correctly for SamplePGO..
Tue, Sep 19, 10:47 AM
danielcdh added inline comments to D37877: Update getMergedLocation to check the instruction type and merge properly..
Tue, Sep 19, 9:14 AM

Mon, Sep 18

danielcdh updated the diff for D37877: Update getMergedLocation to check the instruction type and merge properly..

update

Mon, Sep 18, 7:02 PM
danielcdh added inline comments to D37877: Update getMergedLocation to check the instruction type and merge properly..
Mon, Sep 18, 7:02 PM
danielcdh created D38018: Handle profile mismatch correctly for SamplePGO..
Mon, Sep 18, 6:26 PM

Sep 15 2017

danielcdh updated the diff for D37877: Update getMergedLocation to check the instruction type and merge properly..

update the API

Sep 15 2017, 6:23 PM
danielcdh added inline comments to D37877: Update getMergedLocation to check the instruction type and merge properly..
Sep 15 2017, 6:23 PM

Sep 14 2017

danielcdh updated the diff for D37877: Update getMergedLocation to check the instruction type and merge properly..

update test

Sep 14 2017, 5:52 PM
danielcdh added inline comments to D37877: Update getMergedLocation to check the instruction type and merge properly..
Sep 14 2017, 5:52 PM
danielcdh created D37877: Update getMergedLocation to check the instruction type and merge properly..
Sep 14 2017, 5:00 PM
danielcdh closed D37779: Invoke GetInlineCost for legality check before inline functions in SampleProfileLoader..
Sep 14 2017, 10:31 AM
danielcdh updated the diff for D37779: Invoke GetInlineCost for legality check before inline functions in SampleProfileLoader..

fix the msan uninitialized memory access error.

Sep 14 2017, 10:31 AM

Sep 13 2017

danielcdh closed D37779: Invoke GetInlineCost for legality check before inline functions in SampleProfileLoader..
Sep 13 2017, 2:24 PM
danielcdh updated the diff for D37779: Invoke GetInlineCost for legality check before inline functions in SampleProfileLoader..

update

Sep 13 2017, 2:23 PM
danielcdh updated the diff for D37779: Invoke GetInlineCost for legality check before inline functions in SampleProfileLoader..

rebase

Sep 13 2017, 2:09 PM
danielcdh accepted D37819: [Inliner] Add another way to compute full inline cost..
Sep 13 2017, 12:31 PM

Sep 12 2017

danielcdh accepted D37783: [ThinLTO] For SamplePGO, need to handle ICP targets consistently in thin link.

Thanks for fixing this!

Sep 12 2017, 11:56 PM
danielcdh updated the diff for D37779: Invoke GetInlineCost for legality check before inline functions in SampleProfileLoader..

update

Sep 12 2017, 4:57 PM
danielcdh created D37779: Invoke GetInlineCost for legality check before inline functions in SampleProfileLoader..
Sep 12 2017, 4:27 PM
danielcdh closed D37773: Refactor the code to pass down ACT to SampleProfileLoader correctly..
Sep 12 2017, 2:57 PM
danielcdh added inline comments to D37773: Refactor the code to pass down ACT to SampleProfileLoader correctly..
Sep 12 2017, 2:57 PM
danielcdh updated the diff for D37773: Refactor the code to pass down ACT to SampleProfileLoader correctly..

update

Sep 12 2017, 2:51 PM
danielcdh updated the summary of D37773: Refactor the code to pass down ACT to SampleProfileLoader correctly..
Sep 12 2017, 2:51 PM
danielcdh created D37773: Refactor the code to pass down ACT to SampleProfileLoader correctly..
Sep 12 2017, 2:24 PM

Sep 5 2017

danielcdh added a comment to D37463: Fix miscompile in LoopSink pass.

Thanks for raising the issue.

Sep 5 2017, 9:20 AM

Sep 3 2017

danielcdh added a comment to D37364: [DWARF] Line 0 should not have a discriminator.

The change looks good to me. But the test is quite large and hard to understand. I don't think it's necessary to have the test generated from a source file, just forge a test with discriminator attached to line 0, and then checks if discriminators is omitted in the generated code. I guess it should suffice with < 20 LOC

Sep 3 2017, 5:35 PM

Aug 29 2017

danielcdh accepted D37246: [PGO] Fixed non-determinism with DenseSet storing function importing info..

The sorting is not a concern as it's only called once perf function, and the list should not be large.

Aug 29 2017, 9:21 AM
danielcdh closed D37252: Add null check for promoted direct call.
Aug 29 2017, 8:29 AM

Aug 28 2017

danielcdh updated the diff for D37252: Add null check for promoted direct call.

update

Aug 28 2017, 11:41 PM
danielcdh created D37252: Add null check for promoted direct call.
Aug 28 2017, 11:37 PM
danielcdh added a comment to D37246: [PGO] Fixed non-determinism with DenseSet storing function importing info..

does this change any tests?

Aug 28 2017, 9:13 PM

Aug 24 2017

danielcdh closed D37091: Expose -mllvm -accurate-sample-profile to clang..
Aug 24 2017, 2:38 PM
danielcdh closed D37113: Move accurate-sample-profile into the function attribute..
Aug 24 2017, 2:38 PM
danielcdh updated the diff for D37091: Expose -mllvm -accurate-sample-profile to clang..

update

Aug 24 2017, 1:36 PM
danielcdh updated the diff for D37113: Move accurate-sample-profile into the function attribute..

update

Aug 24 2017, 1:19 PM
danielcdh added a comment to D37113: Move accurate-sample-profile into the function attribute..

How can we test it works for ThinLTO? some end-to-end test is also desired (given that this becomes an external feature).

Aug 24 2017, 1:19 PM
danielcdh updated the diff for D37091: Expose -mllvm -accurate-sample-profile to clang..

Add an end-to-end test.

Aug 24 2017, 1:19 PM
danielcdh updated the diff for D37091: Expose -mllvm -accurate-sample-profile to clang..

update

Aug 24 2017, 1:11 PM
danielcdh created D37113: Move accurate-sample-profile into the function attribute..
Aug 24 2017, 9:33 AM
danielcdh updated the diff for D37091: Expose -mllvm -accurate-sample-profile to clang..

updated the patch to put it into function attribute so that it works with ThinLTO

Aug 24 2017, 9:27 AM

Aug 23 2017

danielcdh updated the diff for D37091: Expose -mllvm -accurate-sample-profile to clang..

add document and test

Aug 23 2017, 7:52 PM
danielcdh created D37091: Expose -mllvm -accurate-sample-profile to clang..
Aug 23 2017, 6:52 PM
danielcdh closed D37084: Add test to cover accurate-sample-profile..
Aug 23 2017, 4:21 PM
danielcdh added a comment to D37084: Add test to cover accurate-sample-profile..

What happens if caller is hot, and the callee (missing profile) is unconditionally called by the caller? Will it still be treated as cold?

Aug 23 2017, 4:10 PM
danielcdh created D37084: Add test to cover accurate-sample-profile..
Aug 23 2017, 4:00 PM

Aug 15 2017

danielcdh closed D36778: Merge debug info when hoist then-else code to if..
Aug 15 2017, 6:56 PM
danielcdh updated the diff for D36778: Merge debug info when hoist then-else code to if..

add positive test

Aug 15 2017, 6:56 PM
danielcdh created D36778: Merge debug info when hoist then-else code to if..
Aug 15 2017, 6:08 PM

Aug 13 2017

danielcdh added a comment to D36655: Move SampleProfileLoader pass before all simplification passes..

Is there a functional test case (i.e., better matching with this change)?

Aug 13 2017, 3:49 PM
danielcdh updated the diff for D36655: Move SampleProfileLoader pass before all simplification passes..

update

Aug 13 2017, 2:12 PM
danielcdh added inline comments to D36655: Move SampleProfileLoader pass before all simplification passes..
Aug 13 2017, 2:12 PM
danielcdh created D36655: Move SampleProfileLoader pass before all simplification passes..
Aug 13 2017, 1:12 PM

Aug 11 2017

danielcdh created D36637: Import all inlined indirect call targets for SamplePGO..
Aug 11 2017, 2:05 PM

Aug 9 2017

danielcdh closed D36566: Revert part of r310296 to make it really NFC for instrumentation PGO..
Aug 9 2017, 10:11 PM
danielcdh created D36566: Revert part of r310296 to make it really NFC for instrumentation PGO..
Aug 9 2017, 9:59 PM

Aug 8 2017

danielcdh closed D36341: Make ICP uses PSI to check for hotness..
Aug 8 2017, 2:00 PM

Aug 7 2017

danielcdh added a comment to D36341: Make ICP uses PSI to check for hotness..

Performance testing on loadtest does not show any difference with this patch with instrumentation based PGO.

Aug 7 2017, 8:37 PM
danielcdh closed D36333: Move the SampleProfileLoader right after EarlyFPM..
Aug 7 2017, 1:24 PM
danielcdh added a comment to D36333: Move the SampleProfileLoader right after EarlyFPM..

I think Chandler's concerns for this patch has been addressed. We can continue discussion on the AutoFDO design in a separate thread. Will submit the patch by EOD if no more concerns have been raised.

Aug 7 2017, 9:23 AM

Aug 5 2017

danielcdh added a comment to D36341: Make ICP uses PSI to check for hotness..

This change may affect instrumentation PGO. I suspect it will greatly increase count threshold which may negatively affect performance. For instance some not so hot targets have small function body which is always good candidate to inline (after ICP).

Aug 5 2017, 12:19 PM