This is an archive of the discontinued LLVM Phabricator instance.

[Inlining] Set -enable-npm-pgo-inline-deferral to false.
Needs ReviewPublic

Authored by kazu on Jun 4 2020, 8:11 PM.

Details

Reviewers
davidxl
Summary

This patch turns off inline deferral by default during PGO builds
except in the pre-inlining phase.

Although this patch improves the performance of an internal benchmark,
the SPEC performance remains unchanged -- 38.1 vs 38.1.

PGO+ThinLTO bootstrapped clang becomes slightly smaller.

Section Base Exp Diff

.text.hot 5974666 5932938 -0.70%
.text 7075401 7065513 -0.14%
.text.unlikely 35931984 35931376 -0.00%

.text.startup 734704 732304 -0.33%

Top2 13050067 12998451 -0.40%
Total 49716755 49662131 -0.11%

Diff Detail

Event Timeline

kazu created this revision.Jun 4 2020, 8:11 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 4 2020, 8:11 PM
wenlei added a subscriber: wenlei.Jun 4 2020, 11:29 PM

Is it intentional to turn off inline deferral for both PGO and AutoFDO? Looking at D80776, the flag covers both PGO and AutoFDO..

Wenlei is right. PGOOpt covers both sample and instrumentation PGO.

kazu added a comment.Jun 11 2020, 11:32 AM

PTAL Thanks!