xur (Rong Xu)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 20 2015, 4:19 PM (100 w, 11 h)

Recent Activity

Apr 27 2017

xur added a comment to D28867: [Profile] Add off-by-default -Wprofile-instr-missing warning.

Looks good to me.

Apr 27 2017, 9:51 AM

Apr 6 2017

xur committed rL299707: [PGO] Preserve GlobalsAA in pgo-memop-opt pass..
[PGO] Preserve GlobalsAA in pgo-memop-opt pass.
Apr 6 2017, 2:08 PM

Apr 4 2017

xur committed rL299446: [PGO] Memory intrinsic calls optimization based on profiled size.
[PGO] Memory intrinsic calls optimization based on profiled size
Apr 4 2017, 9:55 AM
xur closed D28966: [PGO] Memory intrinsic calls optimization based on profiled size by committing rL299446: [PGO] Memory intrinsic calls optimization based on profiled size.
Apr 4 2017, 9:55 AM

Mar 31 2017

xur updated the diff for D28966: [PGO] Memory intrinsic calls optimization based on profiled size.

integrated David's review comments

Mar 31 2017, 12:14 PM

Mar 29 2017

xur updated the diff for D28966: [PGO] Memory intrinsic calls optimization based on profiled size.

This new patch integrated David's review suggestion to make this optimization a separated pass.
This pass will be called after inlining to avoid the potential interference to in-lining decisions. It will use both the metadata annotation for memop size profiling and the enclosing BB's edge count to find the actual count.

Mar 29 2017, 2:48 PM
xur added inline comments to D28966: [PGO] Memory intrinsic calls optimization based on profiled size.
Mar 29 2017, 2:43 PM

Mar 20 2017

xur updated the diff for D28966: [PGO] Memory intrinsic calls optimization based on profiled size.

Integrated David's suggestion to make the optimization a stand along pass (a function pass).
It currently resides in IndirectCallPromotion.cpp. I will have a follow-up patch to change IndirectCallPromotion.cpp to a more appropriate name.

Mar 20 2017, 2:05 PM

Mar 17 2017

