User Details
- User Since
- May 12 2022, 2:49 PM (71 w, 1 d)
Sep 26 2022
Sep 6 2022
Use opt to remove useless profiling data
@alexgatea Would you please also evaluate this patch on SPEC to see whether there are other regressions? Thanks
Sep 4 2022
revert to previous revision that has been merged into main branch
Sorry for the mistake, I will keep this revision open and make it related to the update revision for the regression.
I will create a new revision for this patch
Aug 29 2022
Avoid applying non-trivial unswitching in cold Function. Compared with previous PGO solution, this version will apply non-trivial unswitching on cold loops in hot functions.
Aug 27 2022
@alexgatea please try whether the new revision could solve your problem. Thanks
As suggested by other users, we need to make the skip check more restrict to avoid performance degradation.
Aug 25 2022
@alexgatea Thanks for the feedback.
isColdBlock should be global. One example is in (https://llvm.org/doxygen/ProfileSummaryInfo_8cpp_source.html#l00142), which uses isColdBlock to check whether a function is cold or not. So I assume the issue is the loop is non-cold in real case, but was concerned as cold in the profile data. I kindly suggest updating the profile data to see if there is still any degradation.
Please correct me if I am wrong. Thanks
Aug 8 2022
This patch implements SimpleLoopUnswitch using FuncPass, which can be used to replace the LoopPass implementation currently used in the optimization pipeline.
This patch has been verified and can be re-opened once we find using FuncPass for SLU is necessary/beneficial.
Aug 5 2022
[test] Update PGO SLU test
[test][SimpleLoopUnswitch] Precommit test for D129599
Aug 4 2022
[llvm] Change test file for PGO on SLU
[llvm] Implement PGO for SLU
Using PGO for SLU to avoid non-trivial unswitch code on code loops, which will increase the binary code size without gain much benefit.
Jul 27 2022
Jul 20 2022
Jul 19 2022
Reformat the test file with update_test_checks.py
Jul 12 2022
Jun 21 2022
@bcahoon This revision is based on your previous implementation (https://reviews.llvm.org/D109762). In the parent revision(https://reviews.llvm.org/D127547) we use FuncPass to re-implement non-trivial LoopUnswitch, thus, we do not invoke DivergenceAnalysis for each loop. Would you please have are look for whether these modifications (implement non-trivial LoopUnswitch with FuncPass and integrate DivergenceAnalysis in the new FuncPass) work on your test cases? Thanks
Jun 16 2022
Jun 14 2022
Fix bug for hoisting freeze instruction