xur committed rL298120: [PGO] Change the internal options description. nfc..
[PGO] Change the internal options description. nfc.
Mar 17 2017, 2:03 PM
xur committed rL298115: [PGO] Add omitted test cases..
[PGO] Add omitted test cases.
Mar 17 2017, 1:17 PM
xur committed rL298113: Resubmit r295469 [PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write.
Resubmit r295469 [PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write
Mar 17 2017, 11:53 AM
xur committed rL298110: [PGO] Value profile for size of memory intrinsic calls.
[PGO] Value profile for size of memory intrinsic calls
Mar 17 2017, 11:19 AM
xur closed D31002: {PGO] Profile annotation for MemOPSize value profile by committing rL298110: [PGO] Value profile for size of memory intrinsic calls.
Mar 17 2017, 11:19 AM
xur updated the diff for D31002: {PGO] Profile annotation for MemOPSize value profile .

randomize the order the VP profile entry in proftext, as suggested by David.

Mar 17 2017, 11:01 AM

Mar 16 2017

xur updated the diff for D31002: {PGO] Profile annotation for MemOPSize value profile .

Fix the testcase.

Mar 16 2017, 3:32 PM
xur updated the diff for D31002: {PGO] Profile annotation for MemOPSize value profile .

Integrate David's comments. Using a separated option to control the number of annotation for memop_size.

Mar 16 2017, 3:31 PM
xur committed rL297996: Resubmit r297897: [PGO] Value profile for size of memory intrinsic calls.
Resubmit r297897: [PGO] Value profile for size of memory intrinsic calls
Mar 16 2017, 2:28 PM

Mar 15 2017

xur committed rL297909: Fix build failure from r297897..
Fix build failure from r297897.
Mar 15 2017, 4:12 PM
xur added inline comments to D31002: {PGO] Profile annotation for MemOPSize value profile .
Mar 15 2017, 4:03 PM
xur committed rL297897: [PGO] Value profile for size of memory intrinsic calls.
[PGO] Value profile for size of memory intrinsic calls
Mar 15 2017, 2:59 PM
xur closed D28965: [PGO] Value profile for size of memory intrinsic calls by committing rL297897: [PGO] Value profile for size of memory intrinsic calls.
Mar 15 2017, 2:59 PM
xur committed rL297895: [PGO] Value profile support for value ranges.
[PGO] Value profile support for value ranges
Mar 15 2017, 2:58 PM
xur closed D28964: [PGO] Value profile support for value ranges by committing rL297895: [PGO] Value profile support for value ranges.
Mar 15 2017, 2:58 PM
xur created D31002: {PGO] Profile annotation for MemOPSize value profile .
Mar 15 2017, 2:57 PM
xur committed rL297892: [PGO] Minor cleanup for count instruction in SelectInstVisitor..
[PGO] Minor cleanup for count instruction in SelectInstVisitor.
Mar 15 2017, 2:18 PM
xur closed D30999: [PGO] Minor cleanup for count instruction in SelectInstVisitor..
Mar 15 2017, 2:17 PM
xur created D30999: [PGO] Minor cleanup for count instruction in SelectInstVisitor..
Mar 15 2017, 1:47 PM
xur committed rL297870: [PGO] Refactor the code for value profile annotation.
[PGO] Refactor the code for value profile annotation
Mar 15 2017, 11:36 AM
xur closed D30989: [PGO] Refactor the code for value profile annotation by committing rL297870: [PGO] Refactor the code for value profile annotation.
Mar 15 2017, 11:35 AM
xur added a comment to D28965: [PGO] Value profile for size of memory intrinsic calls.

After the refactoring code lands, do you plan to add the site annotation part in this patch?

Mar 15 2017, 11:23 AM
xur updated the diff for D28965: [PGO] Value profile for size of memory intrinsic calls.

Update the patch: remove some unrelated changes.

Mar 15 2017, 10:50 AM
xur created D30989: [PGO] Refactor the code for value profile annotation.
Mar 15 2017, 10:21 AM

Mar 9 2017

xur updated the diff for D28965: [PGO] Value profile for size of memory intrinsic calls.

This is the patch that after splitting out the llvm-profdata refactor change.

Mar 9 2017, 1:44 PM
xur committed rL297400: Minor format change. nfc..
Minor format change. nfc.
Mar 9 2017, 11:21 AM
xur committed rL297399: [PGO] Refactor profile dumping function for ease of adding other profile kind.
[PGO] Refactor profile dumping function for ease of adding other profile kind
Mar 9 2017, 11:16 AM
xur closed D30752: [PGO] Refactor the valule profile dumping function for ease of adding other profile kind by committing rL297399: [PGO] Refactor profile dumping function for ease of adding other profile kind.
Mar 9 2017, 11:16 AM

Mar 8 2017

xur added inline comments to D30752: [PGO] Refactor the valule profile dumping function for ease of adding other profile kind.
Mar 8 2017, 4:36 PM
xur updated the diff for D30752: [PGO] Refactor the valule profile dumping function for ease of adding other profile kind.
Mar 8 2017, 4:35 PM
xur created D30752: [PGO] Refactor the valule profile dumping function for ease of adding other profile kind.
Mar 8 2017, 12:37 PM
xur added a comment to D28966: [PGO] Memory intrinsic calls optimization based on profiled size.

The optimization pass should be split into two phases as IC promotion. The annotation part should probably be merged with the instrumentation patch. The transformation patch should be done in the same pass as IndirectCallPromotion.

Mar 8 2017, 11:11 AM

Mar 3 2017

xur committed rL296916: [PGO] Text format profile reader needs to clear the value profile.
[PGO] Text format profile reader needs to clear the value profile
Mar 3 2017, 2:08 PM
xur closed D30479: [PGO] Text format profile reader needs to clear the value profile.
Mar 3 2017, 2:08 PM
xur updated the diff for D30479: [PGO] Text format profile reader needs to clear the value profile.

Integrated David's review comments.

Mar 3 2017, 11:21 AM
xur updated the diff for D28965: [PGO] Value profile for size of memory intrinsic calls.

Updated the patch according on David's review comments.

Mar 3 2017, 10:24 AM
xur added inline comments to D28965: [PGO] Value profile for size of memory intrinsic calls.
Mar 3 2017, 10:23 AM

Feb 28 2017

xur created D30479: [PGO] Text format profile reader needs to clear the value profile.
Feb 28 2017, 3:39 PM

Feb 27 2017

xur committed rL296391: [PGO] Fix a bug in reading text format value profile..
[PGO] Fix a bug in reading text format value profile.
Feb 27 2017, 1:54 PM
xur closed D30420: [PGO] Fix a bug in reading text format value profile..
Feb 27 2017, 1:54 PM
xur created D30420: [PGO] Fix a bug in reading text format value profile..
Feb 27 2017, 11:25 AM
xur committed rL296362: Fix comments. NFC..
Fix comments. NFC.
Feb 27 2017, 10:10 AM

Feb 24 2017

xur committed rL296206: [PGO] Directory name stripping in global identifier for static functions.
[PGO] Directory name stripping in global identifier for static functions
Feb 24 2017, 4:12 PM
xur closed D29512: [PGO] Directory name stripping in global identifier for static functions by committing rL296206: [PGO] Directory name stripping in global identifier for static functions.
Feb 24 2017, 4:12 PM

Feb 23 2017

xur accepted D30282: Add call branch annotation for ICP promoted direct call in SamplePGO mode..
Feb 23 2017, 9:53 AM

Feb 22 2017

xur added a comment to D30282: Add call branch annotation for ICP promoted direct call in SamplePGO mode..

Not familiar with samplePGO. Are the counters always annotated in the call sites (or the sampled BB)?
The call counts cannot be inferred from entry counts and the branch-weight?
If this the way samplePGO works, this looks fine to me.

Feb 22 2017, 5:52 PM
xur added a comment to D29512: [PGO] Directory name stripping in global identifier for static functions.

From the description:

Current internal option -static-func-full-module-prefix strips all the directory path the profile counter names for static functions. The default of this option is true.

...

This patch turns the default value for -static-func-full-module-prefix to false.

However in the diff I see:

  • "static-func-full-module-prefix", cl::init(false), + "static-func-full-module-prefix", cl::init(true),

    Which is the opposite of the description? This seems confusing to me.
Feb 22 2017, 11:42 AM
xur updated the diff for D29512: [PGO] Directory name stripping in global identifier for static functions.

Update the patch based on the reviews:
(1) move the code to ProfileData to make the change local to profile
(2) add negative test
(3) add a comment on how it affects thin-lto.

Feb 22 2017, 11:37 AM

Feb 17 2017

xur committed rL295469: [PGO] remove unintended debug trace. NFC.
[PGO] remove unintended debug trace. NFC
Feb 17 2017, 9:53 AM

Feb 16 2017

xur committed rL295364: [PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write.
[PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write
Feb 16 2017, 11:33 AM
xur closed D29954: [PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write.
Feb 16 2017, 11:33 AM

Feb 15 2017

xur updated the diff for D29954: [PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write.

Integrated David's review comments.

Feb 15 2017, 3:29 PM
xur updated the diff for D29954: [PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write.

Add a testcase

Feb 15 2017, 1:04 PM

Feb 14 2017

xur accepted D29960: [PGO] Delay directory creation until write time.

LGTM too.

Feb 14 2017, 1:40 PM
xur added a comment to D29960: [PGO] Delay directory creation until write time.

why limit to merge mode?
non-merge mode also exhibits the problem mentioned.

Feb 14 2017, 1:04 PM
xur updated the diff for D29954: [PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write.

move platform depended code to InstrProfilingUnil.c per David's suggestion.

Feb 14 2017, 12:55 PM
xur created D29954: [PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write.
Feb 14 2017, 11:39 AM

Feb 3 2017

xur added inline comments to D29512: [PGO] Directory name stripping in global identifier for static functions.
Feb 3 2017, 4:43 PM
xur updated the diff for D29512: [PGO] Directory name stripping in global identifier for static functions.

updated the option description per Teresa's suggestion.

Feb 3 2017, 2:01 PM
xur added a comment to D29512: [PGO] Directory name stripping in global identifier for static functions.

thanks to Teresa for the collection. I'll update the patch shortly

Feb 3 2017, 1:59 PM
xur created D29512: [PGO] Directory name stripping in global identifier for static functions.
Feb 3 2017, 1:25 PM
xur accepted D29474: [PGO] display select instruction raw profile data in graph dump.

Look good to me.

Feb 3 2017, 9:50 AM

Feb 1 2017

xur updated the diff for D28965: [PGO] Value profile for size of memory intrinsic calls.

Integrated David's review comments.

Feb 1 2017, 12:47 PM
xur added inline comments to D28965: [PGO] Value profile for size of memory intrinsic calls.
Feb 1 2017, 12:44 PM

Jan 30 2017

xur updated the diff for D28964: [PGO] Value profile support for value ranges.

Integrated part of vsk's review comments.

Jan 30 2017, 4:47 PM
xur added a comment to D28964: [PGO] Value profile support for value ranges.

To vsk: if seems hard to add a test without the compiler part of change. We can add the calls to __llvm_profile_instrument_range(). But to check the result, we need llvm-profdata to dump the counters.

Jan 30 2017, 4:41 PM
xur added a comment to D28964: [PGO] Value profile support for value ranges.

One reply to vsk's comment in inlined.

Jan 30 2017, 4:21 PM

Jan 27 2017

xur updated the diff for D28964: [PGO] Value profile support for value ranges.

drop the recent change in InstrProfData.inc

Jan 27 2017, 11:31 AM
xur added a comment to D28964: [PGO] Value profile support for value ranges.

It seems I have to fall back the latest change in InstrProfData.inc. We have to use #else clause "VALUE_PROF_FUNC_PARAM(uint32_t, CounterIndex, Type::getInt32Ty(Ctx))" because one of the version need to append INSTR_PROF_COMMA.

Jan 27 2017, 11:26 AM

Jan 26 2017

xur accepted D29045: [PGO] Add option to dot-dump raw profile counts as computed by profile annotator.
Jan 26 2017, 3:20 PM
xur updated the diff for D28964: [PGO] Value profile support for value ranges.

Integrated David's review comments.

Jan 26 2017, 1:25 PM
xur added a comment to D29045: [PGO] Add option to dot-dump raw profile counts as computed by profile annotator.

This gonna be very useful in debug PGO related issues -- we don't need to use the instrumentation debug dumps to track the counts (which is not available in debug builds).
Overall, the patch looks good to me except the minor issues (see inline comments).

Jan 26 2017, 1:20 PM

Jan 24 2017

xur updated the diff for D28965: [PGO] Value profile for size of memory intrinsic calls.

Update the patch based on David's review comments.

Jan 24 2017, 5:21 PM
xur updated the diff for D28964: [PGO] Value profile support for value ranges.

changed the patch based on David's review comments:
(1) reuse __llvm_profile_instrument_target as much as possible and make the new function a wrapper.
(3) use parameter rather global variables.
(2) supported signed type.

Jan 24 2017, 5:17 PM

Jan 20 2017

xur updated the summary of D28966: [PGO] Memory intrinsic calls optimization based on profiled size.
Jan 20 2017, 1:28 PM
xur created D28966: [PGO] Memory intrinsic calls optimization based on profiled size.
Jan 20 2017, 1:26 PM
xur created D28965: [PGO] Value profile for size of memory intrinsic calls.
Jan 20 2017, 1:23 PM
xur created D28964: [PGO] Value profile support for value ranges.
Jan 20 2017, 1:21 PM

Jan 18 2017

xur added a comment to D28867: [Profile] Add off-by-default -Wprofile-instr-missing warning.

This change gonna hide the missing profile for a function permanently if there is no mismatch. Like, if a user adds a new function without changing existing functions, he will never get a warning if using the old profiles.

Jan 18 2017, 11:47 AM

Jan 11 2017

xur committed rL291696: Resubmit "[PGO] Turn off comdat renaming in IR PGO by default".
Resubmit "[PGO] Turn off comdat renaming in IR PGO by default"
Jan 11 2017, 12:30 PM

Jan 10 2017

xur committed rL291621: Revert "[PGO] Turn off comdat renaming in IR PGO by default".
Revert "[PGO] Turn off comdat renaming in IR PGO by default"
Jan 10 2017, 4:05 PM
xur committed rL291594: [PGO] Update the test cases after r291588..
[PGO] Update the test cases after r291588.
Jan 10 2017, 12:18 PM
xur committed rL291588: [PGO] Turn off comdat renaming in IR PGO by default.
[PGO] Turn off comdat renaming in IR PGO by default
Jan 10 2017, 11:41 AM
xur closed D28416: [PGO] Turn off comdat renaming in IR PGO by default.
Jan 10 2017, 11:41 AM
xur updated the diff for D28416: [PGO] Turn off comdat renaming in IR PGO by default.

updated patch
Integrated David's review comments.
Note I need to conditionally check addresstaken bit in
canRenameComdatFunc() as this function is also used in renaming profile
variable which does not care if address-taken or not.
Also checking this bit requries the update of one test case.

Jan 10 2017, 11:29 AM
xur added inline comments to D28416: [PGO] Turn off comdat renaming in IR PGO by default.
Jan 10 2017, 10:19 AM

Jan 9 2017

xur updated the diff for D28416: [PGO] Turn off comdat renaming in IR PGO by default.

D28416: [PGO] Turn off comdat renaming in IR PGO by default

Jan 9 2017, 10:40 AM

Jan 6 2017

xur retitled D28416: [PGO] Turn off comdat renaming in IR PGO by default from to [PGO] Turn off comdat renaming in IR PGO by default.
Jan 6 2017, 2:55 PM

Dec 13 2016

xur committed rL289556: Fix the test cases committed in r289521. .
Fix the test cases committed in r289521.
Dec 13 2016, 9:44 AM

Dec 12 2016

xur committed rL289521: [PGO] Fix insane counts due to nonreturn calls.
[PGO] Fix insane counts due to nonreturn calls
Dec 12 2016, 10:51 PM
xur closed D27602: [PGO] Fix insane counts due to nonreturn calls.
Dec 12 2016, 10:51 PM

Dec 9 2016

xur added a comment to D27602: [PGO] Fix insane counts due to nonreturn calls.

Using the test case as the example: exit() is called in bar0. The instrumentation is in bb2 (which calls bar0), bb4 and bb5.
bb2 is 21. bb4 is 0 and bb5 is 20. To make the edge flow balanced, we have to make edge 1-->3 as -1.

Dec 9 2016, 3:59 AM